文件
一、实验目的与要求
1、掌握文件的打开和关闭的方法。
2、掌握文本文件和二进制文件文件的不同操作,如读写、重命名、删除。
3、掌握os与os.path模块文件和文件夹的操作
二、题目
1 编写程序,创建文件data.txt,共100行,第n行存放[100*(n-1), 100*n)之间的素数。
2 批量生成50个人的随机信息,包括姓名,性别、年龄和成绩等。
1)把生成的信息写入csv文件info.csv。
2)读取info.csv文件,将每一个不及格(成绩小于60)的同学信息存放在以该同学姓名命名的文件中,这些文件使用dat作为扩展名。
3 编写程序,显示当前程序的工作路径,并展示"C:\Windows\System32"下所有的空文件夹。
异常
一、实验目的与要求
1、理解异常的概念,掌握Python中重要的内建异常类以及处理异常的几种方式。
2、掌握raise和assert语句,会抛出自定义的异常,掌握with和as环境安装器的使用。
二、题目
1 自己定义一个异常类,继承Exception类, 捕获下面的过程:判断input()输入的字符串长度是否小于5,如果小于5,比如输入长度为3则输出:"The input is of length 3, expecting at least 5“,大于5则输出"success”。
2 编写程序,要求从键盘输入三个数字(整形或者浮点型),判断这三个数字是否能构成一个三角形。如果可以构成一个三角形,则计算三角形的周长。
1)自定义异常类IllegalArgumentException,对应异常信息为:“a,b,c不能构成三角形”
2)自定义异常类IllegalArgLenException,对应异常信息为:“参数个数不正确”
3)确保键盘输入的是三个值,如果输入值不为3,则抛出IllegalArgLenException异常。
4)确保输入是数字类型,否则抛出类型错误异常。
5)如果输入的三个数不能构成三角形则抛出IllegalArgumentException异常.如果可以构成则显示三角形三个边长,并计算并打印它的周长。
6)不管是否发生异常,程序都会在处理完毕后显示"程序运行结束"。
3 录入一个学生的成绩,把该学生的成绩转换为A优秀、B良好、C合格、D不及格的形式,最后将该学生的成绩打印出来。要求使用assert断言处理分数不合理(小于0或者大于100)的情况,请编写程序。
文件
一:
# 编写程序,创建文件data.txt,共100行,第n行存放[100*(n-1), 100*n)之间的素数。
import math
def main1():
f = open('a.txt', 'w', encoding="utf8")
for n in range(1, 101):
for i in range(100 * (n - 1) + 1, 100 * n + 1):
flag = True
for x in range(2, int(math.sqrt(i)) + 1):
if i % x == 0:
flag = False
break
if flag and i != 1:
f.write("{} ".format(i))
f.write("\n")
print("文件创建成功")
f.close()
main1()
二:
文章来源地址https://www.toymoban.com/news/detail-456201.html
# 批量生成50个人的随机信息,包括姓名,性别、年龄和成绩等。
#
# 1)把生成的信息写入csv文件info.csv。
#
# 2)读取info.csv文件,将每一个不及格(成绩小于60)的同学信息存放在以该同学姓名命名的文件中,这些文件使用dat作为扩展名。
import pickle
import random
# 导入CSV模块
import csv
def main2():
# 姓氏
firs_name = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
'汪', '王', '张', '陈', '郭', '费', '萨']
# 男孩名字
second_name_boy = ['壮', '昱杰', '开虎', '凯信', '永斌', '方洲', '长发', '可人', '天弘', '炫锐', '富明', '俊枫',
'伟', '刚', '勇', '毅', '俊峰', '强军', '平保', '东文', '辉', '力明', '永健', '世广', '志义', '兴良', '宁', '福生', '龙',
'国胜', '学祥', '利', '彬富', '顺信', '杰', '星光', '天达', '彪', '心', '邦', '承乐']
# 女孩名字
second_name_girl = ['小玉', '蓝', '琬郡', '琛青', '予舴', '妙妙', '梓茵', '海蓉', '语娜', '馨琦', '晓馥', '佳翊', '秀',
'娟', '英', '华', '慧', '巧美', '娜', '静', '淑', '惠珠', '翠雅', '芝玉', '萍', '红娥', '玲', '芬芳', '燕',
'彩春', '菊兰', '凤洁', '梅琳', '素云', '莲', '环雪', '荣爱']
all_gender = ['男', '女']
f = open("file.csv", "w", encoding="utf8", newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(["姓名", "性别", "年纪", '成绩'])
for i in range(50):
a_1 = firs_name[random.randint(0, len(firs_name) - 1)]
a_2 = ''
b = all_gender[random.randint(0, 1)]
c = str(random.randint(1, 80))
d = str(random.randint(1, 100))
if b == '男':
a_2 = second_name_boy[random.randint(0, len(second_name_boy) - 1)]
else:
a_2 = second_name_girl[random.randint(0, len(second_name_girl) - 1)]
csv_writer.writerow([a_1 + a_2, b, c, d])
print("-----------------------写入数据成功-----------------------")
f.close()
f2 = open("file.csv", "r", encoding="utf8")
csv_read = csv.reader(f2)
next(csv_read)
for row in csv_read:
if int(row[3]) < 60:
f = open('a/' + row[0] + '.dat', "wb")
pickle.dump(row, f)
f.close()
print("----------------------不及格学生信息文件创建完毕----- -------")
print("------------------实验二--------------------")
main2()
三:
# 编写程序,显示当前程序的工作路径,并展示"C:\Windows\System32"下所有的空文件夹。
# os模块是Python中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录。
import os
def main3():
for (dirname, sub_dirs, files) in os.walk(r'D:\Pycharm-community\pycharm\python-files'):
for name in sub_dirs:
if os.path.isdir(os.path.join(dirname, name)) and not os.listdir(os.path.join(dirname, name)):
print(os.path.join(dirname, name))
print("------------------实验三--------------------")
main3()
异常
一:
# 自己定义一个异常类,继承Exception类, 捕获下面的过程:判断input()输入的字符串长度是否小于5,
#
# 如果小于5,比如输入长度为3则输出:"The input is of length 3, expecting at least 5“,大于5则输出"success”。
class LengthError(Exception):
def __init__(self, data):
Exception.__init__(self, data)
self.data = data
def __str__(self):
return "The input is of length {}, expecting at least 5".format(self.data)
def main4():
x = input("请输入字符串:")
if len(x) < 5:
raise LengthError(len(x))
else:
print("success")
print("------------------实验四--------------------")
main4()
二:
# 编写程序,要求从键盘输入三个数字(整形或者浮点型),判断这三个数字是否能构成一个三角形。如果可以构成一个三角形,则计算三角形的周长。
#
# 1)自定义异常类IllegalArgumentException,对应异常信息为:“a,b,c不能构成三角形”
#
# 2)自定义异常类IllegalArgLenException,对应异常信息为:“参数个数不正确”
#
# 3)确保键盘输入的是三个值,如果输入值不为3,则抛出IllegalArgLenException异常。
#
# 4)确保输入是数字类型,否则抛出类型错误异常。
#
# 5)如果输入的三个数不能构成三角形则抛出IllegalArgumentException异常.如果可以构成则显示三角形三个边长,并计算并打印它的周长。
#
# 6)不管是否发生异常,程序都会在处理完毕后显示"程序运行结束"。
class IllegalArgLenException(Exception):
def __init__(self, data):
Exception.__init__(self, data)
self.data = data
def __str__(self):
return "{} not is three".format(self.data)
class IllegalArgumentException(Exception):
def __init__(self, data):
Exception.__init__(self, data)
self.data = data
def __str__(self):
return "{}这三个数不能构成三角形".format(self.data)
def main5():
lis = input("请输入三个数:").split(" ")
try:
if len(lis) != 3:
raise IllegalArgLenException(len(lis))
lis2 = [float(lis[0]), float(lis[1]), float(lis[2])]
if lis2[0] < 0 or lis2[1] <= 0 or lis2[2] <= 0 or \
lis2[0] + lis2[0] <= lis2[1] or lis2[1] + lis2[2] <= lis2[0] or lis2[0] + lis2[2] <= lis2[1]:
raise IllegalArgumentException(lis2)
else:
print("三角形的周长为:{}".format(lis2[0] + lis2[1] + lis2[2]))
finally:
print("程序运行结束")
print("------------------实验五--------------------")
main5()
三:
# 录入一个学生的成绩,把该学生的成绩转换为A优秀、B良好、C合格、D不及格的形式,最后将该学生的成绩打印出来。要求使用assert断言处理分数不合理(小于0或者大于100)的情况,请编写程序。
def main6():
score = float(input("请输入学生的成绩:"))
assert 0 <= score <= 100, "成绩不合法"
if score < 60:
print("成绩为D")
elif 60 <= score < 70:
print("成绩为C")
elif 70 <= score < 80:
print("成绩为B")
else:
print("成绩为A")
print("------------------实验六--------------------")
main6()
文章来源:https://www.toymoban.com/news/detail-456201.html
到了这里,关于Python实验报告五 python基础试题练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!