20241313 2024-2025-2 《Python程序设计》实验二报告

实验报告模板如下:

20241313 2024-2025-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 2413
姓名: 刘鸣宇
学号:20241313
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课

1.实验内容

1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
2.考核基本语法、判定语句、循环语句、逻辑运算等知识点

2. 实验过程及结果

1.编写计算器的代码,包含加减乘除和复数运算(注意复数运算要用complex,i要使用j代替)

import math
def Csum(num1,num2):
    return num1+num2
def Csub(num1,num2):
    return num1-num2
def Cmulti(num1,num2):
    return num1*num2
def CDiv(num1,num2):
    if num2 == 0:
        print("除数不能为0")
        return 0
    return num1/num2
def logab(a,b):
    return math.log(a,b)

flag = True
while flag:
  if input("复数(1)or实数(2)")=="1":
    num1 = complex(input("input one:"))
    num2 = complex(input("input two:"))
  else:
    num1 = int(input("input one:"))
    num2 = int(input("input two:"))

  choice = input("运算符(+-*/log):")

  if choice == "+":
      print("num1",choice,"num2 = ",Csum(num1,num2))
  elif choice == "-":
      print("num1", choice, "num2 = ", Csub(num1, num2))
  elif choice == "*":
      print("num1", choice, "num2 = ", Cmulti(num1, num2))
  elif choice == "/":
      print("num1", choice, "num2 = ", CDiv(num1, num2))
  elif choice == "log":
      print("log以", num2, "为底",num1,"的对数 = ", logab(num1, num2))
  x = input("是否继续?Y/N")
  if x == "Y" or x == "y":
      flag = True
  else:
      flag = False

2.运行结果

3.设计一个出题小程序

def generate_question():
    operator = ['+', '-', '*', '/']
    op = random.choice(operator)

    if op == '+':
        a = random.randint(1, 100)
        b = random.randint(1, 100)
        answer = a + b
    elif op == '-':
        a = random.randint(1, 100)
        b = random.randint(1, 100)
        a, b = max(a, b), min(a, b)
        answer = a - b
    elif op == '*':
        a = random.randint(1, 20)
        b = random.randint(1, 10)
        answer = a * b
    else:
        b = random.randint(1, 10)
        a = b * random.randint(1, 10)
        answer = a // b

    return str(a) + " " + op + " " + str(b) + " = ", answer


def math_quiz():
    print("=" * 50)
    print("数学测试")
    print("回答10道四则运算题")
    print("=" * 50)

    correct = 0
    for i in range(1, 11):
        question, answer = generate_question()
        while True:
            try:
                user_answer = int(input("第" + str(i) + "题: " + question))
                if user_answer == answer:
                    print("RIGHT!\n")
                    correct += 1
                else:
                    print("WRONG,Right answer is: " + str(answer) + "\n")
                break
            except ValueError:
                print("请输入一个整数!")

    score = correct * 10
    print("\n测验结束!")
    print("你的得分: " + str(score) + "分")
    print("正确率: " + str(correct) + "/10 (" + str(score) + "%)")

    if score == 100:
        print("Good")
    elif score >= 60:
        print("OK")
    else:
        print("NO")


if __name__ == "__main__":
    while True:
        math_quiz()
        again = input("\n是否再来一次?(y/n): ").lower()
        if again != 'y':
            print("Bye")
            break

4.运行结果



5.上传至gitee
https://gitee.com/liu-mingyu123456/python/blob/master/%E5%AE%9E%E9%AA%8C%E4%BA%8C-%E8%AE%A1%E7%AE%97%E5%99%A8.py

3. 实验过程中遇到的问题和解决过程

  • 问题1:复数计算时报错程序异常结束
  • 问题1解决方案:没有把int型换成complex型,无法识别复数的a+bj

其他(感悟、思考等)

要多尝试多练习python

posted @ 2025-03-29 18:37  Camellia×  阅读(61)  评论(0)    收藏  举报