20242125 单嘉怡 实验二《Python程序设计》实验报告

20242125单嘉怡 2024-2025-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级:2421
姓名:单嘉怡
学号:20232401
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课

一.实验内容

  • 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

  • 考核基本语法、判定语句、循环语句、逻辑运算等知识点

二. 实验过程及结果
2.1 根据应用程序的计算需求,设定方法如下,实现了计算器的加法、减法、乘法、除法、取模、求sin值、复数运算、取对数运算。注意import math

print("============ 欢迎使用计算机================")
print("*       designer: 20242125单嘉怡         *")
print("*            time:2025.3.26              *")
print("*               功能不全请见谅              *")
print("==========================================")

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 Mod(num1, num2):
    return num1 % num2
def pusin(num1, num2):
    return math.sin(num1) * math.sin(num2) + math.cos(num1) * math.cos(num2)
def logab(a,b):
    return math.log(a,b)
num1 = eval(input("请输入num1:"))
num2 = eval(input("请输入num2:"))

flag = True
while flag:
    if input("请问:需要复数(1)还是整数(2)运算?\n")=="1":
        num1 = complex(input("请输入一个数:"))
        num2 = complex(input("请输入另一个数:"))
    else:
        num1 = int(input("请输入一个数:"))
        num2 = int(input("请输入另一个数:"))
    choice = input("请输入运算符(+ - * / % log sin ):")
    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 == "%":
        print("num1 ",choice, " num2 = ", Mod(num1, num2))
    elif choice == "sin":
        print("num1 ",choice, " num2 = ", pusin(num1, num2))
    elif choice == "log":
        print("log以",num2,"为底",num1, "的对数 = ", logab(num1, num2))

        conti = input("是否继续?Y/N\n")
    if conti == "Y" or conti == "y":
        flag = True
    else:
        flag = False

2.2学习如何使用Python进行随机数生成,掌握基本的算术运算符的使用,实现一个能够自动生成随机四则混合运算题目的程序。

import random
print("""
*******************************************
     这是一个悲伤的随机四则运算小孩哥用程序
     作者:史呆芬看星星    日期:2025/3/26
*******************************************
     """)
def generate_question():
    num1 = random.randint(1, 100)
    num2 = random.randint(1, 100)
    operators = ['+', '-', '*', '/']
    operator = random.choice(operators)
    question = f"{num1} {operator} {num2}"
    if operator == '+':
        answer = num1 + num2
    elif operator == '-':
        answer = num1 - num2
    elif operator == '*':
        answer = num1 * num2
    else:
        answer = round(num1 / num2, 2)
    return question, answer

num_questions = 5
correct_count = 0
for i in range(num_questions):
    question, answer = generate_question()
    user_answer = input(f"问题 {i + 1}: {question} = ")
    try:
        user_answer = float(user_answer)
        if user_answer == answer:
            print("回答正确!")
            correct_count += 1
        else:
            print(f"回答错误,正确答案是 {answer}。")
    except ValueError:
        print("输入无效,请输入一个数字。")

print(f"你一共回答了 {num_questions} 个问题,答对了 {correct_count} 个。")

2.3打印信息表

2.4输入要运算的数据,并顺正循环标识,进入运算循环,运算结束后,判断是否继续运算,即是否修改flag


2.5对代码进行调试!

2.6测试运行代码,检查代码运行是否正确

2.7将源代码上传至Gitee

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

  • 问题1:在进行计算的过程中发现不能重复计算
  • 问题1解决方案:仔细审查代码,发现输入操作符的操作需要放进循环内
  • 问题2:输入虚数的虚部为j时运行错误
  • 问题2解决方案:经过资料查询和尝试,发现j前面必须有系数,且j不能单独出现。

四.其他(感悟、思考等)
python函数库很方便。

五.参考资料
[《PYthon编程从入门到实践》]

[《零基础学PYthon》]

posted @ 2025-03-26 20:56  史呆芬看星星  阅读(26)  评论(0)    收藏  举报