Python 如何为变量分配不同的变量,以便如果输入与分配的变量之一匹配,则答案是正确的
创建一个猜字游戏和秘密单词可以有任何变体,但是我如何编写不同变体的秘密单词被程序识别 在这种情况下,秘密单词是“Korea”,我如何能够统一任何变体,或者我必须插入每一种不同的变体Python 如何为变量分配不同的变量,以便如果输入与分配的变量之一匹配,则答案是正确的,python,string,variations,Python,String,Variations,创建一个猜字游戏和秘密单词可以有任何变体,但是我如何编写不同变体的秘密单词被程序识别 在这种情况下,秘密单词是“Korea”,我如何能够统一任何变体,或者我必须插入每一种不同的变体 secret_word = {"korea", "kOrea", "KoRea", "KoReA", "KOrea, "KORea", "Korea", "KOREA"} guess = "" guess_count = 0 guess_limit = 3 out_of_guesses = False while
secret_word = {"korea", "kOrea", "KoRea", "KoReA", "KOrea, "KORea",
"Korea", "KOREA"}
guess = ""
guess_count = 0
guess_limit = 3
out_of_guesses = False
while guess != secret_word and not (out_of_guesses):
if guess_count < guess_limit:
guess = input("Guess a word: ")
guess_count += 1
else:
out_of_guesses = True
if out_of_guesses:
print("Maybe Next time! You are out of guesses")
else:
print("You win!")
secret_word={“korea”、“korea”、“korea”、“korea”、“korea”,
“韩国”、“韩国”}
guess=“”
猜测计数=0
猜测极限=3
猜不到=错
while guess!=秘密单词和not(猜不出来):
如果猜数<猜限:
猜=输入(“猜一个单词:”)
猜测计数+=1
其他:
猜不到=真
如果你猜不到:
打印(“也许下次吧!你猜不到了”)
其他:
打印(“你赢了!”)
我会以小写(或大写)形式保守秘密,然后将猜测转换为大写:
secret_word = 'korea'
while guess.lower() != secret_word and not (out_of_guesses):
# loop's body...
简而言之:不区分大小写的检查是一个比乍一看要困难得多的问题。应该为这种比较生成一个字符串 检查输入字符串的
.casefold()
是否与要猜测的字符串的.casefold()
相同,如:
secret_word = 'korea'
guess_count = 0
guess_limit = 3
while guess_count < guess_limit:
guess = input('Guess a word')
if guess.casefold() == secret_word.casefold():
break
else:
guess_count += 1
if guess_count < guess_limit:
print('You win')
else:
print('You lose')
而.casefold()
将返回ss
:
>>> 'ß'.casefold()
'ss'
>>> 'ss'.casefold()
'ss'
>>> 'ß'.casefold() == 'SS'.casefold()
True
不区分大小写的比较是一个困难的问题,因为某些字符没有大写/小写的等价物,等等。您可以使用
guess.lower()
将guess
的每个变体转换为小写。
所以你只需要给出小写的变化
较低(自我,/)
返回转换为小写的字符串副本。--帮助(str.lower)
secret\u word=“韩国”
guess=“”
猜测计数=0
猜测极限=3
猜不到=错
while guess.lower()!=secret\u word and not(猜不出来):
如果猜数<猜限:
猜=输入(“猜一个单词:”)
猜测计数+=1
其他:
猜不到=真
如果你猜不到:
打印(“也许下次吧!你猜不到了”)
其他:
打印(“你赢了!”)
您忘记了guess=“”?还是它不是必需的?我看到guess=input('guess a word')@JMin:不,这不是必需的,因为我们在循环中设置了它。
>>> 'ß'.casefold()
'ss'
>>> 'ss'.casefold()
'ss'
>>> 'ß'.casefold() == 'SS'.casefold()
True