簡體   English   中英

我想在python中使用switch case語句制作計算器

[英]I want to make calculator using switch case statement in python

我可以使用 If 和 elsif 語句制作計算器,但無法使用 switch case 語句制作。 我為 switch case 創建了基本的,但我在如何接受參數以及如何調用它上進行了堆疊。 請任何人都可以幫助我。 先感謝您

Python switch case 允許可選參數我試過這個但不起作用

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))

# ...

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

# ...

另一種選擇是從switch返回一個函數並調用它

# ...

def switch(operation):
    return switcher.get(operation, default) # <- no () here, i.e. no calling the function

# ...

print(switch(operation)(num1, num2)) # call the returned function here

您只需要獲取兩個數字作為輸入即可執行操作。 嘗試這個

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):
    return switcher.get(operation, default)

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

對你來說是個好消息,如果你仍然對在 Python 中使用 switch case 感興趣的話。 您現在可以在 Python 3.10 中使用match

像這樣:

    match operation:
        case 'Addition':
            return num1+num2
        case 'Subtraction':
            return num1-num2
        case 'Multiplication':
            return num1*num2
        case 'Division':
            return num1/num2
        case 'Module':
            return num1%num2


有關更多詳細信息,請單擊此處閱讀此 python 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM