如何用WHILE循环重写FOR循环

2024-03-28 22:45:24 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在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)

Tags: 代码用户forinputcountlineopen电子书
3条回答
x= input('Enter a regular expression.')
file = open('mbox-short.txt') 
count = 0
while(re.search('\\b' + x + '\\b', line)):
   count = count+1
print(count)

我想这会管用的

如果你真的想把它提高一个档次,利用真与假之和为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)

您可以使用下面的while循环执行下面的相同任务

import re
x = input('Enter a regular expression.')
fileHandler = open('tmp.txt')
count = 0
while True:
    line = fileHandler.readline()
    if not line:
        break
    if re.search('\\b' + x + '\\b', line):
        count += 1
print (count)

相关问题 更多 >