【发布时间】:2020-03-24 14:24:53
【问题描述】:
我被分组为一个项目,我被期望找到尽可能多的著名科学家,他们的名字的第一个字母和我一样。但我需要知道是我必须自己想出答案,还是我的团队中有可以与我一起工作的人?
输入是一串我的组成员的姓名,用空格分隔,然后是我的姓名。
预期输出:
一个字符串,如果我有一个名字伙伴,则显示"Compare notes",或者如果我必须独自工作,则显示"No such luck"。
group_members = input().split()
my_name = input()
for fellow in group_members:
if fellow[0] is my_name[0]:
print("Compare notes")
break
else:
print("No such luck")
break
我的程序对除一个测试用例外的所有测试用例都运行良好。请问,这个bug可能在哪里?感谢您的支持。
【问题讨论】:
-
欢迎堆栈溢出。请edit您的问题包括样本输入和预期输出,以及实际输出与预期有何不同。 “适用于除一个测试用例之外的所有测试用例”不是特别有用,除非您提供测试用例
-
欢迎来到 SO。您可能需要阅读 How to Ask 和 minimal reproducible example 并相应地编辑您的问题。注意:minimal reproducible example 表示我们可以复制粘贴您的代码,运行它并获得与您完全相同相同的结果。
-
删除第一个
break。 -
我回应了之前 cmets 所说的所有内容,并且我还猜测您想在循环之后打印“没有这样的运气”,如果第一个字母不匹配,则不是每次迭代。
-
虽然有两个明显的问题:1/如果你的代码确实是这样缩进的,那么它将在第一个失败的测试中退出循环,2/你想使用相等测试 (
==),而不是身份测试 (is) - 由于 CPython 缓存了一些字符串,它目前只有“某种”工作,但这是一个你不能依赖的实现细节。