gpt4 book ai didi

python - 如何修复某些输入出现的 'TypeError'

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

我目前正处于第 10 年,我正在创建一个程序,告诉用户是否可以从他们输入的文章中创建他们的勒索字条。我输入的一些输入出现错误:TypeError:无法将“NoneType”对象隐式转换为 str

一开始似乎可行,但后来我输入“hello”作为我的勒索信,输入“hell”作为我的文章,然后出现了上面的错误。我认为这可能是因为文章比注释短,但我尝试使用其他输入,这似乎不是问题。我已经包含了该函数,以防可能与它有关。抱歉,如果我的代码有点困惑或效率低下。

elif choice == "2" :

user_note = input("\nPlease enter your ransom note: ")

user_article = input("Please enter your article: ")

print("\n" + can_I_ransom(user_article, user_note))

can_I_ransom 函数:

def can_I_ransom(newspaper_text, ransom_text):
article_list = list(newspaper_text)
article_copy = list(newspaper_text)

for i in range(len(ransom_text)):
for j in range(len(article_list)):
if ransom_text[i] == article_list[j]:
del article_list[j]
if len(article_copy)-len(ransom_text) == len(article_list):
return "Ransom can be made"
break

else:
if j == len(article_list)-1:
return "Ransom note cannot be made"

我期望输出是“可以进行勒索赎金”或“不能进行勒索赎金”,没有其他内容。如果可以的话请帮忙:)

最佳答案

问题是,当无法支付赎金时,您不会返回任何东西,因此它不知道如何处理 None ,这就是您破坏时出现的结果而实际上并没有得到“你可以赎金”的输出。例如,如果第一个 if 语句为 true 但第二个 if 语句不为 true,会发生什么情况?或者如果第一个 if 语句为假而第二个 if 语句为假?这就是为什么它只发生在某些输入上 - 它只发生在那些从 if 语句中漏掉的输入上。另外,我不太确定您的缩进是否适合您的外部 else 语句。尝试运行这个:

def can_I_ransom(newspaper_text, ransom_text):
article_list = list(newspaper_text)
article_copy = list(newspaper_text)

for i in range(len(ransom_text)):
for j in range(len(article_list)):
if ransom_text[i] == article_list[j]:
del article_list[j]
if len(article_copy)-len(ransom_text) == len(article_list):
return "Ransom can be made"
else:
return "something"

else:
if j == len(article_list)-1:
return "Ransom note cannot be made"
else:
return "something"
choice = "2"
if choice == "2" :

user_note = input("\nPlease enter your ransom note: ")

user_article = input("Please enter your article: ")

print("\n" + can_I_ransom(user_article, user_note))

只需将“某事”更改为适当的响应即可。

关于python - 如何修复某些输入出现的 'TypeError',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54272414/

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