Python 函数参数和自变量

Python Function parameters and arguments

我想更好地理解函数和参数,我读过,这是我对所读内容的实现。

我有3个小函数来说明我的观点。

用户输入收集, 分级功能和 主.

def score(num1: int):
    print("Please Enter Your Score: ")
    num1 = int(input())
    grade(num1)


def grade(num1: int):
    if int(num1) in range(0,30):
        print("Grade U")
    if int(num1)in range(30,40):
        print("Grade D")
    if int(num1)in range(40,60):
        print("Grade C")
    if int(num1)in range(60,80):
        print("Grade B")
    if int(num1)>79:
        print("Grade A")


def main():
    print("Hi")
    score(1)

如果我 运行 主函数没有参数 (1),它会导致查找参数时出错。我知道我在函数中声明它有一个参数(因为我希望它作为一个 return 值)但是我将如何在没有它的参数的情况下调用分数函数??
E.G

def main()
print("hi")
score()

我想象函数是在没有参数的情况下调用的,并且参数从函数定义传递到参数中(通过用户输入)

有人可以提供一个例子来说明我如何在不需要评分函数调用中的虚拟变量 (1)?

这是我会采用的一种方法:

def score():
    print("Please Enter Your Score: ")
    num1 = int(input())
    grade(num1)


def grade(num1: int):
    if 0 <= num1 < 30:
        print("Grade U")
    elif 30 <= num1 < 40:
        print("Grade D")
    elif 40 <= num1 < 60:
        print("Grade C")
    elif 60 <= num1 < 80:
        print("Grade B")
    elif num1 >= 80:
        print("Grade A")


def main():
    print("Hi")
    score()


if __name__ == '__main__':
    main()

如果您仍然希望能够将参数传递到评分函数中,例如 score(1),那么您可以为该函数分配一个可选参数。然后,如果 num1 未传递给评分函数,则仅读取用户输入。

def score(num1=None):
    if num1 is None:
        print("Please Enter Your Score: ")
        num1 = int(input())

    grade(num1)

用法:

def main():
    print("Hi")
    score(1)