首页 > 解决方案 > 如何用 WHILE 循环重写这个 FOR 循环

问题描述

这是我在 Python 电子书中的练习之一。我只是想知道是否可以使用 WHILE 而不是 FOR。谢谢你的帮助

#要求用户输入正则表达式 #计算匹配正则表达式的行数。

我的代码

x= input('Enter a regular expression.') 
file = open('mbox-short.txt') 
count = 0  
for line in file: line=line.rstrip()
  if re.search('\\b' + x + '\\b', line):
    count=count+1
print (count)

标签: python

解决方案


如果您真的想提高一个档次,请利用 True 和 False 总和为 1 和 0 的事实。这完全摆脱了显式的 for 和 while。

import re
x = input('Enter a regular expression.')
my_regex = '\\b' + x + '\\b'
with  open('mbox-short.txt') as f:
    count = sum(bool(re.search(my_regex, line)) for line in f)

推荐阅读