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

加法减法计算器获取用户操作选择时程序流程中断问题求助

问题分析与修复方案

你的代码存在几个关键问题,导致流程中断或计算结果错误:

  • 运算类型判断逻辑错误:你将x和y定义为元组,但判断时用choose_user == str(x),这会把元组转成类似"('Addition', 'addition')"的字符串,用户输入永远无法匹配。应该用in关键字判断输入是否在允许的选项集合内。
  • 加法变量初始化位置错误:somma = 0放在while循环内部,每次循环都会重置总和为0,最终只会保留最后一个输入的数字。需将初始化移到循环外。
  • 减法逻辑完全错误:你每次把differenza设为当前输入的数,紧接着又减去自己,结果永远为0。正确逻辑是用第一个数作为初始值,后续依次减去其余输入的数。
  • 字符串拼接错误:输出结果时直接将整数与字符串相加会报错,需把数值转为字符串再拼接(或用f-string简化)。
  • 输入提示表述不准确:第一个输入提示写的是"how many numbers you have to add",但用户可能选择减法,应改为通用表述。

修复后的代码

print("Hello User, I am an addition and subtraction calculator. Choose which operation to perform!")
numbers = int(input("First choose how many numbers you will use: "))
counter = 0

if numbers > 0:
    print(f"Well, you have {numbers} numbers! Choose which operation you want to do!")
    add_options = ("Addition", "addition")
    sub_options = ("Subtraction", "subtraction")
    print("Addition or Subtraction?")
    choose_user = input().strip()  # 去除输入前后空格,提升容错性

    if choose_user in add_options:
        print("Okay perfect! Insert your numbers: ")
        somma = 0  # 总和初始化放在循环外
        while counter != numbers:
            counter += 1
            number_user = int(input(f"Number {counter}: "))
            somma += number_user
        print(f"Your answer is: {somma}")  # f-string自动处理类型转换

    elif choose_user in sub_options:
        print("Okay perfect! Insert your numbers: ")
        differenza = None  # 标记是否为第一个输入的数
        while counter != numbers:
            counter += 1
            number_user = int(input(f"Number {counter}: "))
            if differenza is None:
                differenza = number_user  # 第一个数作为减法初始值
            else:
                differenza -= number_user
        print(f"Your answer is: {differenza}")
    else:
        print("Invalid operation choice! Please enter Addition or Subtraction.")
else:
    print("You need to enter a positive number of values!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:02:18