Python编程语言学习笔记
第八部分:文件读写
#文件打开,写文件方法,关闭文件方法
file = open(‘data.txt’,‘w’)
file.write(‘DDDDDDD\n’‘AAAAAAA\n’‘BBBBBBB\n’‘CCCCCCC\n’)
data = [‘福兮祸之所倚\n’,‘祸兮福之所倚\n’,‘明日复明日\n’,‘明日何其多\n’,‘我生待明日\n’,‘万事成蹉跎’]
file.writelines(data)
file.close()
打开data.txt文件内容如下:
#文件打开,读文件方法,关闭文件方法
file = open(‘data.txt’,‘r’)
contents1 = file.read(6)
#readlines方法遇到\n结束读
contents2 = file.readline(2)
print(contents1)
print(contents2)
#一次性读取文件所有文件,并将每行的内容作为一个列表元素存储在列表中
contents3 = file.readlines()
print(contents3)
file.close()
读取上面data.txt的结果如下:
#上下文管理器
with open(‘data.txt’,‘r’) as file:
contents = file.readlines()
print(contents)
#作业要求
#编写一个Python程序,将一些文本内容写入到文件中,并且能够从文件中读取内容并显示出来。
file_name = ‘test_log.txt’
data = [‘success’,‘error’,‘info’,‘debug’]
import datetime
with open(file_name,‘w’) as file:
for item in data:
time_content = str(datetime.datetime.now())
file.write(time_content +item + '\n')
with open(file_name,‘r’) as file_r:
print(f’测试日志内容为’,file_r.readlines())
运行结果:
第九部分 错误日志与调试
def input_data():
n = int(input(“请输入一个数字:”))
msg = input(“请输入一个字符串信息:”)
return n,msg
def output_data(n,msg):
for i in range(n):
print(f’这是第{i + 1}次打印:',msg)
if name == ‘main’:
n,msg = input_data()
output_data(n,msg)
#第九部分:异常处理
if name == ‘main’:
result = 0
filename = ‘test_case.txt’
try:
file = open(filename,'w')
num_divider = int(input("请输入一个被除数:"))
num_dividend = int(input("请输入一个除数:"))
file.write(str(num_divider) +'除以' + str(num_dividend) + '的计算结果为:')
except TypeError as err1:
print("文件写入出错,请检查代码!",err1)
except Exception as err2:
print("输入的值不合法,请重新输入:",err2)
else:
result = num_divider / num_dividend
print(f"{num_divider}除以{num_dividend}的计算结果为:",result)
try:
file.write(str(result))
except Exception as err3:
print("文件写入出错,请检查代码!报错信息为:",err3)
finally:
file.close()
#计算器作业要求
#编写一个Python程序,可以执行加法、减法、乘法和除法操作。
##用户可以输入两个数字和运算符,然后计算并输出结果。实现计算器的功能(+、-、、/),并处理异常情况,比如:输入的不是数字、除数为0等。
def input_data():
num1 = int(input(“请输入用于计算的第一个数字:”))
oper = input("请输入±/运算符:")
num2 = int(input(“请输入用于计算的第二个数字:”))
return num1,oper,num2
def data_computer(num1,oper,num2):
if oper == ‘+’:
result = num1 + num2
elif oper == ‘-’:
result = num1 - num2
elif oper == ‘':
result = num1 * num2
elif oper == ‘/’:
result = num1 / num2
else:
result = ‘运算符错误’
return result
if name == ‘main’:
while(True):
try:
num1, oper, num2 = input_data()
result = data_computer(num1, oper, num2)
except ZeroDivisionError as err1:
print(“计算错误:除数不能为0,详细报错信息为:”, err1)
except TypeError as err2:
print(“计算错误,输入值不为数字,详细报错信息为:”, err2)
except Exception as err3:
print(“计算错误,输入值不合法,请检查数字和运算符是否输入错误”, err3)
else:
if result == ‘运算符错误’:
print("计算失败,运算符输入错误,请确认输入值为±/“)
else:
print(f”{num1}{oper}{num2}计算结果为:", result)
finally:
flag = input(f’Y/y代表继续计算,非Y/y值视为退出运算,请确认是否继续计算?:’)
if (flag != ‘Y’) and (flag !=‘y’):
print(“计算器运行结束,欢迎下次再来”)
break