如何让这款简易加速度计算器循环运行直至手动停止?当前仅循环两次即终止
解决加速度计算器循环次数限制的问题
你的代码只能运行两次的原因很明确:第一次调用main()完成计算后,你询问用户是否继续,若用户选择yes会再执行一次main(),但这次计算结束后没有后续的询问逻辑,程序直接终止。要实现持续循环直到用户主动停止,你需要用无限循环+退出条件的结构,具体修改如下:
修改后的完整代码
print('Welcome to acceleration calculator!') def main(): iv = input('initial velocity (m/s): ') fv = input('final velocity (m/s): ') t = input('time (s): ') # 简化计算与输出逻辑,移除不必要的嵌套函数 a = (float(fv) - float(iv)) / float(t) print(f'The acceleration is {a} m/s²') # 用while True创建无限循环,直到用户触发退出条件 while True: main() # 处理用户输入:忽略大小写与前后空格,简化判断逻辑 again = input("Would you like to calculate acceleration again? yes/no?: ").strip().lower() # 输入非yes/y时,退出循环并结束程序 if again not in ["yes", "y"]: print("Thanks for using my calculator!") print('Acceleration calculator by Elias©') break
关键修改点
- 用
while True构建无限循环,每次循环都会执行计算逻辑,之后询问用户是否继续 - 对用户输入做
strip().lower()处理,无论用户输入YES、Yes、y还是yes,都能正确识别为继续指令 - 简化原代码中嵌套的
acceleration函数,直接用f-string输出结果,让代码更简洁易读 - 修复了原代码里的拼写错误:
intial→initial
内容的提问来源于stack exchange,提问作者kachiko
相关产品推荐
相关产品推荐

