python 简易计算器
思路:举例:运算 7 - 8:可能遇到的问题:优化:优化后的程序:
·
小tip :首先在敲代码前,我们要整理思路,先构思出一个框架,不要盲目开始,这样你会无从下手
思路:
- 计算器中,要对数字运算 “加减乘除”,所以首先要拿到数字和运算符
- 拿到数据之后要判断是否为数字(若不是数字,要有具体应对措施)
- 接下来就是进行运算和输出结果
input_data = input("请输入:")
op_list = ["+", "-", "*", "/"]
for op in op_list:
if op in input_data:
result_tuple = input_data.partition(op)
if result_tuple[0].isdigit() and result_tuple[2].isdigit():
num1 = int(result_tuple[0])
num2 = int(result_tuple[2])
if result_tuple[1] == "+":
print(result_tuple[0], "+", result_tuple[2], "=", num1 + num2)
elif result_tuple[1] == "-":
print(result_tuple[0], "-", result_tuple[2], "=", num1 - num2)
elif result_tuple[1] == "*":
print(result_tuple[0], "*", result_tuple[2], "=", num1 * num2)
elif result_tuple[1] == "/":
print(result_tuple[0], "/", result_tuple[2], "=", num1 / num2)
举例:运算 7 - 8:
我们要考虑到程序的优化问题
可能遇到的问题:
- 用户输入的不是数字;
- 除数为 0 ;
优化:
- 可以控制程序的开始或结束
优化后的程序:
while True:
flag = 1
input_data = input("请输入:")
if input_data == "exit":
print("正在退出.....")
break
result_tuple = ()
op_list = ["+", "-", "*", "/"]
for op in op_list:
if op in input_data:
result_tuple = input_data.partition(op)
if result_tuple: # 判断拿到的数据是否为我们想要的
if result_tuple[0].isdigit() and result_tuple[2].isdigit(): # 判断拿到的是否为数字
num1 = int(result_tuple[0])
num2 = int(result_tuple[2])
if result_tuple[1] == "+":
print(result_tuple[0], "+", result_tuple[2], "=", num1 + num2)
elif result_tuple[1] == "-":
print(result_tuple[0], "-", result_tuple[2], "=", num1 - num2)
elif result_tuple[1] == "*":
print(result_tuple[0], "*", result_tuple[2], "=", num1 * num2)
elif result_tuple[1] == "/":
if num2 == 0:
flag = 0 # 对除数不能为 0 的异常进行操作
else:
print(result_tuple[0], "/", result_tuple[2], "=", num1 / num2)
else:
flag = 0
else:
flag = 0
if flag == 0:
print("输入有误,请重新输入!!!")
更多推荐
已为社区贡献1条内容
所有评论(0)