Python 简易计算器代码解析:除法运算符使用错误
Python 简易计算器代码解析:除法运算符使用错误
以下代码实现了一个简易的 Python 计算器:
print('**简易计算器**')
str=input('请输入算式')
operator=''
while operator=="":
if '+' in str:
operator='+'
elif '-' in str:
operator='-'
elif '*' in str:
operator='*'
elif '/' in str:
operator='//'
else:
str=input('输入错误,请重新输入:')
x = float(str[:str.find(operator)])
y =float(str[str.find(operator):])
result={
'+' :x+y,
'-' :x-y,
'*' :x*y,
'/' :x/y
}
print ('结果为,',result.get(operator))
问题分析:
代码中没有明显的错误行,但是代码中的除法运算符应该是 '/' 而不是 '//'。
原因:
- '//' 是整除运算符,会返回一个整数结果。例如,10 // 3 的结果为 3。
- '/' 是除法运算符,会返回一个浮点数结果。例如,10 / 3 的结果为 3.3333333333333335。
解决方案:
将代码中的 '//' 替换为 '/',即可实现正确的除法运算。
修改后的代码:
print('**简易计算器**')
str=input('请输入算式')
operator=''
while operator=="":
if '+' in str:
operator='+'
elif '-' in str:
operator='-'
elif '*' in str:
operator='*'
elif '/' in str:
operator='/'
else:
str=input('输入错误,请重新输入:')
x = float(str[:str.find(operator)])
y =float(str[str.find(operator):])
result={
'+' :x+y,
'-' :x-y,
'*' :x*y,
'/' :x/y
}
print ('结果为,',result.get(operator))
通过修改代码,计算器将能够正确执行除法运算,并返回浮点数结果。
原文地址: https://www.cveoy.top/t/topic/ospW 著作权归作者所有。请勿转载和采集!