实验名称:综合练习

你牛逼你第一,你在海里开飞机。

目录

一、实验目的

二、实验环境

三、实验步骤

四、实验结果

1.计算1-100能被10整除的数之和。

2.打印99乘法表。

3.以函数的形式从csv文件(自行准备)中以读取多行数据的方式读取文件后组成一个二维列表打印输出,再以函数的形式写入另一个csv文件中。

4.学校招聘了9名新教师,学校有3个空闲办公室,编写程序实现将9名教师随机平均分配到3个办公室的功能

5.编写一段代码要求使用异常处理的各种方式(捕获、抛出、断言)

五、实验心得


一、实验目的

1.计算1-100能被10整除的数之和。

2.打印99乘法表。

3.以函数的形式从csv文件(自行准备)中以读取多行数据的方式读取文件后组成一个二维列表打印输出,再以函数的形式写入另一个csv文件中。

4.学校招聘了9名新教师,学校有3个空闲办公室,编写程序实现将9名教师随机平均分配到3个办公室的功能

5.编写一段代码要求使用异常处理的各种方式(捕获、抛出、断言)

二、实验环境

安装pycharm2023.3.4 

安装适配的jdk

三、实验步骤

1.计算1-100能被10整除的数之和。

  • 接收用户所输入的值的范围
  • 使用if语句判断是否输入正确
  • 当接收到需要计算的范围时,使用for循环进行遍历
  • 当该数对10取余为0时,就符合条件,使用i来计数,使sum自增
  • 最后输出sum的值

2.打印99乘法表。

  • 设置嵌套循环
  • i控制行,j控制列
  • 以“{i}*{j}={i*j}”格式打印出来
  • 注意格式化输出

3.以函数的形式从csv文件(自行准备)中以读取多行数据的方式读取文件后组成一个二维列表打印输出,再以函数的形式写入另一个csv文件中。

  • 读取CSV文件:使用Python内置的csv库,通过打开CSV文件并调用csv.reader()方法来实现读取CSV文件。
  • 组成二维列表:在读取CSV文件后,遍历每一行数据并将其组成一个列表,最终再将所有列表组成一个二维列表。
  • 打印输出:使用Python内置的print函数将二维列表打印输出。
  • 写入CSV文件:同样使用Python内置的csv库,通过打开一个新的CSV文件并调用csv.writer()方法来实现将二维列表写入到新的CSV文件中。

4.学校招聘了9名新教师,学校有3个空闲办公室,编写程序实现将9名教师随机平均分配到3个办公室的功能

  • 导入random模块,因为该题目需要用到随机分配功能
  • 新建一个列表,把老师放进去
  • 再新建一个列表把教室放进去
  • 随机生成0/1/2的整数,使用append将老师添加进教室的列表
  • 打印出每个教室的老师

5.编写一段代码要求使用异常处理的各种方式(捕获、抛出、断言)

  • 使用try-except语句进行异常捕获。
  • 使用raise语句抛出异常。
  • 使用assert语句进行断言。

四、实验结果

1.计算1-100能被10整除的数之和。

# 1.计算1-100能被10整除的数之和。
sum = 0
for i in range(1,101):
    if i%10 == 0:
        sum += i
print(f"1~100能被10整除的数之和为:{sum}")


#拥抱用户需求
sum = 0
min = int(input("请输入您所需要计算的下限:"))
max = int(input("请输入您所需要计算的上限:"))
if min > max:
    print("嗯?分不清大小王是吧?")
else:
    for i in range(min,max):
        if i%10 == 0:
            sum += i
    print(f"{min}~{max}能被10整除的数之和为:{sum}")

2.打印99乘法表。

# 2.打印99乘法表
for i in range(1,10):
    for j in range(1,10):
        print(end="\t")
        print(f"{i}*{j}={i*j}",end="")
    print()

3.以函数的形式从csv文件(自行准备)中以读取多行数据的方式读取文件后组成一个二维列表打印输出,再以函数的形式写入另一个csv文件中。

# 3.以函数的形式从csv文件(自行准备)中以读取多行数据的方式读取文件后组成一个二维列表打印输出,再以函数的形式写入另一个csv文件中。
import csv

def read_csv_file(filename):
    data = []
    with open(filename, newline='') as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            data.append(row)
    return data

# 示例:读取名为data.csv的文件并打印输出
data = read_csv_file('data.csv')
for row in data:
    print(row)
    import csv


    def write_csv_file(data, filename):
        with open(filename, 'w', newline='') as csvfile:
            writer = csv.writer(csvfile)
            for row in data:
                writer.writerow(row)


    # 示例:将名为output.csv的文件中写入数据
    data = [['Name', 'Age', 'Gender'], ['Alice', 25, 'Female'], ['Bob', 30, 'Male']]
    write_csv_file(data, 'output.csv')

4.学校招聘了9名新教师,学校有3个空闲办公室,编写程序实现将9名教师随机平均分配到3个办公室的功能

# 4.学校招聘了9名新教师,学校有3个空闲办公室,编写程序实现将9名教师随机平均分配到3个办公室的功能
import random

# 定义教师列表和办公室列表
teachers = ['teacher1', 'teacher2', 'teacher3', 'teacher4', 'teacher5', 'teacher6', 'teacher7', 'teacher8', 'teacher9']
offices = [[], [], []]  # 三个办公室

# 随机分配教师到办公室
for teacher in teachers:
    index = random.randint(0, 2)  # 随机生成0、1、2的整数
    offices[index].append(teacher)  # 将教师添加到对应的办公室中

# 打印每个办公室的教师
for i in range(3):
    print(f"办公室{i+1}的教师有:{offices[i]}")

5.编写一段代码要求使用异常处理的各种方式(捕获、抛出、断言)

# 5.编写一段代码要求使用异常处理的各种方式(捕获、抛出、断言)
try:
    a = int(input("请输入一个数字:"))
    b = int(input("请输入另一个数字:"))
    c = a / b
    print("结果为:", c)
except ZeroDivisionError:
    print("除数不能为0")
except ValueError:
    print("输入的不是数字")
except:
    print("出现了其他异常")


    def divide(a, b):
        if b == 0:
            raise ZeroDivisionError("除数不能为0")
        return a / b


    try:
        c = divide(10, 0)
    except ZeroDivisionError as e:
        print(e)


        def divide(a, b):
            assert b != 0, "除数不能为0"
            return a / b


        c = divide(10, 0)

五、实验心得

“纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真真领悟到“学无止境”这句话的涵义。而老师所讲的,都是非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值