目录
8-2 文件与随机数 (高教社,《Python编程基础及应用》习题11-3)
8-4 使用read、readline和readlines方法都可以从文件中读取数据,简述这几个方法的区别。
8-1 文件编程
用水量文件"water.txt"的第一列为账号,下面是每个月的用水量(后一个数-前一个数),共十二个月。每立方米需付1.05元。编程计算每户一年的水费,结果保存在fee.txt文件中。程序和结果文件压缩后(zip格式)以文件形式上传!
water.txt格式如下:
0000359333 772 789 806 847 880 901 950 991 1022 1043 1064 1089 1114
0000359305 121 132 145 156 168 179 192 206 219 230 246 258 273
0000359708 1008 1046 1102 1167 1209 1255 1311 1362 1407 1453 1512 1563 1604
0000359504 541 567 590 622 651 689 701 732 758 775 796 814 847
0000359209 401 412 441 466 479 490 508 522 541 572 603 637 666fee.txt格式如下(保留2位小数):
0000359333 359.10
0000359305 159.60
0000359708 625.80
0000359504 321.30
0000359209 278.25
# open('文件名.文件格式',模式,encoding='utf-8')
with open('water.txt',r,encoding='utf-8') as fr,open('fee.txt',w,encoding='utf-8') as fw:
for line in fr.readlines():
line = line.strip().split(' ')
ID = line[0]
water_total = int(line[-1])-int(line[1])
water_m = 1.05*water_total
fw.writeline(f'{ID} {water_m:.2f}\')
8-2 文件与随机数 (高教社,《Python编程基础及应用》习题11-3)
编写一个程序将随机产生的1 000 个1000 以内的整数写人一个文件,文件中的整数用逗号分隔。从文件中读取数据,打印输出排序后的结果
请完成上述程序,并上传一张WORD格式文件:
1.包括代码;
2.显示程序的执行结果;
3.生成的文件内容。
import random
with open('记录.txt',r,encoding='utf-8') as f:
data = []
for i in range(1000):
i= random.randint(1,1000)
data.append(str(i))
f.write(','.join(data))
8-3 Person和Customer类
Person和Customer类
编写一个名为Person的类,其中包含个人姓名、地址和电话号码的数据属性。然后,编写一个名为Customer的类,该类是Person类的子类。Customer类有一个客户编号的数据属性和一个布尔数据属性(表明客户是否希望在邮件列表中)。并且在程序中创建一个Customer类的实例并显示它。
##首先定义父类Person,
class Person:
def _init_(self,name,address,phone):
self.name=name
self.address=address
self.phone=phone
##定义子类Customer
class Customer(Person):
def _init_(self,name,address,phone,customer_id,in_email:bool=False):
#调用父类的构造函数
super()._init_(name,address,phone) #相等 Preson._init_(self,name,address,phone)
#添加自己的属性
self.customer_id=customer_id
self.in_email=in_email
cus = Customer('张三','北京','12345678901','1001',True)
print(cus.name)
8-4 使用read、readline和readlines方法都可以从文件中读取数据,简述这几个方法的区别。
read()
read()方法用于一次性读取整个文件的内容,并将其作为一个字符串返回。语法如下:
file_object.read()
- 优点:读取整个文件,将文件内容放到一个字符串变量中。
- 劣势:如果文件非常大,尤其是大于内存时,无法使用read()方法。
readline()
readline()方法用于逐行读取文件的内容。每次调用readline()方法,它会读取文件的下一行,并将其作为一个字符串返回。语法如下:
file_object.readline()
- 优点:readline()方法每次读取一行;返回的是一个字符串对象,保存当前行的内存,不占用内存
- 缺点:速度比readlines()慢很多
readlines()
readlines()方法用于将文件的所有行读取到一个列表中。每一行都是列表中的一个元素,列表按照文件中的顺序保持。语法如下:
file_object.readlines()
8-5 请发表关于python有哪些用途的见解
1、Web开发
2、网络爬虫
3、人工智能
4、数据分析
5、自动化运维
6、系统编程
7、图形处理
8、数学处理
9、数据库编程
10、多媒体应用