python第二课
1.词典。词典的可以理解wie变相的list,它的每个元素是有两部分组成,既键和值。dic = {'tom':11, 'sam':57,'lily':100}词典必须要用大括号。
>>>print dic.keys() # 返回dic所有的键
>>>print dic.values() # 返回dic所有的值
>>>print dic.items() # 返回dic所有的元素(键值对)
>>>dic.clear() # 清空dic,dict变为{}
2.文本文件。主要通过open实现
f=open("record.txt","w")
f.writelines("tom,12,86\lee,15,99\lucy,11,58")
f.close()
x=open("record.txt","r")
contents=x.read()
x.close()
print contents
文件建立在了python安装的根目录下。
3.打开路径的方法
import os
print(os.getcwd()) #打开当前路径地址
4.模块
模块就是各个以.py结尾的文件,这些文件都要放到python的安装目录下才能被有效的调用。.py文件都是事先编辑好的各类程序,能够实现某一功能。将功能相似的模块放在一个文件夹里,例如文件夹起名字为this_module(该文件夹中必须包含一个__init__.py的文件,提醒python,该文件夹为一个模块包。__init__.py可以是一个空文件。),这个文件夹就成为一个模块包。模块包的调用import module。
import a as b # 引入模块a,并将模块a重命名为b
from a import function1 # 从模块a中引入function1对象。调用a中对象时,我们不用再说明模块,即直接使用function1,而不是a.function1。
from a import * # 从模块a中引入所有对象。调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象。
5.数据的传递
主要有位置传递,关键字传递,包传递,解包裹。位置传递就是我们常规理解的一一对应的机械传递方式;关键字是按照关键字进行传递。包传递就是将外界传来的很多参数打包成一个tuple,相当于是个元素组,函数直接识别元素组。解包裹是外界传来一个tuple,到函数识别时,自动拆解成和函数参数对应的各个单个的元素。tuple的传递用*标识,词典的传递用**标识。
6.循环设计
主要有三个函数 range() enumerate()zip()
range()在range函数中,分别定义上限,下限和每次循环的步长;
enumerate()在每次循环中,返回的是一个包含两个元素的定值表(tuple),两个元素分别赋予index和char。
zip()从多个列表中,依次各取出一个元素。每次取出的(来自不同列表的)元素合成一个元组,合并成的元组放入zip()返回的列表中。zip()函数起到了聚合列表的功能。
>>> s='abcdefjk'
>>> for i in range(0,len(s),2):
print(s[i])
a
c
e
j
>>> for(index,char)in enumerate(s):
print(index)
print(char)
0
a
1
b
2
c
3
d
4
e
5
f
6
j
7
k
>>> ta=[1,3,5]
>>> tb=[9,5,3]
>>> tc=['a','b','c']
>>> for (a,b,c)in zip(ta,tb,tc):
print(a,b,c)
1 9 a
3 5 b
5 3 c
>>> zipped=zip(ta,tb)
>>> print(zipped)
<zip object at 0x02d93288>
>>> zipped=zip(ta,tb,tc)
>>> print(zipped)
<zip object at 0x02dff9b8>
>>> print(*zipped)
(1, 9, 'a') (3, 5, 'b') (5, 3, 'c')
>>> m,n,q=zip(*zipped)
traceback (most recent call last):
file "<pyshell#19>", line 1, in <module>
m,n,q=zip(*zipped)
valueerror: not enough values to unpack (expected 3, got 0)
>>> m,n=zip(*zipped)
traceback (most recent call last):
file "<pyshell#20>", line 1, in <module>
m,n=zip(*zipped)
valueerror: not enough values to unpack (expected 2, got 0)