繁体   English   中英

Python 忽略如果

[英]Python ignoring if

从 python(和计算机编程)开始,我正在尝试在这里编写代码,但我不确定为什么 python 忽略了我的 if/elif。 我正在创建一个带有随机数的变量,用户必须猜测每次错误尝试,一旦用户插入正确的数字,我就会给出提示(尝试更低/更大的数字),我正在尝试创建一个 continue选项。 但是一旦用户被提示问题 Você quer jogar novamente? (你想再玩一次吗?),与输入无关,游戏总是 go 作为下一个 if 的第一个选项。我正在尝试实现是或否输入(没关系)并使用答案关闭应用程序或重新开始游戏(不行)。

有什么想法吗?

thxxxxx

import random
import os
import time

# escolhendo o numero
numberSelected = random.randrange(101)


def dica():
    if number > numberSelected:
        print("Tente um numero menor")
    else:
        print("Tente um numero maior")


def cls():
    os.system('cls' if os.name == 'nt' else 'clear')


while True:
    text = input("Aperte enter para começar...")
    if text == "":
        cls()
        print(
            "Um número de 0 a 100 foi gerado\nagora você precisa adivinhar o numero gerado")
        break
    else:
        print("Você ainda não apertou o Enter")
        cls()

number = None

while True:
    try:
        print(numberSelected)
        number = int(input('Chute um numero:'))
        if type(number) == int:
            if number == numberSelected:
                print("Muito bem você acertou!")
                print("Você quer jogar novamente?")
                retry = input('S/N?')
                if retry == "N" or "NAO":
                    print("Obrigado por jogar!")
                    exit()
                elif retry == "S" or "SIM":
                    print("vamos jogar novamente")
                    cls()
                    numberSelected = random.randrange(101)
                    continue
            elif number != numberSelected:
                cls()
                dica()
                continue
    except ValueError:
        print("Digite um numero Inteiro!!")
        time.sleep(0.8)
        cls()

这有点糟糕,但 python 不允许你这样做。

if answer == 'no' or 'yes'

这将引发错误。 因此,您必须这样做。

if answer == 'no' or answer == 'yes'

替代方法可能是in

if answer in ('no','yes)

固定代码

if number == numberSelected:
    print("Muito bem você acertou!")
    print("Você quer jogar novamente?")
    retry = input('S/N?')
    if retry in ("N","NAO"):
        print("Obrigado por jogar!")
        exit()
    elif retry in ("S","SIM"):
        print("vamos jogar novamente")
        cls()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM