20201324 实验二《Python程序设计》实验报告

摘要:
20201324202020-2021-2 Python编程实验2报告课程:Python-编程班级:2013姓名:徐源学号:20201324实验教师:王志强实验日期:2021 4月26日必修/选修课:公共选修课(I)实验内容设计并完成完整的应用程序,完成加减乘法,除法和其他运算,带有更多函数=“,math.factorial)6。求解单变量二次方程defqua():a=floatb=floatc=floatd=b*b-4*a*cifd˃=0:x1=/(2*a)x2=/(2*a)ifd=0=return“x1=x2=”+string:return“x1=”+str+'+“x2=”+string:x1=str+'+'+str+''x2=str+'-'+str+''''-return”x1=“+x1+'+”x2=“+x2将上述代码拆分为不同的函数,并根据用户的选择在主函数中完成调用。7.完整代码importmathydifferentmetric:ioperator=“+”:return a+belifoperator==“-”:returna belifoperator==“*”:retorna*belifoperators==“/”:retrina/belifoperator==“//”:retanna//belifoperatator==“%”:retrena%bdfact:ioperator=“sin”:retrymath.sinelif operator=”cos“:returnmath.coselif operator=”tan“:retrinmath.tanelif operators=“asin”:retrnmath.asinelifoperator===“aco”s“”:returnmath.acoselifoperator==“atan”:returnmath.atandefoperation1():printoperator=input=intb=intprintdefoperation2():printprintx=inty=intwhile==0:print(“输入错误!
20201324 2020-2021-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 2013
姓名: 徐源
学号:20201324
实验教师:王志强
实验日期:2021年4月26日
必修/选修: 公选课

(一)实验内容

  • 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
    • 基本四则运算
    • 取模运算
    • 求幂运算
    • 计算简单的三角函数
    • 求阶乘
    • 解一元二次方程
  • 考核基本语法、判定语句、循环语句、逻辑运算等知识点

(二)实验过程及结果

思路:先分别编写代码,实现不同功能,再将这些功能代码以函数的形式组合起来

1.基本四则运算

因四则运算相对较复杂,故希望通过设计函数来实现

def arithmetic(a, b, operator):
    if operator == "+":
        return a + b
    elif operator == "-":
        return a - b
    elif operator == "*":
        return a * b
    elif operator == "/":
        return a / b

负责判断、调用和打印的主函数如下

flag = 1
while flag == 1:
    operator = input("请输入你要做的运算:+,-,*,%,//,%,**,sin,cos:")
    a = int(input("输入一个数a:"))
    b = int(input("输入一个数b:"))
    print("a" + operator + "b = ", arithmetic(a, b, operator))
    flag = int(input("继续请输入1,退出请输入0"))

20201324 实验二《Python程序设计》实验报告第1张

2.取模运算

print("请按照提示输入取模运算的两个操作数,注意两者均为整数")
x = int(input("请输入被除数:"))
y = int(input("请输入除数:"))
while y == 0:
    print("输入错误!除数不能为0!")
    y = int(input("请重新输入整数除数:"))
print(x % y)

20201324 实验二《Python程序设计》实验报告第2张

3.求幂运算

a = float(input("请输入底数:"))
b = float(input("请输入指数:"))
print("a**b = ",a**b)

4.计算简单的三角函数

这里注意要把我们惯常使用的角度制转成弧度制

20201324 实验二《Python程序设计》实验报告第3张

这一部分涉及六种三角函数,较复杂,编写函数实现

import math
def act(x):
    if operator == "sin":
        return math.sin(x)
    elif operator == "cos":
        return math.cos(x)
    elif operator == "tan":
        return math.tan(x)
    elif operator == "asin":
        return math.asin(x)
    elif operator == "acos":
        return math.acos(x)
    elif operator == "atan":
        return math.atan(x)

flag = 1
while flag == 1:
    operator = input("请输入你要做的运算:sin,cos,tan,asin,acos,atan:")
    x = float(input("请输入数值:"))
    x = x / 180 * math.pi
    print(operator + "x = ",  act(x))
    flag = int(input("继续请输入1,退出请输入0"))

5.求阶乘

import math
n = int(input("请输入一个整数:"))
print("n! = ",math.factorial(n))

6.解一元二次方程

def qua():
    a = float(input("请输入a:"))
    b = float(input("请输入b:"))
    c = float(input("请输入c:"))
    d = b*b - 4*a*c
    if d>=0:
        x1 = (-b+math.sqrt(d)) / (2*a)
        x2 = (-b-math.sqrt(d)) / (2*a)
        if d==0:
            return "X1 = X2 = "+str(x1)
        else:
            return "X1 = "+str(x1)+'	'+"X2 = "+str(x2)
    else:
        x1 = str(-b/(2*a)) + '+' + str(math.sqrt(-d)/(2*a)) + 'i'
        x2 = str(-b/(2*a)) + '-' + str(math.sqrt(-d)/(2*a)) + 'i'
        return "X1 = "+x1+'	'+"X2 = "+x2

20201324 实验二《Python程序设计》实验报告第4张

将上述代码分装成不同函数,在主函数中根据用户的选择来完成调用

7.完整代码

import math
def arithmetic(a, b, operator):
    if operator == "+":
        return a + b
    elif operator == "-":
        return a - b
    elif operator == "*":
        return a * b
    elif operator == "/":
        return a / b
    elif operator == "//":
        return a // b
    elif operator == "%":
        return a % b


def act(x,operator):
    if operator == "sin":
        return math.sin(x)
    elif operator == "cos":
        return math.cos(x)
    elif operator == "tan":
        return math.tan(x)
    elif operator == "asin":
        return math.asin(x)
    elif operator == "acos":
        return math.acos(x)
    elif operator == "atan":
        return math.atan(x)


def operation1():
    print("现在进行 1.基本四则运算")
    operator = input("请输入你要做的运算:+,-,*,/,//,%:")
    a = int(input("输入一个数a:"))
    b = int(input("输入一个数b:"))
    print("a" + operator + "b = ", arithmetic(a, b, operator))


def operation2():
    print("现在进行 2.取模运算")
    print("请按照提示输入取模运算的两个操作数,注意两者均为整数")
    x = int(input("请输入被除数:"))
    y = int(input("请输入除数:"))
    while y == 0:
        print("输入错误!除数不能为0!")
        y = int(input("请重新输入整数除数:"))
    print(x % y)


def operation3():
    print("现在进行 3.求幂运算")
    a = float(input("请输入底数:"))
    b = float(input("请输入指数:"))
    print("a**b = ", a ** b)



def operation4():
    print("现在进行 4.计算简单的三角函数")
    operator = input("请输入你要做的运算:sin,cos,tan,asin,acos,atan:")
    x = float(input("请输入数值:"))
    x = x / 180 * math.pi
    print(operator + "x = ", act(x,operator))


def operation5():
    print("现在进行 5.求阶乘")
    n = int(input("请输入一个整数:"))
    print(n,"! = ", math.factorial(n))


def operation6():
    print("现在进行 6.解一元二次方程")
    a = float(input("请输入a:"))
    b = float(input("请输入b:"))
    c = float(input("请输入c:"))
    d = b*b - 4*a*c
    if d>=0:
        x1 = (-b+math.sqrt(d)) / (2*a)
        x2 = (-b-math.sqrt(d)) / (2*a)
        if d==0:
            print("X1 = X2 = "+str(x1))
        else:
            print("X1 = "+str(x1)+'	'+"X2 = "+str(x2))
    else:
        x1 = str(-b/(2*a)) + '+' + str(math.sqrt(-d)/(2*a)) + 'i'
        x2 = str(-b/(2*a)) + '-' + str(math.sqrt(-d)/(2*a)) + 'i'
        print("X1 = "+x1+'	'+"X2 = "+x2)


flag = 1
while flag == 1:
    print("欢迎使用计算器!")
    print("*" * 20)
    print("本计算器提供的功能有:")
    print("1.基本四则运算")
    print("2.取模运算")
    print("3.求幂运算")
    print("4.计算简单的三角函数")
    print("5.求阶乘")
    print("6.解一元二次方程")
    print("如您想退出使用,请输入-1")
    print("*" * 20)
    t = int(input("请从中选择您想要实现的功能,输入对应的数字"))
    if t == 1:
        operation1()
    elif t==2:
        operation2()
    elif t==3:
        operation3()
    elif t==4:
        operation4()
    elif t==5:
        operation5()
    elif t==6:
        operation6()
    flag = int(input("继续请输入1,退出请输入-1"))

运行结果

20201324 实验二《Python程序设计》实验报告第5张

(三)实验过程中遇到的问题和解决过程

  • 问题1:对使用python函数不熟练,def NAME后面经常不加":",对于系统给出的报错信息不敏锐
  • 问题1解决方案:多写多总结,与c语言对比,总结差异
  • 问题2:在分别编写每一个功能代码时,有的直接写成函数形式,有return 标志的返回值;有的因较为简单,没有采用函数形式,采用的是print;最后将各部分汇总时很不方便,需要逐一排查
  • 问题2解决方案:这次因为都已写好,难以修改,只能逐一运行测试。以后编写时应尽量统一,我习惯在编写每个部分时不写成函数形式,而在最终整合时统一改成函数形式,这样比较方便统计需要传哪些参数

(四) 其他(感悟、思考等)

python和c还是经常在语法上搞混,但经过一段时间的学习,在一些二者的常见不同上已有了一定的敏锐性。本次实验最大障碍是对python中的函数调用掌握不足,什么时候return,什么时候直接在函数中打印有点迷糊。接下来一定继续努力,掌握透彻

(五)参考资料

(六)码云链接

https://gitee.com/xu-yuan-20201324/python_use/blob/main/calculator.py

免责声明:文章转载自《20201324 实验二《Python程序设计》实验报告》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于方括号和尖括号的区别CentOS7安装MongoDB(3)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java调用Python程序

最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式。 一、使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不支持json。因此, 升级了最新的Jython2.7.0,发现可以支持。因此,要使用更多python库,建议使用更高版本的Jython包。 首先,添加Jyth...

Python学习————drf(三)

1 请求和响应 1.1 请求 # 请求对象 # from rest_framework.request import Request def __init__(self, request, parsers=None, authenticators=None, negotiator=None, parser_cont...

基于Python的Web应用开发实战——3 Web表单

第2章中介绍的 请求对象 包含客户端发出的所有请求信息。 其中, request.form 能获取 POST请求 中提交的表单数据。 尽管Flask的请求对象提供的信息足够用于处理Web表单,但有些任务很单调,而且要重复操作。 比如,生成表单的HTML代码和验证提交的表单数据。 Flask-WTF(https://flask-wtf.readthedocs...

python求时间差

python求时间差主要是用的datetime包,包括同一天情形下的时间差和不同天情形下的时间差。 from datetime import datetime, date 1. 同一天情形下的时间差(秒)seconds ,分钟由秒数除以60即可 #计算时间差的分钟数 # 同一天的时间差 time_1 = '2020-03-02 15:00:00' time...

Libheap:一款用于分析Glibc堆结构的GDB调试工具

Libheap是一个用于在Linux平台上分析glibc堆结构的GDB调试脚本,使用Python语言编写。安装Glibc安装尽管Libheap不要求glibc使用GDB调试支持和符号进行编译,但是如果用户使用的话,也不会影响它的功能。已经有很多手动构建Glibc的指导说明,目前最合适的一个:Devpit – Building GLIBCFedora上使用了...

js正则表达式限制文本框只能输入数字,小数点,英文字母

1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 2.只能输入数字,能输小数点.<input onkeyup="if...