Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 23, 2019 08:16:08

Pythonist_beginner
Зарегистрирован: 2019-09-23
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

По книжке Доусона делаю задачу и с блоком 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)

Офлайн

#2 Сен. 23, 2019 09:21:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

Pythonist_beginner
Что не так?
 tries = 1
if tries > 3:  # 0
  break
  while guess != the_number:  # 1

#1 это цикл, цикл будет крутиться, пока выполняется условие, а #0 это что? Ваш код никогда не вернется к этой точке, что надеетесь тут получить?



Офлайн

#3 Сен. 23, 2019 09:40:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

Pythonist_beginner
Что не так?
у вас while guess != the_number: никгда не сработает, так как он у вас внутри блока if tries > 3:, а у вас tries = 1.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Сен. 23, 2019 09:58:40

Pythonist_beginner
Зарегистрирован: 2019-09-23
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

FishHook
сакральный смысл этого кода так бездарно мной переделанного - дать три попытки на угадывание числа которое загадал компьютер, но что-то я не туда вонзил
 if tries > 3:
  break

видимо…

Офлайн

#5 Сен. 23, 2019 10:01:16

Pythonist_beginner
Зарегистрирован: 2019-09-23
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

после трех попыток программа прекращает свою работу.. в теории.. а на практике она даже не запускается.

Офлайн

#6 Сен. 23, 2019 11:22:38

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

Pythonist_beginner
сакральный смысл этого кода так бездарно мной переделанного - дать три попытки на угадывание числа которое загадал компьютер, но что-то я не туда вонзил
вам нужно это условие перенести внутрь блока while guess…. а пока у вас все наоборот.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#7 Сен. 23, 2019 11:32:17

Pythonist_beginner
Зарегистрирован: 2019-09-23
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

PEHDOM
поправьте меня если я не прав - если я переношу условие внутрь блока, то пользователь по истечении трех попыток получает сообщение что он красавчик и все отгадал и число было такое то.

Отредактировано Pythonist_beginner (Сен. 23, 2019 11:37:48)

Офлайн

#8 Сен. 23, 2019 11:37:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 23, 2019 11:52:52)

Офлайн

#9 Сен. 23, 2019 12:12:03

Pythonist_beginner
Зарегистрирован: 2019-09-23
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

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]

Офлайн

#10 Сен. 23, 2019 14:55:01

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите, джентельмены.

Pythonist_beginner
вроде работает как надо)
ну не совсем , я предвижу кейс когда оно выдаст:
"ну ты и тупой! "
"Красавчиииииик! Число было nn"
"Хлебнуть маминого ликера можешь 13 рюмок"



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 23, 2019 14:55:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version