Top.Mail.Ru
Ответы

Программирование , не получается написать код "Угадай число"

Написал детский код на python "Угадай число от 1 до 4"
И вот в цикле while, после оператора if идет b == "да" or "Да".
Программа исправно работает если там только один вариант, без or, например
b == "да". А вот если же там or, то без разницы что ответишь на "Хочешь попробовать еще?" программа продолжает работать, хотя и должна выводится надпись Эх, я еще хотел поиграть

from random import randint

print ("Игра - угадай загаданное число")
number = int ( input ("\nКак думаешь, какое целое число я загадал от 1 до 4 ? - " ) )

r = randint ( 1, 4 )

if number == r :
print ("Ух, ты. Верно")
b = input ("\nХочешь попробовать еще? - ")
else :
print ("ой, не правильно, загаданное число -", r)
b = input ("\nХочешь попробовать еще? - ")

while True :
if b == "да" or "Да" :
number = int ( input ("\nКак думаешь, какое число я загадал от 1 до 4 ? - " ) )
r = randint ( 1, 4 )

if number == r :
print ("Ух, ты. Верно")
b = input ("\nХочешь попробовать еще? - ")
else :
print ("ой, не правильно, загаданное число -", r)
b = input ("\nХочешь попробовать еще? - ")
else :
print ("\nЭх, я еще хотел поиграть")
break

input()

По дате
По рейтингу
Аватар пользователя
Ученик
123456789101112131415161718
 import random 
 
def game(l, r): 
    x = random.randint(l, r) 
    print(f"Try to guess number from {l} to {r}") 
    if int(input()) == x: 
        print(f"Congratulations! You are right! It was {x}") 
    else: 
        print(f"Oops! You are wrong! The right answer was {x}") 
    print("Do you want to play again? Y/y - for yes, other - for no:") 
    if input().lower() == "y": 
        game(l, r) 
    else: 
        print("It's the end! Thank you for playing!") 
 
 
game(1, 4) 
 
Аватар пользователя
Ученик

код конечно намного красивее моего и практичнее, но я еще не дошел до def, и даже не понимаю для чего используются {} в {1} и {r}. Но за код спасибо, сохраню. Потом более детальнее рассмотрю чтобы понять что да как работает

Аватар пользователя
Ученик

И вот я хоть немного почитал код, и ,боже, какой же он гениальный для меня. Просто идеал. Спасибо за motivation

Аватар пользователя
Гений

b == 'да' or b == 'Да'
или
b in ['да', 'Да']
или
b.lower() == 'да'

А b == "да" or "Да" означает (b == "да") or "Да" и ВСЕГДА равно True.

Аватар пользователя
Ученик

Спасибо большое

Аватар пользователя
Оракул

В нормальных языках не
if b == "да" or "Да"
а
if b == "да" or b=="Да"
про пайтон не знаю

Аватар пользователя
Ученик

Все заработала, спасиб. Теперь знать буду



Видео по теме