#! 本次学习 函数、模块、数据结构
函数
1.定义
通过def关键字定义一个函数,如下:
def Show(name):
print (name),
2.参数
在python中的参数应用是很灵活的,可以指定默认的值,我们都知道在其他语言如c, c#指定默认值时我们必须从右向左方向指定(因为在执行的时候我们只能从左开始赋值),现在python解除了这个问题,它在调用时可以具体的指定某个参数的值,而不用担心参数的顺序, 如下:
def t(a, b=1, c=2):
print('a:',a,'b:',b,'c:',c)
t(a=1, c=5)
3.return语句
除非你提供你自己的return
语句,每个函数都在结尾暗含有return None
语句
Pass语句在python中代表一个空的语句块
模块
通过import语句导入模块,当import mymodule时,它会在sys.path下查找mymodule.py模块,找到模块后主块中的语句将会执行。#小注:sys是与解释器和它的环境有关的模块。
from … import 语句
类似于命名空间的using语句,也不大相同,因为我们在python中直接引入了模块下的变量,省去模块的名称,如下:
from sys import argv
…
print (argv)
模块的__name__
因为当一个模块被第一次输入的时候,这个模块的主块将被运行,因此我们可以通过如下判断是否为用户单独运行,如下:
if __name__ == '__main__':
print 'This program is being run by itself'
else:
print 'I am being imported from another module'
可以使用内建的dir
函数来列出模块定义的标识符,函数、变量
数据结构
列表、元组、字典
l 列表
定义格式: booklist = [‘JavaScript高级程序设计’, ‘python简明教程’, ‘asp.net mvc3.0学习指南’];
方法:如len获取列表长度,append添加一个元素到列表,sort对列表排序等,可以用help(list)查看详细方法。
l 元组
定义格式:fruit = (‘banana’, ‘orange’)
与列表区别:只读的,不能修改
应用:我们可以这样减少字符串的拼接操作,print '%s is %d years old' % (name, age)
l 字典
定义格式: dict = {key1:value, key2:value2}
遍历:for name, age in dic.items():
print name, age
l 序列
索引与切片
可以对列表和字符串索引取一个值或者切片取一个片段,代码如下:
colors = [‘red’, ‘green’, ‘yellow’, ‘blue’]
colors[0] #red
colors[1:3] #green, yellow, 指定的索引可以为负数,即从后向前计算
l 对象的参考
对象的参考说的很像其他语言中引用类型的指针,当把一个对象变量赋值给另一个对象变量时,其实它们指向了同一块内存,所以值是相同的。#注:任何切片操作都会制作一个对象的副本,这样对象变量重新指向了另一个快内存哦
l 字符串对象
跟其他语言一样,字符串对象中也有很多的操作方法,详细可见help(str)