# 字典
- 又称为(# hash,映射,关联数组)
- "字" ---> 先找首字母,查到这个字的解释所在的页数;
## 字典的定义:
d = {}
d = {"key1":"value1"}
d = {"key1":"value1","key2":"value3"}
d = {
"172.25.254.1":
{
"user":"root",
"password":"westos",
"command":"hostname"
},
"172.25.254.2":
{
"user":"westos",
"password":"westos1",
"command":"hostname"
}
}# 支持异构,嵌套
dict(zip(user,passwd))
"".fromkeys(["a","b"],"1000")
## 字典的特性
- 字典是可变数据类型;可使用len(d)内置函数,计算字典的长度;
- 字典是无序的,与序列(str,list,tuple)不同的是,不支持索引,切片,连接与重复。只能通过key值获取对应的value值;
- 字典支持异构,支持嵌套;
## 字典的增加
d.update()
d.setdefault(key[,value])
# 如果key存在,不更改;如果key不存在,添加key-value到字典中;
# 如果key值有,并不存在d字典中,默认value值为None;
函数(python的乐高积木一)
## 内置函数(BIF,built-in function)
min,max,sum,zip,abs,
int,float,str,list,tuple,bool,
```
In [56]: bool(1)
Out[56]: True
In [57]: bool("")
Out[57]: False
```
函数实质上是一个变量;函数名是一个指向函数对象的引用,完全可以把函数赋值给一个变量,相当于给这个函数起了个别名;
```
In [59]: a = abs# a变量指向abs函数
In [60]: a(-1)# 可以通过a实现abs的功能;
Out[60]: 1
In [61]: abs(-1)
Out[61]: 1
```
## 定义与调用函数
def 函数名([形式参数]):
函数体 # 函数要执行的程序
return 返回值# 如果没有return返回,默认返回值为None;
函数名([实参])
注意:有返回值 的函数,必须print fun(),可以打印出返回值;
## 函数的返回值
- 在函数中,一旦遇到return关键字,函数就执行结束;
- 函数返回值只能返回一个,如果想间接返回多个值,返回值实际是一个元组;
```
def maxSum(num1,num2,num3):
print num2
return max(num1,num2,num3),sum([num1,num2,num3])
num1 += 2
print num1
print type(maxSum(1,4,2))
print maxSum(1,4,2)
```
## 函数的参数传值
### 必选参数:形参与实参的个数必须相同,否则直接报错;
### 默认参数:在定义函数时,给形参一个默认值;
### 可变参数:传入的参数个数是可变的,可以是1-n个,也可以是0个;一般实参中用*args来表示可变参数;
args接收的是一个元组(tuple);
### 关键字参数:允许传入0个或多个包含参数名的参数,传进来的参数自动封装为一个字典.
如果四种函数参数同时存在,参数定义的顺序必须是: 必选参数,默认参数,可变参数,关键字参数.
解包:
- 把一个序列元素依次传入带有可变参数的函数时,可通过fun(*l)来解包;
- 把一个字典元素依次传入带有关键字参数的函数时,可通过fun(**d)来解包;
## 变量的作用域
- 全局参数:在函数外定义的函数
- 局部参数:在函数内部定义的函数;
- global:声明局部变量为全局变量;
```
global name
name = "westos"
```