程序退出而不在argparse示例中获取用户输入

时间:2018-06-06 20:07:21

标签: python

我是python的新手。我尝试在pycharm中运行python代码以下,但不退出用户输入。有什么帮助吗?

import math
import argparse

parse = argparse.ArgumentParser(description='calculate the area of a cylinder')
parse.add_argument('radius', type=int, help='Radius of the Cylinder')
parse.add_argument('height', type=int, help='Height of the Cylinder')
args = parse.parse_args()


def cylinder_volume(radius, height):
    vol = math.pi * (radius ** 2) * (height)
    return vol


if __name__ == '__main__':
    print(cylinder_volume(args.radius, args.height))
age = input("take input")
print("The input is",age)

#C:\Users\manoj\venv\argparse_demo\Scripts\python.exe C:/Users/manoj/PycharmProjects/argparse_demo/new.py
#usage: new.py [-h] radius height
#new.py: error: the following arguments are required: radius, height

#Process finished with exit code 2

2 个答案:

答案 0 :(得分:0)

这似乎是对命令行参数和input()的冗余使用。我认为用input()做例子会让你在python编程中走错路径,他们也会对StackOverflow产生不确定/不可解释的结果。我试图提出这一点here earlier,但社区的支持非常有限。

在这种特殊情况下,线路开关输入看起来非常多余。您似乎只是学习通过命令行传递参数,然后您想要使用input() - 这似乎退后一步。

答案 1 :(得分:0)

argparse只接受sys.argv参数。要使用argparse,需要通过命令行指定参数,例如:python new.py argument1 argument2 如果要将input()用于交互目的,请将input()的返回值传递给函数,并且不要使用argparse。