Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为变量分配不同的变量,以便如果输入与分配的变量之一匹配,则答案是正确的_Python_String_Variations - Fatal编程技术网

Python 如何为变量分配不同的变量,以便如果输入与分配的变量之一匹配,则答案是正确的

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

创建一个猜字游戏和秘密单词可以有任何变体,但是我如何编写不同变体的秘密单词被程序识别

在这种情况下,秘密单词是“Korea”,我如何能够统一任何变体,或者我必须插入每一种不同的变体

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