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

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

课程:《Python程序设计》

班级:2423

姓名:曾海鹏

实验教师:王志强

实验日期:2025年3月26日

必修/选修:公选课

一、实验内容

  1. 设计并完成一个计算器的应用程序,包含基础的整数的加减乘除模运算。
  2. 练习基本语法、判定语句、循环语句、逻辑运算等知识点。
  3. 学会将代码托管到码云。

二. 实验过程及结果

完成一个计算器的应用程序

  1. 首先根据实验要求设计简单的整数加减乘除运算。
    用两个变量储存输入的数字,再用给出提示的字符表示运算符,根据不同运算符,分情况输出结果。

  2. 其次在此基础上,将其设置为子函数,再利用while循环,实现多次使用的效果。

  3. 添加更多运算符,如求余,幂等,实现更多功能。
    代码为:
    def osjisuanji(num1,num2,os):
    num1=int(num1)
    num2=int(num2)
    if os =='+':
    return num1 + num2
    elif os =='-':
    return num1 - num2
    elif os == '*':
    return num1 * num2

    elif os == '/':
    if num2==0:
    print("宝宝,你真笨,除数不为零我二年级就知道了")
    return 0
    return num1 / num2

    elif os == '%':
    return num1 % num2
    elif os == '**':
    return num1 ** num2
    else:
    return "小傻瓜,符号都不会输入吗"

while True:
num1 = input("请输入第一个数num1=")
os = input("请输入运算符+,-,*,/,%,**\n")
num2 = input("请输入第一个数num2=")

result = osjisuanji(num1, num2, os)  
print(f"黑子说话: {result}")  

continue1=input("小菜鸡继续吗y or n\n")  
if continue1!='y':  
    break

运行和调试如下图所示:

练习基本语法、判定语句、循环语句、逻辑运算等知识点

主要练习了:
1.输入的成绩输出对应的等级。
2.使用循环语句,对 1 到 100 之间的所有偶数进行求和。
3.结合了循环语句和字符串格式化,打印出九九乘法表。
4. 判断一个数是否为质数。
5. 逻辑运算符(andornot)的使用。

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

  • 问题1: 当用户在输入数字时输入了非数字字符,例如字母、符号等,程序会在执行 int(num1)int(num2) 时抛出 ValueError 异常,导致程序崩溃。
  • 问题1解决方案:可以使用 try-except 语句来捕获 ValueError 异常,并提示用户重新输入有效的数字。
    在子函数中添加
    try和 except ValueError:
    return "输入的不是有效的数字,请重新输入。"
    语句,提高程序的健壮性和用户体验。
  • 问题2:如何使用循环语句来简化计算器代码?
  • 问题2解决方案:根据豆包解释:
  • 把运算符和对应的计算逻辑存储在一个字典里,这样就能借助字典查找来简化 if-elif 语句。
  • 运用循环来持续接收用户输入,直到用户决定退出。
  • 采用异常处理机制捕获用户输入非数字的情况。
    可以通过以下代码简化:

定义运算符及其对应的计算函数

operators = {
'+': lambda x, y: x + y,
'-': lambda x, y: x - y,
'*': lambda x, y: x * y,
'/': lambda x, y: x / y if y != 0 else (print("宝宝,你真笨,除数不为零我二年级就知道了"), 0)[1],
'%': lambda x, y: x % y,
'**': lambda x, y: x ** y
}

while True:
try:
# 获取第一个数字
num1 = float(input("请输入第一个数: "))
# 获取运算符
operator = input("请输入运算符 (+, -, *, /, %, **): ")
# 获取第二个数字
num2 = float(input("请输入第二个数: "))

    # 检查运算符是否有效
    if operator in operators:
        result = operators[operator](num1, num2)
        print(f"计算结果: {result}")
    else:
        print("小傻瓜,符号都不会输入吗")
except ValueError:
    print("输入的不是有效的数字,请重新输入。")

# 询问用户是否继续
continue_choice = input("是否继续计算?(y/n): ")
if continue_choice.lower() != 'y':
    print("程序已退出,再见!")
    break

参考资料

  • 《强哥带我学python》
  • 《豆包教我写报告》
posted @ 2025-04-01 21:48  20242313曾海鹏  阅读(41)  评论(0)    收藏  举报