You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何让函数内的input仅在满足if条件时被调用

问题根因

核心原因是多条件判断语法错误:
你写的判断语句 if Action == 'Multiplication' or 'Addition' or 'Subtraction' or 'Division' and not 'Exponential': 不符合Python的条件判断规则:

  • Python中,非空字符串的布尔值恒为True,所以or 'Addition'这类写法会让整个判断条件永久成立,不管你选择什么操作,都会执行multaddsubdiv()函数,自然会触发前两个输入弹窗。
  • 你写的and not 'Exponential'完全不生效:'Exponential'是非空字符串,not 'Exponential'的结果是False,但前面的or条件已经恒为真,整体判断结果还是真。

修正方案

修改多条件判断的写法即可,同时可以优化冗余的类型转换逻辑,完全保留你原本的输出效果:

def menu():
    print("Select from the following: ")
    print('Multiplication')
    print('Addition')
    print('Subtraction')
    print('Division')
    print('Exponential')
    Action = input("Selected Action: ")
    return Action

# 用返回值接收操作类型,避免不必要的全局变量
Action = menu()

def multaddsubdiv():
    alpha = float(input("First Number: "))
    beta = float(input("Second Number: "))
    if Action == "Multiplication":
        print('The product of', alpha, '&', beta, 'Is', alpha * beta)
    if Action == "Addition":
        print('The sum of', alpha, 'Plus', beta, 'Is', alpha + beta)
    if Action == "Subtraction":
        print("The difference of", alpha, 'Minus', beta, 'Is', alpha - beta)
    if Action == "Division":
        print("The quotient of", alpha, 'Divided by', beta, 'Is', alpha / beta)

# 修正后的判断逻辑
if Action in ['Multiplication', 'Addition', 'Subtraction', 'Division']:
    multaddsubdiv()

def exponent():
    gamma = float(input("Base Number: "))
    delta = float(input("Exponent: "))
    print(gamma, 'To the Power of', delta, 'Is: ', gamma ** delta)

if Action == "Exponential":
    exponent()

内容的提问来源于stack exchange,提问作者Nicholas Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:06:05