实验二——计算器设计

20231417曾煜 2024-04-02 21:37:44

20231417曾煜《Python程序设计》实验二报告

课程:《Python程序设计》

学号:20231417

姓名:曾煜

班级:2314

实验日期:2024.3.27

必修/选修: 公选课

1.实验内容
此处填写实验的具体内容;
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点
2. 实验过程及结果

#功能:进行加减乘除取余 阶乘 log 幂 指数 三角函数
import math
def sum(a,b):
    return (a+b)
def sub(a,b):
    return (a-b)
def mul(a,b):
    return (a*b)
def division(a,b):
    if b == 0:
        return -1
    else:
        return (a/b)
def Mod(a,b):
    return (a % b)
def log(a,b):
    if a<=0:
        return -1
    elif b<=0:
        return -1
    else:
        return math.log(b,a)
def power(a,b):
    return (a**b)
def tri(tri,a):
    if tri == "sin":
        return (math.sin(a))
    elif tri == "cos":
        return (math.cos(a))
    else:
        return (math.tan(a))
def Fact(a):
    result = 1
    for item in range(1,a+1):
        result = result*item
    return result
flag = 1
while flag == 1:
    op = input("Please input your operator:(+、-、*、/、%、log、**、!、sin、cos、tan)\n")
   if (op == "sin")|(op == "cos")|(op == "tan"):
        a = int(input("输入a值:"))
    elif op == '!':
        a = int(input("输入a值:"))
    else:
        a = int(input("输入a值:"))
        b = int(input("输入b值:"))
    if op == '+':
        print("a+b=",sum(a,b))
    elif op == '-':
        print("a-b=",sub(a,b))
    elif op == '*':
        print("a*b=", mul(a, b))
    elif op == '/':
        result = division(a,b)
        if result == -1:
            print(Wrong)
        else:
            print("a/b=",result)
    elif op == 'log':
        result = log(a, b)
        if result == -1:
            print(Wrong)
        else:
            print("log a b=", result)
    elif op == 'mod':
        print("a%b=", Mod(a, b))
    elif op == '**':
        print("a^b",power(a,b))
    elif (op == "sin")|(op == "cos")|(op == "tan"):
        print(op,"(",a,")","=",tri(op,a))
    elif op == '!':
        print(a,"!","=",Fact(a))
    flag = int(input("请问是否还想要进行计算?(是,1)(否,0)"))

截图如下:

img 

img 

3.

  1. 实验过程中遇到的问题和解决过程
    问题1:img

在此处判断时,我最初没有加上括号,而是直接把表达式罗列在那里,导致出现报错:

TypeError: unsupported operand type(s) for |: 'str' and 'str'

问题1解决方案:我翻译了一下报错,大概意思是运算符 "|" 不支持在两个字符串之间,所以我先将布尔表达式用括号括起来,从而“|”运算符接收的就是布尔表达式的值了;
问题2:之前使用git上传文件时总是直接git add .把目录中的全部文件上传,这次通过学习发现也可以这样 

 

...全文
42 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用Python!
python3.11 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧