练习5
1.分三行将你的学号、姓名、和班级写入文本文件name.txt中,然后将文件name.txt中的内容输出到屏幕上显示。
with open(r"E:\Code\python\pythonClass\ninth\name.txt",'w',encoding='utf-8')as f:
f.writelines('0001' + '\n')
f.writelines('小明' + '\n')
f.writelines('1702班' + '\n')
f.close()
with open(r"E:\Code\python\pythonClass\ninth\name.txt",'r',encoding='utf-8')as f:
print(f.read())
f.close()
2.从一个文本文件grade.txt内读入任意多个学生的分数,求出最高分,最低分和平均分输出
with open("grade.txt", 'r') as f:
ls = []
for s in f:
s = s.strip("\n")
ls.append(int(s))
print(max(ls))
print(min(ls))
print("{:.1f}".format(sum(ls)/len(ls)))
3.从文件in162.txt中读入10个以磅为单位的重量值,将其转换为以千克为单位的值并求和,将计算所得的和输出。说明:一磅等于0.454千克。
fo = open('in162.txt','r')
s = fo.readline()
a = []
ls = s.split(' ')
for i in ls:
a.append(eval(i))
sum = 0.0
for j in a:
sum = sum + j
wight = sum * 0.454
print(wight)
4.文件src.txt存储的是一篇英文文章,将其中所有大写字母转换成小写字母输出。
fo = open('src.txt','r')
s = fo.readline()
for i in s:
print(i.lower(),end="")
5.文件“score.txt”中存储了歌手大奖赛中10名评委给一个歌手打的分,10个分数每个在一行,形式如下:
8.99
9.02
9.15
8.89
8.95
……
从文件中读取数据,存入列表中,计算该名歌手的最终得分,最终得分的计算方式是10个评分去掉最高分,去掉最低分,然后求平均分。最终得分保留两位小数,输出到屏幕
with open("score.txt", 'r') as f:
ls = []
for s in f:
s = s.strip("\n")
ls.append(float(s))
ls.remove(max(ls))
ls.remove(min(ls))
print("{:.2f}".format(sum(ls) / len(ls)))
6.文件“mm.txt”中存储了字母和所对应的加密字符,中间用空格隔开,形式如下:
A 2
B 5
C 4
D 7
E 0
F 9
G 1
H 3
I 6
J 8
K !
L @
M #
N %
O $
P ^
Q *
R ,
S .
T (
U )
V -
W +
X <
Y >
Z ?
从文件读取数据后,存入字典。然后输入字符串,输出加密后的字符串。
with open('mm.txt', 'r', encoding='utf-8') as f:
dic = []
for line in f.readlines():
line = line.strip('\n')
b = line.split(' ')
dic.append(b)
dic = dict(dic)
dic[" "] = " "
str1 = list(input().upper())
for i in str1:
print(dic[i], end="")
7.从键盘输入字符串,统计其中数字字符的个数。
str1 = input()
count = 0
for i in str1:
if i.isnumeric() is True:
count +=1
print(count)
8.读取附件seed.txt中作为随机种子来随机生成n个10位密钥,由大、小写字母和数字组成,n<=10,由用户输入 ,每行一个密钥输出在屏幕上,同时按每行一个密钥的格式写入当前路径下key.txt中。
ls = ['iK2ZWeqhFW',
'9382dffx1k',
'pLIix6MEOL',
'ptgUzEjfeb',
'NqVwYS81VP',
'YK0fFWqcaj',
'u8jzPde0Ig',
'ox9yimTcfi',
'DNxril3Rav',
'KcBEKanD0F']
num = int(input())
if num <= 10:
for j in ls[:num]:
print(j)
elif num > 10:
print("Input Error!")
9.打开上一个题目中生成的数据文件“ d2.csv”,读取文件内容,以分行的方式显示在屏幕终端,每行各个数据间用“ \ t”制表符号控制输出格式。
提示: 每行数据可构造由"\t“分隔的格式字符串,示例如下:
ss+="{}\t".format(item)
fo = open("d2.csv","r")
for line in fo:
line = line.replace("\n","")
line = line.split(',')
ss = ''
for item in line:
ss+="{}\t".format(item)
print(ss)
- 循环输入整数n(n取值范围1,2,3),输入1或2读取文本文件text1.txt或text2.txt的全部数据;输入3退出循环,输出“已经退出循环”
判断读取的字符串:
1).如果是数字组成的,利用format格式右对齐 20位宽,以*号填充输出,例如读取的数字是2,输出格式为“*********2”。
2).如果是字符串组成的,从该字符串下标2到最后输出。例如读取的是“Happy”,输出“ppy”
while 1:
flag = int(input())
if flag == 1:
with open("text1.txt", 'r', encoding='utf-8') as f:
ls = f.read()
print(ls[1:10])
print("{:*>20}".format(ls[1:10]))
elif flag == 2:
with open("text2.txt", 'r', encoding='utf-8') as f:
ls = f.read()
print(ls[3:])
elif flag == 3:
print("已经退出循环")
break