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

如何在Python中询问用户是否要再次求解方程(需输入是/否)

实现支持多次求解的二次方程程序

首先修正你原代码里的一处小错误:打印的方程描述应该是 ax²+bx+c=0,原代码里写成了 ax^2=bx=c=0,这个需要调整。

要实现多次求解的功能,核心是用循环结构包裹求解逻辑,每次计算完成后询问用户是否继续。以下是修改后的完整代码:

import math

while True:
    print('我将求解方程 ax²+bx+c=0')
    
    # 获取用户输入的系数
    a = int(input('请输入a的值: '))
    b = int(input('请输入b的值: '))
    c = int(input('请输入c的值: '))
    
    # 处理a为0的情况(此时不是二次方程)
    if a == 0:
        print('a不能为0,这不是二次方程')
        # 询问是否继续前先跳过后续计算
        continue
    
    # 计算判别式
    d = b**2 - 4*a*c
    
    # 根据判别式判断解的情况
    if d < 0:
        print('该方程无实数解')
    elif d == 0:
        x = (-b) / (2*a)
        print(f'该方程有一个实数解: {x}')
    else:
        x1 = (-b + math.sqrt(d)) / (2*a)
        x2 = (-b - math.sqrt(d)) / (2*a)
        print(f'该方程有两个实数解: {x1} 或 {x2}')
    
    # 询问用户是否继续求解
    while True:
        choice = input('是否继续求解其他方程?(是/否): ').strip().lower()
        if choice in ['是', 'y', 'yes']:
            # 继续下一次循环
            break
        elif choice in ['否', 'n', 'no']:
            # 退出外层循环,结束程序
            print('程序结束')
            exit()
        else:
            print('输入无效,请输入"是"或"否"')

关键修改说明:

  • 用 while True 构建无限循环,每次循环完成一次二次方程求解
  • 增加了a=0的判断,避免分母为0的运行错误(原代码未处理该场景)
  • 求解完成后,嵌套小循环处理用户的继续请求:
    • 兼容多种输入格式(比如"是"/"y"/"yes",不区分大小写)
    • 输入无效时重复询问,直到用户输入正确选项
    • 用户选择"否"时直接结束程序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:07:20