argc = len(sys.argv)
if (argc < 3 or argc > 5):
printusage()
sys.exit()
insensitive = 1 if ("-i" in sys.argv) else 0
boundaries = 1 if ("-b" in sys.argv) else 0
filename = sys.argv[argc-2]
str = sys.argv[argc-1]
print "Looking for '", str , "' in '" , filename , "'"输出是
python count_words.py -b -i football.txt目标 在“football.txt”中寻找目标
为什么在“目标”和“football.txt”之前和之后有一个空格?当我试图自己打印str和filename变量时,它们没有这些空格。
我也尝试在打印中使用str.strip(),但没有效果。
有什么想法吗?
发布于 2011-09-14 12:26:34
空格不在sys.argv中,它是由于打印时使用逗号造成的。试一试
print "Looking for '%s' in '%s'" % (str, filename)尽量避免隐藏内置的str。
发布于 2011-09-14 12:27:18
这是因为您要将单独的字符串传递给print语句,而不是将它们连接到一个字符串中并一次打印出来:
>>> print "a", "b"
a b
>>> print "a" + "b"
ab请注意,串连字符串的开销相对较高:最好使用插值,如下所示:
>>> print "A %s with %s" % ("string", "placeholders")
A string with placeholders发布于 2011-09-14 12:26:22
是你打印语句中的逗号。如果您使用以下方法,它将工作:
打印“%s”中的“%s”(str,filename)
https://stackoverflow.com/questions/7416230
复制相似问题