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》]
浙公网安备 33010602011771号