趋近智
if 语句for 循环with 自动关闭文件from ... importself 参数说明finally 块:清理操作让我们将您学到的知识转化为一个实际应用。构建一个简单的命令行工具是了解变量、控制流、函数和错误处理如何协同工作的绝佳方式。我们将制作一个基于用户输入执行加、减、乘、除运算的基础计算器。
本项目将直接使用到:
input(): 从用户那里获取数字和所需的操作。float)。+, -, *, /) 来执行计算。if/elif/else): 根据用户的选择确定执行哪种操作。while): 允许用户执行多次计算而无需重新启动脚本。try/except): 处理潜在问题,如非数字输入或除以零,防止程序崩溃。我们的命令行计算器应该:
为了保持代码的组织性和可读性,我们可以将其分解为函数:
get_number(prompt): 一个函数,接收一个提示消息,向用户请求输入,并持续请求直到输入一个有效数字 (float)。如果输入不是数字,它会处理 ValueError。get_operation(): 一个函数,提示用户输入一个操作符(+、-、*、/),并持续请求直到输入一个有效的操作符。calculate(num1, num2, operation): 一个函数,接收两个数字和操作符字符串,执行计算并返回结果。它处理 ZeroDivisionError。main(): 主函数,负责协调应用程序的流程,调用其他函数并管理主循环。让我们看看说明一些重要部分的片段。
确保用户输入有效的数字是必要的。while 循环与 try-except 结合是一种处理潜在错误的有效方法。
def get_number(prompt):
"""提示用户输入数字并处理无效输入。"""
while True:
try:
user_input = input(prompt)
number = float(user_input) # 尝试转换为浮点数
return number
except ValueError:
print("输入无效。请输入一个数字。")
# 在主循环中的使用示例:
# first_number = get_number("请输入第一个数字:")
# second_number = get_number("请输入第二个数字:")
这个 get_number 函数封装了重复请求输入直到输入有效浮点数的逻辑。它捕获了当 float() 转换失败时抛出的 ValueError。
计算逻辑使用 if/elif/else 来选择操作。非常重要的一点是,除法需要检查 ZeroDivisionError。
def calculate(num1, num2, operation):
"""根据操作执行计算。"""
if operation == '+':
return num1 + num2
elif operation == '-':
return num1 - num2
elif operation == '*':
return num1 * num2
elif operation == '/':
if num2 == 0:
print("错误:不能除以零。")
return None # 表示失败
else:
return num1 / num2
else:
# 这种情况理想情况下应该由 get_operation() 避免
print("错误:无效的操作。")
return None
# 在主循环中的使用示例:
# result = calculate(first_number, second_number, chosen_operation)
# if result is not None:
# print(f"结果是:{result}")
在这里,我们明确检查操作是否为除法 (/),以及在尝试除法之前被除数 (num2) 是否为零。如果是,我们打印错误并返回 None。调用代码在打印结果之前应该检查 result 是否为 None。
脚本的主要部分将使用一个 while True 循环,该循环会一直持续,直到用户明确要求退出。
def main():
print("启动简单命令行计算器!")
while True:
# --- 使用 get_number() 和 get_operation() 等函数获取输入 ---
num1 = get_number("请输入第一个数字:")
num2 = get_number("请输入第二个数字:")
op = get_operation() # 假设 get_operation 处理验证
# --- 执行计算 ---
result = calculate(num1, num2, op)
# --- 显示结果 ---
if result is not None:
print(f"结果:{num1} {op} {num2} = {result}")
# --- 询问是否继续 ---
again = input("执行另一次计算吗? (yes/no): ").lower()
if again != 'yes':
break # 退出 while 循环
print("感谢您使用计算器。再见!")
# --- 调用主函数启动应用程序 ---
# if __name__ == "__main__": # 良好实践,稍后解释
# main()
# 目前,对于简单脚本直接调用 main() 即可:
# main()
这个结构将所有部分连接起来。它调用输入和计算函数,打印输出,并根据用户选择继续或退出控制流程。
将完整的代码保存为 Python 文件(例如,calculator.py)。打开您的终端或命令提示符,导航到保存文件的目录,然后使用以下命令运行它:
python calculator.py
您应该会看到欢迎信息和输入数字及操作的提示。
一个会话可能如下所示:
欢迎使用简单命令行计算器!
请输入第一个数字:10
请输入第二个数字:5
请输入操作符(+、-、*、/):+
结果:10.0 + 5.0 = 15.0
执行另一次计算吗? (yes/no): yes
请输入第一个数字:20
请输入第二个数字:0
请输入操作符(+、-、*、/):/
错误:不能除以零。
执行另一次计算吗? (yes/no): yes
请输入第一个数字:apple
输入无效。请输入一个数字。
请输入第一个数字:7
请输入第二个数字:3
请输入操作符(+、-、*、/):*
结果:7.0 * 3.0 = 21.0
执行另一次计算吗? (yes/no): no
感谢您使用计算器。再见!
这个简单的计算器项目演示了您学到的不同 Python 特性如何结合起来创建一个功能程序。它有效地使用函数进行组织,循环用于重复,条件语句用于决策,以及错误处理以提升程序的稳定性。您可以通过添加更多操作(例如求幂)、改进界面,甚至添加计算历史记录等功能来扩充这个项目。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造