gpt4 book ai didi

python - 变量的大小写折叠变化,因此输入与分配的变量之一匹配

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:24 24 4
gpt4 key购买 nike

创建一个猜词游戏,secret_word 可以是任何变体,但我将如何编写程序识别的 secret_word 的不同变体?

在这种情况下, secret 词是“韩国”,我如何才能统一任何变体,或者我是否必须插入每种不同的变体?

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!")

最佳答案

简而言之:不区分大小写的检查是一个比乍看起来更难的问题。 str.casefold() function [python-doc]应该为此类比较生成一个字符串。

您检查输入字符串的 .casefold() 是否与要猜测的字符串的 .casefold() 相同,例如:

secret_word = 'korea'
guess_count = 0
guess_limit = 3

while guess_count < guess_limit:
guess = input('Guess a word')
if <b>guess.casefold() == secret_word.casefold()</b>:
break
else:
guess_count += 1

if guess_count < guess_limit:
print('You win')
else:
print('You lose')

.casefold() 应该是Unicode standard生成一个可以进行不区分大小写比较的字符串。例如在德语中,eszett ß [wiki]大写映射到:

>>> 'ß'.lower()
'ß'
>>> 'ß'.upper()
'SS'
>>> 'SS'.lower()
'ss'
>>> 'ß'.lower() == 'SS'.lower()
False

.casefold() 将返回 ss:

>>> 'ß'.casefold()
'ss'
>>> 'ss'.casefold()
'ss'
>>> 'ß'.casefold() == 'SS'.casefold()
True

不区分大小写的比较结果是一个难题,因为某些字符没有等效的大写/小写等。

关于python - 变量的大小写折叠变化,因此输入与分配的变量之一匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56828141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com