另一个问题。
该程序对代码中的每一行进行计数和编号,除非它有一个哈希标记或该行为空。我得到它除了哈希标签之外的每一行编号。怎么能阻止它计算空行?
def main():
file_Name = input('Enter file you would like to open: ')
infile = open(file_Name, 'r')
contents = infile.readlines()
line_Number = 0
for line in contents:
if '#' in line:
print(line)
if line == '' or line == '\n':
print(line)
else:
line_Number += 1
print(line_Number, line)
infile.close()
main()
答案 0 :(得分:3)
您检查line == '' or line == '\n'
的{{1}}条款中if
是否'#' in line
,True
无法if line == '' or line == '\n':
。
基本上,您需要将if '#' in line or not line or line == '\n':
print line
行移到左侧:)
此外,您可以结合这两种情况,因为您执行相同的操作:
'\n'
但实际上,为什么需要打印空蜇或line == '\t'
?
编辑:
如果if '#' in line or not line.strip()
等其他情况应该以同样的方式对待,那么最好使用Tim的建议并执行:{{1}}。
答案 1 :(得分:0)
您可以通过在for循环的开头添加以下内容来跳过空行:
if not line:
continue
在Python中,空字符串的计算结果为布尔值True。如果这意味着跳过空行,因为当字符串为空时,此if语句仅为True。
语句continue表示代码将在下一次循环中继续。它不会在该语句之后执行代码,这意味着将跳过计算行数的代码。