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