gpt4 book ai didi

python - 如何使用外部文件的答案进行测验?

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

我正在尝试进行测验,但我的答案位于外部文件中,因此每次我使用正确答案运行它时,他们都会说它们不正确。

这是我的代码:

randNum = int(random.randint(0, 4))

song = open("songList.csv","rt")

with open("songList.csv", "rt") as f:

songn = str(song.readlines()[randNum])
reader= csv.reader(f)
for row in reader:
print (songn[0])

guess = input("What is the song called?")
score = 0
correct_guess = False
while True:
if guess == songn:
correct_guess = True
break

score += 1
if score>=total:
break
song_guess = input("Incorrect! Try again:\n> ")
if correct_guess:
print("Answer correct!")
else:
print("game over")

最佳答案

正如评论中所指出的,其中一个字符串中有尾随换行符。因此它们并不相等。

但是我不会仅仅删除换行符。如果您的逻辑允许,在测试相等性之前对字符串进行规范化始终是一个好习惯。您可以采取很多措施来实现正常化:

def normalize(string):
string = string.strip() # Remove any leading or trailing whitespaces
string = string.lower() # Make all letters lowercase
string = " ".join(string.split()) # If the user hit spacebar twice, for example, will remove the double space. Note can have side effects.
return string

然后检查

if normalize(string1) == normalize(string2):
do_something()

事实上,如果您正在处理用户输入,即使这样也可能还不够。例如,如果用户输入错误,则不会匹配。

所以我建议也看看 fuzzywuzzy 库

from fuzzywuzzy import fuzz 

def similar(string1, string2):
ratio = fuzz.ratio(string1, string2)
return ratio >= 85 # number between 0 and 100. Higher means fewer differences are allowed

Fuzzywuzzy 非常强大且易于使用。欲了解更多信息:https://github.com/seatgeek/fuzzywuzzy

关于python - 如何使用外部文件的答案进行测验?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54235805/

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