繁体   English   中英

我的 python 程序是一个秘密单词猜测器,我知道有一个错误,我只是不知道它是什么? 任何帮助将不胜感激

[英]my python program is a secret word guesser and I know theres an error I just can't figure out what it is? any help would be greatly appreciated

这是我到目前为止的代码。 我的错误在于我运行它时。 如果没有为 Guess 输入任何内容,那么它会显示很少,但如果我输入一个字母,它会显示很多。 如果它比秘密短语长,它只需要对许多人说。

secret = 'BRINGCOFFEE'
guess_1 = str(len('bringcoffee'))
guess_2 = str(len('bringcoffee'))

while(secret != True):
    phrase = input('Guess the Secret phrase! \nGuess:')
    if phrase < guess_1:
        print('Too Few Characters')
    elif phrase > guess_2:
         print('Too Many Characters')

将整数转换为字符串将导致与 ASCII 值而不是 int 值进行比较。 要比较长度,您应该将短语长度转换为 integer 而不是将猜测单词的长度转换为字符串。 您也可以在两个条件语句中重用一个变量。

您的代码应如下所示

secret = 'BRINGCOFFEE'
guess_len = len(secret)
ans_not_guessed = True

while(ans_not_guessed):
    phrase = input('Guess the Secret phrase! \nGuess:')
    if len(phrase) < guess_len:
        print('Too Few Characters')
    elif len(phrase) > guess_len:
         print('Too Many Characters')

您正在将这两个字符串的长度转换为字符串本身——这意味着guess_1guess_2的值将是字符串“11”。 因此,当您比较if phrase < guess_1:时,您正在检查字符串phrase是否处于较低的字典顺序

如果正确检查了密码短语的长度,则代码如下所示:

secret = 'BRINGCOFFEE'
guess_1 = len(secret)
guess_2 = len(secret)

while(secret != True):
    phrase = input('Guess the Secret phrase! \nGuess:')
    if len(phrase) < guess_1:
        print('Too Few Characters')
    elif len(phrase) > guess_2:
         print('Too Many Characters')

但是不清楚为什么你有guess_1guess_2变量。 据我所知,您只需执行以下操作即可拥有完整的短语检查程序:

secret = 'BRINGCOFFEE'

while True:
    phrase = input('Guess the Secret phrase! \nGuess:').upper() # convert to uppercase since the secret is uppercase
    if len(phrase) < len(secret):
        print('Too Few Characters')
    elif len(phrase) > len(secret):
        print('Too Many Characters')
    elif phrase == secret:
        break

print('You guessed correctly!')

暂无
暂无

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

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