将较少的参数传递给随后在Python中定义的函数

2024-09-30 16:36:13 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个有多个函数的函数,比如说,计算一个面积或者加三个数。 用户选择1用于计算面积,选择2用于通过输入添加数字

def func_calculate(numberOne, numberTwo, numberThree, userChoise):
    if userChoise == "1":
        calculate Area
        do something
    if userChoise == "2":
        calculate addition
        do something

userChoise是来自用户的输入

如果用户想要计算面积,则函数只有两个参数,而不是三个,如果用户想要进行加法

所以,最后一个问题是。。。 最合适的处理方法是什么

当我调用函数时,当用户想要计算面积时,我应该将NumberTree变量设置为零还是其他什么,或者这是一种更“正确”的方法

if userChoie == "1":    
    inputNumberOne = input(...
    inputNumberTwo = input(...
    inputNumberThree == 0 
    func_calculate(inputNumberOne, inputNumberTwo, inputNumberThree, userChoise)

Tags: 方法函数用户inputif数字dosomething
3条回答

如果您真的只想使用一个参数数目可变的函数,可以使用*args作为参数。例如:

def funct_calculate(*args):
    if len(args) == 2:
        Calculate Area
    else:
        Addition

funct_calculate(radius,pi)
funct_calculate(number1,number2,number3)

如果您不想执行多个操作,那么最好为不同的操作使用不同的功能

choice = input("what user want's to do")

if choice == 1:
     add()
elif choice == 2: 
     multiply()

然后从用户处获取参数,进行如下操作

def add():
      num1 = input("num1")
      num2 = input("num2")
      num3 = input("num3")
      print(num1 + num2 + num3)

对于其他操作,也是如此

但是如果你不想拥有多个功能,你可以

def func(choice):
    #choice is the integer which user opted
    if choice == 1:
          num1 = input("num1")
          num2 = input("num2")
          num3 = input("num3")
          print(num1 + num2 + num3)
    elif choice == 2:
          .........

解决这个问题的一个好方法是拥有多个功能,每个功能都有一个特定的角色。您可以创建两个单独的函数calculate_area()add_numbers()。然后,您只需检查输入并按如下方式调用这些函数:

userChoice = input("Enter choice: ")
if userChoice == "1":
    inputNumberOne = input("Enter number 1: ")
    inputNumberTwo = input("Enter number 2: ")
    calculate_area(inputNumberOne, inputNumberTwo)
elif userChoice == "2":
    inputNumberOne = input("Enter number 1: ")
    inputNumberTwo = input("Enter number 2: ")
    inputNumberThree = input("Enter number 3: ")
    add_numbers(inputNumberOne, inputNumberTwo, inputNumberThree)

相关问题 更多 >