Как можно оптимизировать код при решении задачи, угадай число
Всем привет. Пытаюсь решить задачу угадай число. Подскажите, можно ли улучшить код в задаче угадай число, в частности в блоке if. Я только начал изучать Pytnon.
number = 37
count = 0
while count < 5:
your_num = int(input('Введите число от 1 до 100: '))
count += 1
if your_num == number:
if count == 1:
print(f'Вы угадали число за {count} попытку. Спасибо за игру!')
if 1 < count < 5:
print(f'Вы угадали число за {count} попытки. Спасибо за игру!')
if count == 5:
print(f'Вы угадали число за {count} попыток. Спасибо за игру!')
break
elif your_num < number:
print('Ваше число меньше загаданного числа, попробуйте ещё раз.')
elif your_num > number:
print('Ваше число больше загаданного числа, попробуйте ещё раз.')
continue
Ответы (3 шт):
Автор решения: tonysdev
→ Ссылка
Конечно можно, в моей реализации я бы использовал следующую конструкцию
import random
ATTEMPTS_COUNT = 5 # Количество попыток
MIN_GUESS_NUMBER = 1 # Минимально возможное число
MAX_GUESS_NUMBER = 100 # Максимально возможное число
GUESS_NUMBER = random.randrange(MIN_GUESS_NUMBER, MAX_GUESS_NUMBER) # Угадываемое число
for attempt in range(ATTEMPTS_COUNT):
number = int(input(f'Введите число от {MIN_GUESS_NUMBER} до {MAX_GUESS_NUMBER}: '))
if number < GUESS_NUMBER:
print('Ваше число меньше загаданного числа, попробуйте ещё раз.')
elif number > GUESS_NUMBER:
print('Ваше число больше загаданного числа, попробуйте ещё раз.')
elif number == GUESS_NUMBER:
print(f'Вы угадали число за {attempt + 1} попыт(ку/ок), спасибо за игру!')
break
Автор решения: tomato-magnet-regulato
→ Ссылка
import random
cnt = 1
number = int(random.uniform(1, 100))
print(number)
def chek(num, in_num):
if(in_num == num):
return True
else:
return False
while True:
inp = int(input('Отгадай число от 1 до 100: '))
if chek(int(number), inp) == True:
print(f"Верно! Кол-во попыток: {cnt}")
break
else:
cnt +=1
print(f"Я загадал другое число! Кол-во попыток: {cnt}")
Автор решения: SergFSM
→ Ссылка
можно ли улучшить код в задаче угадай число, в частности в блоке if
вы можете переписать блок if примерно так (это короче, но не уверен, что лучше):
number = 37
count = 0
while count < 5:
your_num = int(input('Введите число от 1 до 100: '))
count += 1
if your_num == number:
print(f"Вы угадали число за {count} попыт{['ку','ки','ки','ки','ок'][count-1]}. Спасибо за игру!")
break
print(f"Ваше число {['меньше','больше'][your_num>number]} загаданного числа, попробуйте ещё раз." if count < 5 else
f'Вы не угадали. Загаданное число - {number}.')