用户:
来者什人查看:0 回复:0 评论:0 创建时间:2020-04-16T09:46:25
【作品展示】

【作品介绍】
这是在1.0版的基础上添加计算三角函数等功能。更多功能更方便。
【作品源代码】
import easygui
import math
def 计算():
global a, b, c
if easygui.ynbox('请问需要进行加法运算吗?'):
try:
a, a = float(input('第一个加数?')), 0
except ValueError:
a = float(input('请重新输入!'))
else:
try:
b = float(input('第二个加数?'))
except ValueError:
b = float(input('请重新输入!'))
else:
c = (a + b)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行减法运算吗?'):
try:
a = float(input('被减数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
try:
b = float(input('减数?'))
except ValueError:
b = float(input('请重新输入!'))
else:
c = (a - b)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行乘法运算吗?'):
try:
a = float(input('第一个乘数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
try:
b = float(input('第二个乘数?'))
except ValueError:
b = float(input('请重新输入!'))
else:
c = (a * b)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行除法运算吗?'):
try:
a = float(input('被除数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
try:
b = float(input('除数?'))
while (b == 0):
b = float(input('请重新输入!'))
if (b != 0):
break
except ValueError:
b = float(input('请重新输入!'))
while (b == 0):
b = float(input('请重新输入!'))
if (b != 0):
break
else:
c = (a / b)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行乘方运算吗?'):
try:
a = float(input('底数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
try:
b = float(input('指数?'))
except ValueError:
b = float(input('请重新输入!'))
else:
c = (a ** b)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行开方运算吗?'):
try:
a = float(input('被开方数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
try:
b = int(input('根指数?'))
while (b == 0):
b = int(input('请重新输入!'))
if (b != 0):
break
except ValueError:
b = int(input('请重新输入!'))
while (b == 0):
b = int(input('请重新输入!'))
if (b != 0):
break
else:
c = (a ** (1 / b))
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行对数运算吗?'):
try:
a = float(input('真数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
if easygui.ynbox('请问需要进行哪种对数运算?', '对数运算选择', ('自然对数', '常用对数')):
c = math.log(a)
print(('结果为' + str(c)))
else:
c = math.log10(a)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行估算吗?'):
try:
a = float(input('需要估算的数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
if easygui.ynbox('请问需要进行四舍五入估算吗?', '估算选择', ('是', '否')):
try:
b = int(input('精确到小数点后第几位?'))
except ValueError:
b = int(input('请重新输入!'))
else:
c = round(a, b)
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要进行向上舍入估算吗?', '估算选择', ('是', '否')):
c = math.ceil(a)
print(('结果为' + str(c)))
else:
c = math.ceil(a)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要进行阶乘运算吗?'):
try:
a = int(input('阶乘至几?'))
except ValueError:
a = int(input('请重新输入!'))
else:
c = (math.factorial(a))
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要计算绝对值吗?'):
try:
a = float(input('需要求绝对值的数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
c = abs(a)
print(('结果为' + str(c)))
finally:
if easygui.ynbox('是否继续计算?'):
计算()
elif easygui.ynbox('请问需要计算三角函数吗?'):
try:
a = float(input('度数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
三角函数选择()
elif easygui.ynbox('请问需要计算反三角函数吗?'):
try:
a = float(input('度数?'))
except ValueError:
a = float(input('请重新输入!'))
else:
反三角函数选择()
else:
计算()
def 三角函数选择():
global a, c
if easygui.ynbox('请问需要计算正弦函数吗?', '三角函数选择', ('是', '否')):
c = math.sin(math.radians(a))
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算余弦函数吗?', '三角函数选择', ('是', '否')):
c = math.cos(math.radians(a))
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算正切函数吗?', '三角函数选择', ('是', '否')):
c = math.tan(math.radians(a))
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算余切函数吗?', '三角函数选择', ('是', '否')):
c = (1 / math.tan(math.radians(a)))
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算正割函数吗?', '三角函数选择', ('是', '否')):
c = (1 / math.cos(math.radians(a)))
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算余割函数吗?', '三角函数选择', ('是', '否')):
c = (1 / math.sin(math.radians(a)))
print(('结果为' + str(c)))
else:
三角函数选择()
def 反三角函数选择():
global a, c
if easygui.ynbox('请问需要计算反正弦函数吗?', '三角函数选择', ('是', '否')):
c = (((math.asin(a)) / (math.pi)) * 180)
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算反余弦函数吗?', '三角函数选择', ('是', '否')):
c = (((math.acos(a)) / (math.pi)) * 180)
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算反正切函数吗?', '三角函数选择', ('是', '否')):
c = (((math.atan(a)) / (math.pi)) * 180)
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算反余切函数吗?', '三角函数选择', ('是', '否')):
c = (((math.atan(1 / a)) / (math.pi)) * 180)
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算反正割函数吗?', '三角函数选择', ('是', '否')):
c = (((math.acos(1 / a)) / (math.pi)) * 180)
print(('结果为' + str(c)))
elif easygui.ynbox('请问需要计算反余割函数吗?', '三角函数选择', ('是', '否')):
c = (((math.asin(1 / a)) / (math.pi)) * 180)
print(('结果为' + str(c)))
else:
反三角函数选择()
#开始进入Python的世界
easygui.msgbox('你好。', '计算器', '谢谢,请开始计算吧。')
计算()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn