我目前在第10年,我正在创建一个程序,告诉用户,如果他们的赎金笔记可以从他们输入的文章创建。我输入的一些输入出现了错误:TypeError:无法隐式地将'NoneType'对象转换为str
它似乎在一开始工作,但后来我键入“你好”作为我的赎金笔记和“地狱”作为我的文章,它出现了上述错误。我想可能是因为文章比笔记要短,但我尝试了其他输入,这似乎不是问题。我已经包含了这个函数,以防可能与它有关。抱歉,如果我的代码有点混乱或效率低下
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))
赎金功能:
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语句是真的,而第二个不是真的,会发生什么?或者如果第一个if语句是错误的,第二个if语句是错误的?这就是为什么它只发生在一些输入上-它只发生在那些从if语句的裂缝中滑出的输入上。另外,我不太确定你的缩进是否适合你的else语句。尝试运行以下命令:把“某物”改成适当的反应
相关问题 更多 >
编程相关推荐