好的,我的问题是,我需要定义一个函数,它读取一个数字文件(假设文件中的所有内容都是数字),然后打印任何不能被3整除的奇数。我的教授特别要求在这个程序中进行try/except。 我的代码是
import sys
def threething(name):
try:
file = open(name, 'r')
except:
sys.exit("Bad file name for some odd reason idk.")
data = file.readlines()
for line in data:
o = int(line)
if o % 2 == 1:
if o % 3 != 0:
return o
file.close()
filename = input("file name pls: ")
print(threething(filename))
而我使用的文本文件刚刚
1
2
3
4
5
6
7
8
9
在里面。之前,我的代码在没有try/except的情况下运行良好,并按预期打印了1、5和7,但我似乎不知道如何使用try/except
我怀疑
try
/except
语句与行为的改变有任何关系。我敢打赌,正如@theausome所指出的,您在没有注意到的情况下用return o
替换了print(o)
问题是
return
语句会中断函数的执行。作为一个简化的例子,考虑下面的代码:如果调用它,将得到以下输出:
为什么它只执行函数的第一个
print()
?因为在返回之后,函数停止执行。因此,当您返回时,没有检查其他值,只有第一个值被赋予了print
函数尝试使用
print(o)
而不是return o
。在这种情况下,您不需要打印threething()
的返回:相关问题 更多 >
编程相关推荐