我正在为我正在上课的课程编写一个“简单”的小程序。这应该询问我要搜索哪个团队,然后返回它出现在 .txt 文件列表中的次数。它像它应该的那样请求输入,并且看起来运行得很好!它现在已经运行了一个小时:)我完全没有收到任何错误,它似乎陷入了循环。
预先感谢大家的帮助!
这是我的代码
count = 0
def main():
# open file
teams = open('WorldSeriesWinners.txt', 'r')
# get input
who = input('Enter team name: ')
#begin search
lst = teams.readline()
while lst != '':
if who in lst:
count += 1
teams.close()
print(count)
main()
您无需手动检查文件计数行。你可以只使用.read()
:
count = lst.count(who)
另一个问题是你正在打电话teams.close()
and print(count)
在函数之外。
这意味着它们会在您调用 main 之前尝试执行,并且您试图关闭尚未打开或定义的“团队”,因此您的代码不知道该怎么做。打印计数也是如此 - 计数尚未在函数外部定义,该函数尚未被调用。
如果您想在函数外部使用它们,则需要在函数末尾return count
另外,在循环中,您正在执行语句count += 1
意思是count = count + 1
,但是您没有告诉它第一次运行时的计数是多少,因此它不知道应该向其中添加什么。通过定义解决这个问题count = 0
在函数内的循环之前。
无限循环的原因是因为你的条件永远不会得到满足。你的代码永远不应该花费一个小时来执行,就像,几乎永远不应该。不要让它运行一个小时。
这是一些替代代码。但请确保您理解这些问题。
def main():
file = open('WorldSeriesWinners.txt', 'r').read()
team = input("Enter team name: ")
count = file.count(team)
print(count)
main()
您实际上可以将整个程序放到一行中:
print(open('WorldSeriesWinners.txt', 'r').read().count(input("Enter team name: ")))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)