1.读取一个python源码文件,显示除了以#号开头的行以外的所有行。并打印输出#号开头的行数。
# 创建test1.py文件,并写入内容
f = open('test1.py', 'w', encoding='utf-8')
f.write("# @Time:2022/1/28 15:57\n# @Author: LA\n"
"key_list = []\nvalue_list = []")
f.close()
# 方法一
# 打开test1.py文件
f = open('test1.py', 'r', encoding='utf-8')
ls = f.readlines()
f.close()
f = open('test1.py', encoding='utf-8')
j = len(ls)
for i in range(j):
line = f.readline()
if line[0] == '#':
print(f'以 #号 开头行行数:{i+1}')
else:
print(line, end="")
f.close()
# 方法二
f = open('test1.py', encoding='utf-8')
ls = f.readlines()
for index,line in enumerate(ls):
if line.startswith('#'):
print(f'以 #号 开头行行数:{index+1}')
else:
print(line, end="")
f.close()
2.写一个加法计算器。提示用户输入两个数字,再将它们相加并打印结果。在用户输入的任何一个值不是数字时都捕获异常,并打印一条友好的错误消息。应用异常处理和循环语句,直到用户输入”N“结束程序。
对编写的程序测试:先输入两个数字,再输入一些文本而不是数字。
def addtion(m, n):
? ?'''
? 加法计算器
? :param m:第一个数字
? :param n: 第二个数字
? :return: 两数和
? '''
? ?while True:
? ? ? ? ? ?try:
? ? ? ? ? ? ? ?result = int(m) + int(n)
? ? ? ? ? ? ? ?print("结果:", result)
? ? ? ? ? ? ? ?m = input("请输入第一个数字,输入'N'程序终止:")
? ? ? ? ? ? ? ?if m == 'N':
? ? ? ? ? ? ? ? ? ?break
? ? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ? ?n = input("请输入第二个数字,输入'N'程序终止:")
? ? ? ? ? ? ? ?if n == 'N':
? ? ? ? ? ? ? ? ? ?break
? ? ? ? ? ?except BaseException:
? ? ? ? ? ? ? ?print("输入错误,请重新输入!")
? ? ? ? ? ? ? ?m = input("请输入第一个数字:")
? ? ? ? ? ? ? ?n = input("请输入第二个数字:")
?
m = input("请输入第一个数字:")
n = input("请输入第二个数字:")
addtion(m, n)
3.有文件 t1.txt 里面的内容为
1,吴彦祖,22,13812346543,警察
2,金城武,23,13698763214,学生
3,彭于晏,18,13565478921,运动员
利用文件操作,将其构造成如下数据类型。输出到文件t2.txt中。
[
{'id':'1','name':'吴彦祖','age':'22','phone':'13812346543','job':'警察'},
{'id':'2','name':'金城武','age':'23','phone':'13698763214','job':'学生'},
... ...
]
# 写入文件
f = open('t1.txt', 'w', encoding='utf-8')
f.write('1,吴彦祖,22,13812346543,警察\n2,金城武,23,13698763214,学生\n3,彭于晏,18,13565478921,运动员')
f.close()
f1 = open('t1.txt', encoding='utf-8')
f2 = open('t2.txt', 'w', encoding='utf-8')
ls =[]
content = f1.readlines()
for line in content:
? ?info = dict()
? ?# print(f'{line}', end="")
? ?line = line.split(',')
? ?info['id'] = line[0]
? ?info['name'] = line[1]
? ?info['age'] = line[2]
? ?info['phone'] = line[3]
? ?info['job'] = line[4].strip('\n')
? ?ls.append(info)
f2.write('[\n')
for l in ls :
? ?f2.write(str(l)+'\n')
f2.write(']')
f1.close()
f2.close()
# 测试
print(ls)
|