我有一个名为game.py
的文件,其中包含以下代码:
import other
items = []
for _ in range(1, 15):
a = other.myfunction()
items.append(a)
min = min(items)
max = max(items)
print(min)
print(max)
当我使用python game.py
从终端运行此功能时,它工作得很好,并且我打印了两个值。
但是,当我通过在脚本的开头添加def main():
并在脚本的末尾添加if __name__ == "__main__": main()
修改脚本并使用./game.py
从终端运行它时,出现以下错误:
File "./game.py", line 8, in <module>
min = min(items)
ValueError: min() arg is an empty sequence
如果我仅添加了函数定义,为什么SAME代码无法运行?我从来没有遇到过这个问题...
我在脚本的开头使用def main():
并在脚本的结尾使用if __name__ == "__main__": main()
粘贴我的代码:
import other
items = []
def main():
for _ in range(1, 15):
a = other.myfunction()
items.append(a)
min = min(items)
max = max(items)
print(min)
print(max)
if __name__ == "__main__":
main()
答案 0 :(得分:-1)
items = items.append(a)
返回items.append(a)
的返回值None
。
您应该将该行修改为items.append(a)
另外,在函数外部有items
的声明,除非有特殊原因,否则应在函数内部声明。
答案 1 :(得分:-1)
下一个问题的原因是:
您应为变量使用不同的名称,而不要使用函数名称({min_
和max_
而不是函数名称的min
和max
)。
如果成功(或失败)运行,则通过脚本返回值也是一个好习惯。
import other
import sys
items = []
def main():
for _ in range(1, 15):
a = other.myfunction()
items.append(a)
min_ = min(items)
max_ = max(items)
print(min_)
print(max_)
return 0
if __name__ == "__main__":
sys.exit(main())