如何解决没有使用 argprase 获得输出
我正在关注一个视频,该视频讨论了通过计算斐波那契数来使用 argparse 的基础知识。我将代码输入到我的 pycharm 编辑器中,当我运行代码时,我没有得到任何输出。它以以下消息结束,“进程已完成,退出代码为 0”。想法?
import argparse
def fib(n):
a,b = 0,1
for i in range(n):
a,b = b,a + b
return a
def Main():
parser = argparse.ArgumentParser()
parser.add_argument("num",help="Fibonacci number to calculate",type=int)
args = parser.parse_args()
result = fib(args.num)
print("The " + str(args.num) + "th fib number is " + str(result))
if __name__ == '__Main__':
Main()
解决方法
这一行是问题所在:
if __name__ == '__Main__':
当您运行脚本时,__name__
魔术变量设置为 __main__
并带有小写的 m
。修复它,它会起作用。
这个很棒的答案有很多关于魔法变量的细节以及 if __name__ == '__main__':
行的作用:
https://stackoverflow.com/a/419185/12118546
,你的代码应该是这样的:
import argparse
def fib(n):
a,b = 0,1
for i in range(n):
a,b = b,a + b
return a
def main():
parser = argparse.ArgumentParser()
parser.add_argument("num",help="Fibonacci number to calculate",type=int)
args = parser.parse_args()
result = fib(args.num)
print("The " + str(args.num) + "thw fib number is " + str(result))
if __name__ == '__main__':
main()
当作为程序运行时,__name__
将设置为__main__
而不是 __Main__
。另请注意,函数和变量名称应始终以小写字母开头。并在函数之间留空行,这样代码更易读!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。