Форум сайта python.su
“Отгадай число”
Вот исходник:
——————————————————————————————————————————–
import random
nomer = random.randint(1, 100 )
gel = int(input(Ваше предложение: ))
popt = 1
while gel != nomer:
if nomer < gel:
print(“Меньше”)
else:
print(“Больше”)
popt += 1
print(“Угадано это”, nomer)
print(“Попытки”, popt)
input(“\n\nEnter”)
——————————————————————————————————————————–
Проблема в том, что если число не угадано, то на экране бесконечно пишет либо Меньше либо Больше
И вообще можете доработать и объяснить, просто недавно начал учить python
Программа должна работать так:
компьютер загадывает число
Я должен его отгадать
Если оно больше то пишет больше, меньше пишет меньше
Когда число отгадано появляется число попыток которые были затрачены
Заранее спасибо
Офлайн
from random import randint trials = 1 number = randint(1, 100) guess = int(raw_input("Enter your number: ")) while guess != number: if guess < number: guess = int(raw_input("Wrong way, it's bigger. Try again: ")) else: guess = int(raw_input("Wrong way, it's smaller. Try again: ")) trials += 1 print "Not bad, it took {0} times to find out my number!".format(trials)
[20:32] home:~/dev/fun python help.py
Enter your number: 50
Wrong way, it's smaller. Try again: 25
Wrong way, it's bigger. Try again: 37
Wrong way, it's bigger. Try again: 44
Wrong way, it's smaller. Try again: 40
Wrong way, it's bigger. Try again: 42
Wrong way, it's bigger. Try again: 43
Not bad, it took 7 times to find out my number!
Офлайн
Спасибо
Офлайн
Значит
gel = int(input(“”))
может убрать бесконечный цикл?
Офлайн
Может для начала почитать учебник по основам программирования? Освоиться в управляющих структурах и типах данных. В вашем примере значение gel вычисляется один раз вне цикла. А потом в цкиле вы выводите, меньше оно или больше загаданного компьютером. В моём варианте пользователь вводит новую попытку каждую итерацию цикла while.
Офлайн
И последние не могу сделать так, чтобы было ограниченное кол-во попыток.
Офлайн
т.е
popt = 5
а в while
popt -=1
—————————
Как сделать , чтобы если popt станет 0 , то попытки закончились?
Офлайн
Light3JIbqp, можно использовать оператор break
Операторы break и continue, а также условие else в циклах
if some_condition: break
Офлайн