从小白开始学习Python。选择学习参考资料书的理念,要么独特,要么全面。对于记录些啥,我认为我应该会记录作者的一些独特思维、良好方法、优越的理念等,当然也会记录一些自己的理解与思考。另外,我希望记录的东西不太多,零星的一些提示点即可。所以,可能分为两个阶段,先把书读厚,再把书读薄。
原书可从链接下载Head First Python
其中本书的支持文件的下载见本书支持文件下载
但是“from module import function”形式会搅乱你当前的命名空间,因为当前的命名空间中已经定义的名字会被导入的名字重写。
>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
try:
data = open('sketch.txt')
# data.seek(0)
for each_line in data:
try:
(speaker, line_spoken) = each_line.split(":", 1)
print(speaker, end='')
print(' said:', end='')
print(line_spoken, end='')
except ValueError:
pass
data.close()
# else:
# print('there is not the file')
except IOError:
print('there is not the file')
其中 except 后面的错误的类型标明(ValueError和IOError),制定了错误的类型,如果不是此类错误,则不进行下列的操作。
在使用访问模式w时,python会打开指定的文件进行写操作,
如果文件存在则清空现有内容
要追加到一个文件,需要使用访问模式a
要打开一个文件进行写或读不清除用“w+”
如果打开文件进行写操作,如果文件不存在,首先会自动创建文件,然后再打开文件写
try:
man_data_out = open("man_data", "w")
other_data_out = open("other_data", "w")
man_out = open("sketch.txt", "a")
man_add = open("sketch.txt", "w+")
print(man, file=man_data_out)
print(other, file=other_data_out)
print(man, file=man_out)
print(man, file=man_add)
except IOError:
print("the file is not closed")
finally:
man_data_out.close()
other_data_out.close()
man_out.close()
man_add.close()
open()
函数默认使用模式为rtry:
with open('missing.txt', "w") as cover: #问号前可以有多个 ..as.. 逗号隔开
print("it is covering", file=cover)
except IOError as err:
print('File error:' + str(err))
locals()
将反馈当前作用域中定义的所有名的一个集合。因为文件不存在所以missfile没有被定义。print(value, sep=' ', end='\n', file=sys.stdout)
print(value, end='')
new_man = []
try:
with open("man_data.txt", "wb") as man_data_out:
pickle.dump(man, man_data_out)
except IOError as err:
print("Error:" + str(err))
except pickle.PickleError as pickleErr:
pickle("Error:" + str(pickleErr))
try:
with open("man_data.txt", "rb") as man_data_out:
new_man = pickle.load(man_data_out)
except IOError as err:
print("Error:" + str(err))
except pickle.PickleError as pickleErr:
pickle("Error:" + str(pickleErr))
print(new_man)
实验二:不用pickle
new_other = []
try:
with open("other_data.txt", "w") as other_data_out:
print(other, fh=other_data_out)
except IOError as err:
print("Error:" + str(err))
try:
with open("other_data.txt") as other_data_out:
for each_line in other_data_out:
new_other.append(each_line)
except IOError as err:
print("Error:" + str(err))
print(new_other)
sort()
--利用排序后的数据替换原来的数据。sort(reverse = Ture)
sorted()
–排序后赋值给一个有序副本。sorted(reverse = Ture)
person = person_data.strip().split(",")
append()
new_l = [len(t) for t in old_l]
列表迭代:正常for循环new_l =[]
for t in old_l
new_l.append(len(t))
如果必须对一个列表中的每一项完成一个转换,使用列表推导是上策,特别是如果能很容易地在一行上指定转换(或者指定一个函数链),列表推导尤其适用。列表迭代可以完成列表推导所能完成的全部工作,迭代需要的代码更多一些,不过如果需要,迭代确实能提供更大的灵活性。james[0:3]
set()
函数是工厂函数可以创建一个集合。Python提供了字典,允许你有效的组织数据,可以将数据与名关联而不是与数据关联,从而实现快速查找。并且Python class语句还允许定义自己的数据结构。
字典是一个内置的数据结构,允许将数据与键而不是与数字关联。这样可以使内存中的数据与实际数据的结构保持一致。
创建字典
classes = { }
classes = dict()
self
----这是一个方法参数,总是指向当前对象实例dict()
的工厂函数或使用{}
可以创建一个空字典。person['name']
来访问person
字典中与键Name
关联的值new_d = { }
或new_d = dict()
然后添加数据d['name'] = 'James'
new_d = {'name' : 'James'}
class
定义一个类def
关键字==self==
作为第一参数目的:分享自己的应用