不使用 argprase 获取输出

Not getting output using 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__': 行的作用:

你的代码应该是这样的:

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__。另请注意,函数和变量名称应始终以小写字母开头。并在函数之间留一个空行,使代码更具可读性!