您的位置:首页 > 编程语言 > Python开发

学习笔记-Python分册-Head First Python学习随记-错误汇总

2017-02-23 14:18 585 查看
【TypeError】

@20170224 TypeError: ‘NoneType’ object is not iterable

import os
import sanitize

james = []

#open the file to get the datas
def get_data(file_name):    os.chdir('/home/shiyy/Documents/HeadFirstPython/chapter5')
try:
with open(file_name) as datas:
data = datas.readline()
return (data.strip().split(','))
except FileNotFoundError as ioerr:
print('File Error: ' + str(ioerr))
return (None)
james = get_data('james2.txt')
#print(james)
#调整数据格式
clean_james = [sanitize.sanitize(james_data) for james_data in james]
print(sorted(clean_james))
unique_james = list(set(clean_james))
print(sorted(unique_james))
print(sorted(unique_james)[0:3])


注:

1.‘IOError’异常不能捕获由于文件名错误而导致的异常,‘FileNotFoundError’

2.若文件不存在时该代码会在第18行报‘TypeError: ‘NoneType’ object is not iterable’

【AttributeError】

@20170224 【异常代码】

import os
james = []
def get_data(file_name):
os.chdir('/home/shiyy/Documents/HeadFirstPython/chapter5')
try:
with open(file_name) as datas:
data = datas.readline()
return data.strip().split(',')
except IOError as ioerr:
print('File Error: ' + ioerr)
return(None)
james.get_data('james.txt')
print(james)


【错误信息】:

Traceback (most recent call last):
File "/home/shiyy/Documents/Pythons/chapter5/coach (copy).py", line 12, in <module>
james.get_data('james.txt')
AttributeError: 'list' object has no attribute 'get_data'


【修改后代码】

import os
james = []

def get_data(file_name):
os.chdir('/home/shiyy/Documents/HeadFirstPython/chapter5')
try:
with open(file_name) as datas:
data = datas.readline()
return data.strip().split(',')
except IOError as ioerr:
print('File Error: ' + ioerr)
return(None)
james = get_data('james.txt')
print(james)


注:return data.strip().split(‘,’)调整成return (data.strip().split(‘,’))

【TypeError】

@20170224【异常代码】

import os
import sanitize

james = []

#open the file to get the datas
def get_data(file_name):
os.chdir('/home/shiyy/Documents/HeadFirstPython/chapter5')
try:
with open(file_name) as datas:
data = datas.readline()
return data.strip().split(',')
except IOError as ioerr:
print('File Error: ' + ioerr)
return(None)
james = get_data('james.txt')
#print(james)

#调整数据格式
clean_james = [sanitize.sanitize(james_data) for james_data in james]
print(sorted(clean_james))

unique_james = set(sorted(clean_james))
print(unique_james)
print(unique_james[0:3])


【报错信息】

Traceback (most recent call last):
File "/home/shiyy/Documents/Pythons/chapter5/coach (copy).py", line 25, in <module>
print(unique_james[0:3])
TypeError: 'set' object is not subscriptable


【修改后代码】

import os
import sanitize

james = []

#open the file to get the datas
def get_data(file_name):
os.chdir('/home/shiyy/Documents/HeadFirstPython/chapter5')
try:
with open(file_name) as datas:
data = datas.readline()
return data.strip().split(',')
except IOError as ioerr:
print('File Error: ' + ioerr)
return(None)
james = get_data('james.txt')
#print(james)

#调整数据格式
clean_james = [sanitize.sanitize(james_data) for james_data in james]
print(sorted(clean_james))

unique_james = list(set(clean_james))#强转成列表类型
print(sorted(unique_james))
print(sorted(unique_james)[0:3])


注:集合是无序的不重复的,unique_james = set(sorted(clean_james))无法实现讲有序的cle
4000
an_james赋值给unique_james


【SyntaxError】

*@20170223*Python代码缩进问题

【问题描述】创建‘unique.py’文件后执行 sudo python3 setup.py install 后,出现如下错误提示:

running install
running build
running build_py
copying unique.py -> build/lib
running install_lib
copying build/lib/unique.py -> /usr/local/lib/python3.4/dist-packages
byte-compiling /usr/local/lib/python3.4/dist-packages/unique.py to unique.cpython-34.pyc
File "/usr/local/lib/python3.4/dist-packages/unique.py", line 5
return unique_list
^
SyntaxError: 'return' outside function


unique.py源码:

def unique(unique_list,the_list):
for t in the_list:
if t not in unique_list:
unique_list.append(t)
return unique_list


【问题分析】Python缩进问题(return语句缩进存在问题)

【问题改正】调整return语句的缩进

def unique(unique_list,the_list):
for t in the_list:
if t not in unique_list:
unique_list.append(t)
return unique_list
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python