我想用python中的switch case语句制作计算器

2024-04-28 22:20:46 发布

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

我可以使用If和elsif语句生成计算器,但不能用switch case语句来生成它。 我为switch case创建了basic,但我在如何获取参数和如何调用它方面做了大量工作。 拜托,任何人都可以帮我。 提前谢谢你

Python switch case allowing optional arguments 我试过了但没用

def addition(num1,num2):
    num1 += num2
    return num1
def subtraction(num1,num2):
    num1 -= num2
    return num1
def mul(num1,num2):
    num1 *= num2
    return num1
def division(num1,num2):
    num1 /= num2
    return num1

def module(num1,num2):
    num1 %= num2
    return num1

def default(num1,num2):
    return "Incorrect day"

switcher = {
    1: addition,
    2: subtraction,
    3: mul,
    4: division,
    5: module
    }

def switch(operation):
    return switcher.get(operation, default)()

print('''You can perform operation
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Module ''')

#Take input from user
choice = int(input("Select operation from 1,2,3,4 : "))

print (switch(choice))


Tags: defaultreturndef语句operationdivisionmodulecase
3条回答

您只需要得到两个数字作为输入就可以对其执行操作。试试这个

def addition(num1, num2):
  num1 += num2
  return num1
def subtraction(num1, num2):
  num1 -= num2
  return num1
def mul(num1, num2):
  num1 *= num2
  return num1
def division(num1, num2):
  num1 /= num2
  return num1
def module(num1, num2):
  num1 %= num2
  return num1
def default(num1, num2):
  return "Incorrect day"
switcher = {
    1: addition,
    2: subtraction,
    3: mul,
    4: division,
    5: module
}
def switch(operation, num1, num2):
  return switcher.get(operation, default)(num1, num2)
print('''You can perform operation
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Module ''')
# Take input from user
choice = int(input("Select operation from 1,2,3,4 : "))
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
print (switch(choice, num1, num2))
# ...

def switch(operation, num1, num2):
    return switcher.get(operation, default)(num1, num2)

# ...

另一个选择是从switch返回一个函数并调用它

^{pr2}$

试试这个

def switch(operation):
    return switcher.get(operation, default)

print (switch(choice)(6,2))

相关问题 更多 >