Python学习笔记之缩进

本文探讨了Python语言中缩进的规范和重要性。Python通过缩进来划分代码的逻辑层次,通常采用4个空格作为一级缩进。文章以一个实际的I/O操作错误为例,解释了缩进不当如何导致程序逻辑错误,如在for循环中误将文件关闭操作放在循环内,从而引发'ValueError: I/O operation on closed file.'。正确的做法是确保关闭文件的操作位于正确逻辑层级,以避免此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Python语言中,对缩进十分敏感。

1、Python缩进分为空格和tab两种,要求每级缩进长度为4,可以使用4个空格或者一个tab(需要在编辑器中设置tab长度为4)

2、每一个缩进表示代码的一个逻辑层,python是通过缩进来划分程序逻辑的

在今天的学习过程中,在文件的一个操作中出现了如下错误,导致提醒I/O operation on closed file错误,实际是是缩进错误

man = []
other = []
try:
	data = open('sketch.txt')
	for each_line in data:
		try:
			(role,line_spoken) = each_line.split(':',1)
			line_spoken = line_spoken.strip()
			if role == 'Man':
				man.append(line_spoken)
			elif role == 'Other Man':
				other.append(line_spoken)
		except ValueError:
			pass
		data.close()
except IOError:
	print('The datafile is missing!')
print(man)
print(other)

错误提示:

Traceback (most recent call last):
  File "D:\PythonLearn\HeadFirstPyhton\chapter3\filesave.py", line 5, in <module>
    for each_line in data:
ValueError: I/O operation on closed file.


错误原因是在for循环后应该关闭文件的data.close()操作,因为多了一级缩进,所以导致这一行是在for循环中的,因此关闭文件便无法完成循环

正确代码:

man=[]
other=[]
try:
	data = open('sketch.txt')
	
	for each_line in data:
		try:
			(role,line_sopken) = each_line.split(':',1)
			line_sopken = line_sopken.strip()
			if role == 'Man':
				man.append(line_sopken)
			elif role == 'Other Man':
				other.append(line_sopken)
		except ValueError:
			pass

	data.close()
except IOError:
	print('The datafile is missing!')
print(man)
print(other)



在编码中,可以考虑在函数内部,对于不同逻辑层的代码适当加空行用以区分,使逻辑显示更加 清晰也易于查找错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值