python元组:
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
tup1=("b") #不加逗号,类型为整形 tup1=("a",) #加上逗号 类型为tuple
访问元组: 下标从0开始 tup=("哪个","这个","111","222") print("tup[0]:",tup[0])
元组中的元素值 是不可修改的 但可以对元组的元素进行组合 :
tup1="abc","drf" tup2="aaa","ccc" tup3=tup1+tup2
删除元组 : tup4="11","22","333" del tup4
元组运算符: (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print (x,) 1 2 3 迭代
元组索引 截取 :
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,
tup7=("1111111","222222","33") print(tup7[1:])
元组内置函数 :
len(tuple) 计算元组元素个数 tup8=("1111111","222222","33") print(len(tup8))
max(tuple) 返回元组中元素最大值 min(tuple) 返回元组中元素最小值。
tup9=("1","2","3","4","4.5") print(min(tup9))
tuple(seq) 将列表转换为元组 list1=["111","222","333"] tup10=tuple(list1)
python 字典:
字典是另一种可变容器模型,且可存储任意类型对象
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
键必须是唯一的,但值则不必
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
创建字典 : lin={'name':'baibai','age':20,'number':122212}
访问字典里的值 : print("lin['name']:",lin['name']) print("dict['Beth']",dict['Beth'])
修改字典 :
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
lin['age']=18 lin['address']="北京市"
print("lin['address']:",lin['address'] print(lin)
删除字典 :
能删单一的元素也能清空字典,清空只需一项操作 显示删除一个字典用del命令,如下实例:
lin2={'name':'baibai','age':20,'number':122212}
print(lin2)
del lin2['name'] #删除键 name
lin2.clear() #清空字典
del lin2 #删除字典
字典的特性 :
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
li={'Name':'aaaa','age':'20','Name':'bbbbbb'} print(li['Name'])
#2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
li2={(2222):'aaaa','age':20} print(li2[2222])
字典内置函数 方法 :
len(dict) 计算字典元素个数,即键的总数
ibo={'Name':'guyi','age':'20','address':'杭州'} print(len(libo))
str(dict) 输出字典,以可打印的字符串表示
libo={'Name':'guyi','age':'20','address':'杭州'} print(str(libo))
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型
libo={'Name':'guyi','age':'20','address':'杭州'} print(type(libo))
Python字典包含了以下内置方法 :
1 radiansdict.clear() 删除字典内所有元素
2 radiansdict.copy() 返回一个字典的浅复制
3 radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
5 key in dict 如果键在字典dict里返回true,否则返回false
6 radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
7 radiansdict.keys() 以列表返回一个字典所有的键
8 radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
10 radiansdict.values() 以列表返回字典中的所有值
11 pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12 popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。
pytom3函数:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()
自定义函数:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
函数调用 :
定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行
可更改(mutable)与不可更改(immutable)对象 :
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10
这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:
变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是 其内 部的一部分值被修改了
python 函数的参数传递:
不可变类型:
类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,
没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:
类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,
修改后fun外部的la也会受影响
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象
关键字参数:
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值
默认参数:
调用函数时,如果没有传递参数,则会使用默认参数
不定长参数:
加了星号(*)的变量名会存放所有未命名的变量参数。
如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量
匿名函数:
python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
lambda 只是一个表达式,函数体比 def 简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用 栈内存从而增加运行效率。
return语句 :
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None
global 和 nonlocal关键字 :如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字了