![](/img/trans.png)
[英]I am new to Python. And this recursive program tends not to run for some strange reason I can't figure out. Any help would be grateful
[英]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_1
和guess_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_1
和guess_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.