python编程 从入门到实践 第十章 文件和异常(下)

异常

try:
	print(5/0)
except ZeroDivisionError:
	print('除数不能为0哦!!!')

将导致错误的代码行print(5/0)放在try代码块中,如果try代码块中的代码运行起来没报错,python将跳过except代码块,如果try代码块中的代码运行起来有报错,python将查找与之匹配的except代码块,并运行其中的代码

做除法运算

print('请输入被除数和除数,或者输入q退出')
while True:
	被除数=input('请输入被除数:\n')
	if 被除数=='q':
		break
	除数=input('请输入除数:\n')
	if 除数=='q':
		break
	try:
		answer=int(被除数)/int(除数)
	except ZeroDivisionError:
		print('除数不能为0哦!!!')
	else:
		print(f'{被除数}除以{除数}的结果是:{answer}')

split()方法以空格为分隔符将字符串拆分多个部分,并将这些部分都存储在一个列表中,可以用来统计英语字符数

filename='alice.txt'
try:
	with open(filename)as f:
		contents=f.read()
except FileNotFoundError:
	print(f'{filename}文件不存在')
else:
	words=contents.split()
	字数=len(words)
	print(f'{filename}共有{字数}个字')

统计文件字数

def count_words(filename):
	try:
		with open(filename)as f:
			contents=f.read()
	except FileNotFoundError:
		print(f'{filename}文件不存在')
	else:
		words=contents.split()
		字数=len(words)
		print(f"{filename}{字数}个字数")
count_words('alice.txt')

静默失败,在except语句块后面为pass

try-except-else

#练习10-6

try:
	number1=input('请输入第一个数:')
	number1=int(number1)
	number2=input('请输入第二个数:')
	number2=int(number2)
except ValueError:
	print('你输入的不是一个数字')
else:
	answer=number1+number2
	print(f'{number1}+{number2}={answer}')

#练习10-7

while True:
	try:
		number1=input('请输入第一个数:')
		number1=int(number1)
		number2=input('请输入第二个数:')
		number2=int(number2)
	except ValueError:
		print('你输入的不是一个数字')
	else:
		answer=number1+number2
		print(f'{number1}+{number2}={answer}')

#练习10-8

def read(filename):
	try:
		with open(filename)as f:
			file=f.read()
			
	except FileNotFoundError:
		print('文件不存在')
	else:
		print(file)
read('cats.txt')
read('dogs.txt')

#练习10-9

def read(filename):
	try:
		with open(filename)as f:
			file=f.read()
			
	except FileNotFoundError:
		pass
	else:
		print(file)
read('cat.txt')#本身就不存在的文件
read('dogs.txt')

count(‘str’)可以统计字符串的个数
json.dump()接受两个实参:要存储的数据,以及用于存储数据的文件对象

import json
numbers=[2,3,4,5,11,23]
filename='number.json'
with open(filename,'w')as f:
	json.dump(numbers,f)
#使用json.load()将列表读取到内存中
import json
filename='number.json'
with open(filename)as f:
	numbers=json.load(f)
print(numbers)
 
"""
[2, 3, 4, 5, 11, 23]
"""
#保存用户生成的数据
import json
username=input("what is your name?")
filename='username.json'
with open(filename,'a')as f:
	json.dump(username,f)
	print(f"欢迎你{username}")
#读取用户生成的数据
import json
filename='username.json'
with open(filename)as f:
	username=json.load(f)
	print(f"欢迎你回来,{username}")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值