Найти - Пользователи
Полная версия: Помогите, джентельмены.
Начало » Python для новичков » Помогите, джентельмены.
1 2
Pythonist_beginner
По книжке Доусона делаю задачу и с блоком 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.")
FishHook
Pythonist_beginner
Что не так?
 tries = 1
if tries > 3:  # 0
  break
  while guess != the_number:  # 1

#1 это цикл, цикл будет крутиться, пока выполняется условие, а #0 это что? Ваш код никогда не вернется к этой точке, что надеетесь тут получить?
PEHDOM
Pythonist_beginner
Что не так?
у вас while guess != the_number: никгда не сработает, так как он у вас внутри блока if tries > 3:, а у вас tries = 1.
Pythonist_beginner
FishHook
сакральный смысл этого кода так бездарно мной переделанного - дать три попытки на угадывание числа которое загадал компьютер, но что-то я не туда вонзил
 if tries > 3:
  break

видимо…
Pythonist_beginner
после трех попыток программа прекращает свою работу.. в теории.. а на практике она даже не запускается.
PEHDOM
Pythonist_beginner
сакральный смысл этого кода так бездарно мной переделанного - дать три попытки на угадывание числа которое загадал компьютер, но что-то я не туда вонзил
вам нужно это условие перенести внутрь блока while guess…. а пока у вас все наоборот.
Pythonist_beginner
PEHDOM
поправьте меня если я не прав - если я переношу условие внутрь блока, то пользователь по истечении трех попыток получает сообщение что он красавчик и все отгадал и число было такое то.
PEHDOM
Pythonist_beginner
поправьте меня если я не прав - если я переношу условие внутрь блока, то пользователь по истечении трех попыток получает сообщение что он красавчик и все гадал и число было такое то.
ну да, если вы хотите чтобы оно вам выводило чтото другое если число не угадано, то нужно писать соответвующую проверку, по выходе из цикла, типа :
if guess == the_number :
красава! угадал!
else:
ну ты и лошара XD
ну или делать это прям внутри цикла, кому как удобнее.

Pythonist_beginner
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]
PEHDOM
Pythonist_beginner
вроде работает как надо)
ну не совсем , я предвижу кейс когда оно выдаст:
"ну ты и тупой! "
"Красавчиииииик! Число было nn"
"Хлебнуть маминого ликера можешь 13 рюмок"
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB