当我在命令行上输入-->;字符串搜索.py乔
Expected Result: joe foe
Actual Result: joe foe
No String
代码:
#!usr/bin/python
import sys
SearchString = sys.argv[1]
def __init__(self, fname, lname):
self.fname = fname
self.lname = lname
def display(self):
if SearchString in per.fname:
print per.fname, per.lname
if SearchString in per.lname:
print per.fname, per.lname
else:
print "No String"
obj=[People("joe","foe"),People("lui","sui")]
for per in obj:
per.display()
我应该在哪里写else部分来获得预期的输出
第一个问题:
if
语句本身并不构成一组备选语句。指示使用elif
关键字,以便在不满足任何条件时执行else
部分。 在您的第一个版本中,第一个if
是单独验证的。在这之后有一个单独的选择:要么print per.fname, per.lname
如果SearchString in per.lname
是真的,要么print "No String"
,不管第一个if
的评估结果如何。你知道吗第二个问题是:
如果在第一次迭代中使用
joe
或foe
作为参数运行脚本,它将打印预期结果。但是在第二次迭代中,它将不匹配第二个对象中的任何内容并打印"No String"
。你知道吗可能的解决方案:
请注意,我所做的唯一一件事就是使函数按其名称的方式运行。如果你坚持这条简单的规则,就会省去很多麻烦。原来的
display
函数所做的远远不止“显示”:相关问题 更多 >
编程相关推荐