Форум сайта python.su
0
По книжке Доусона делаю задачу и с блоком guessing loop бьюсь второй день. Что не так?
import random print("\tWelcome to 'Guess My Number'!") print("\nI'm thinking of a number between 1 and 100.") print("Try to guess it in as few attempts as possible.\n") # set the initial values the_number = random.randint(1, 100) guess = int(input("Take a guess: ")) tries = 1 # guessing loop if tries > 3: break while guess != the_number: if guess > the_number: print("Lower...") else: print("Higher...") guess = int(input("Take a guess: ")) tries += 1 print("You guessed it! The number was", the_number) print("And it only took you", tries, "tries!\n") input("\n\nPress the enter key to exit.")
Отредактировано Pythonist_beginner (Сен. 23, 2019 08:17:17)
Офлайн
568
Pythonist_beginner
Что не так?
tries = 1 if tries > 3: # 0 break while guess != the_number: # 1
Офлайн
294
Pythonist_beginnerу вас while guess != the_number: никгда не сработает, так как он у вас внутри блока if tries > 3:, а у вас tries = 1.
Что не так?
[code python][/code]
Офлайн
0
FishHookсакральный смысл этого кода так бездарно мной переделанного - дать три попытки на угадывание числа которое загадал компьютер, но что-то я не туда вонзил
if tries > 3: break
Офлайн
0
после трех попыток программа прекращает свою работу.. в теории.. а на практике она даже не запускается.
Офлайн
294
Pythonist_beginnerвам нужно это условие перенести внутрь блока while guess…. а пока у вас все наоборот.
сакральный смысл этого кода так бездарно мной переделанного - дать три попытки на угадывание числа которое загадал компьютер, но что-то я не туда вонзил
[code python][/code]
Офлайн
0
PEHDOMпоправьте меня если я не прав - если я переношу условие внутрь блока, то пользователь по истечении трех попыток получает сообщение что он красавчик и все отгадал и число было такое то.
Отредактировано Pythonist_beginner (Сен. 23, 2019 11:37:48)
Офлайн
294
Pythonist_beginnerну да, если вы хотите чтобы оно вам выводило чтото другое если число не угадано, то нужно писать соответвующую проверку, по выходе из цикла, типа :
поправьте меня если я не прав - если я переношу условие внутрь блока, то пользователь по истечении трех попыток получает сообщение что он красавчик и все гадал и число было такое то.
if guess == the_number :
красава! угадал!
else:
ну ты и лошара XD
[code python][/code]
Отредактировано PEHDOM (Сен. 23, 2019 11:52:52)
Офлайн
0
PEHDOMс вашей помощью справился)) вроде работает как надо)
[code python]import random
print("\tWelcome to 'Guess My Number'!")
print("\nI'm thinking of a number between 1 and 100.")
print("Try to guess it in as few attempts as possible.\n")
# set the initial values
the_number = random.randint(1, 100)
guess = int(input("Take a guess: "))
tries = 1
# guessing loop
while guess != the_number:
if guess > the_number:
print("Lower...")
if guess < the_number:
print("Higher...")
guess = int(input("Take a guess: "))
tries += 1
if tries >= 13:
print("ну ты и тупой! ")
break
if guess == the_number:
print("Красавчиииииик! Число было", the_number)
print("Хлебнуть маминого ликера можешь",tries,"рюмок")
input("\n\nPress the enter key to exit.")[/code]
Офлайн
294
Pythonist_beginnerну не совсем
вроде работает как надо)
, я предвижу кейс когда оно выдаст:"ну ты и тупой! "
"Красавчиииииик! Число было nn"
"Хлебнуть маминого ликера можешь 13 рюмок"
[code python][/code]
Отредактировано PEHDOM (Сен. 23, 2019 14:55:34)
Офлайн