我是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
答案 0 :(得分:0)
这似乎是对命令行参数和input()
的冗余使用。我认为用input()
做例子会让你在python编程中走错路径,他们也会对StackOverflow产生不确定/不可解释的结果。我试图提出这一点here earlier,但社区的支持非常有限。
在这种特殊情况下,线路开关输入看起来非常多余。您似乎只是学习通过命令行传递参数,然后您想要使用input()
- 这似乎退后一步。
答案 1 :(得分:0)
argparse只接受sys.argv参数。要使用argparse,需要通过命令行指定参数,例如:python new.py argument1 argument2 如果要将input()用于交互目的,请将input()的返回值传递给函数,并且不要使用argparse。