如何在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
相关产品推荐
相关产品推荐

