Python

Помогите исправить код на питоне я постоянно проигрываю в камень ножницы бумага и игра не идёт до трех побед

From random import randint

бумага = 0
камень = 1
ножницы = 2
compsum = 0
humsum = 0
while compsum<3 or humsum<3:
comp = randint(0,2)
hum = input('Су... Е... Фа!!!')
if comp == бумага and hum == ножницы:
humsum += 1
elif comp == бумага and hum == камень:
compsum += 1
elif comp == камень and hum == ножницы:
compsum += 1
elif comp == ножницы and hum == бумага:
compsum += 1
elif comp == камень and hum == бумага:
humsum += 1
elif comp == ножницы and hum == камень:
humsum += 1
else:
compsum += 0
if compsum == 3:
print('Ты умнее чем компьютер! Поздравляю!')
else:
print("Ты проиграл, давай до свидания.")
.
Андрей Шуклин
Андрей Шуклин
59 799
Лучший ответ
Если исправлять твой код, то:
 while compsum < 3 and humsum < 3: 
Иначе игра будет продолжаться, пока каждый не выиграет не менее 3 раз.
 hum = int(input('...')) 
Строка никогда не равна числу.

И выкинуть на фиг:
 else: 
compsum += 0
Зачем то, что ничего не делает?
Андрей Суханов
Андрей Суханов
55 122
Дмитрий Кириченко Так я и хочу чтоб игра была пока кто то не выиграет до трёх побед
 if comp == бумага and hum == ножницы: 
а что можно имена переменных писать кириллицей?

а ошибка тут
 hum = input('Су... Е... Фа!!!') 
У тебя hum никогда 0, 1 или 2 не станет
Меха Раджабов
Меха Раджабов
34 940
 from random import randint 

ls = ('камень', 'ножницы', 'бумагу', 'Ничья', 'Победа',
'Проигрыш', 'Вы выбрали', 'компьютер выбрал')
[print(k, v, sep=' - ') for k, v in enumerate(ls[:3])]
cnt_h, cnt_c = 0, 0

while True:
while True:
x = int(input('Введите число: '))
if x in (0, 1, 2): break
else: print('Введены некорректные данные')
y = randint(0, 2)
print(f'{ls[6]} {ls[:3][x]},', end=' ')
if x != y:
if x == 0 and y == 1 or x == 1 and y == 2 or x == 2 and y == 0:
print(f'{ls[7]} {ls[y]} - {ls[4]}')
cnt_h += 1
elif x == 0 and y == 2 or x == 1 and y == 0 or x == 2 and y == 1:
print(f'{ls[7]} {ls[y]} - {ls[5]}')
cnt_c += 1
else:
print(f'{ls[7]} {ls[x]} - {ls[3]}')
print(f'Счёт {cnt_h} : {cnt_c}')
if cnt_h == 3 or cnt_c == 3:
break
print(('Вы одержали 3и победы', 'Компьютер одержал 3и победы')[cnt_c == 3])
KP
Kostya Podorov
2 326