Python入门<四>
来源:互联网 发布:网络摄像机ip设置 编辑:程序博客网 时间:2024/04/30 05:04
字典
- 又称为(# 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;
字典的删除
d.pop(key) # 根据某个key值删除字典中的key-value值;
d.popitem() # 随机删除key-value值
d.clear() # 清空字典的所有内容,字典还存在
del(d[“key”]) # 删除指定的key值
del(d) # 删除字典d,d直接不存在
字典的修改
d[“key2”]=”value3”
字典信息的查看
d.get(“key”) # 如果key存在,返回value值;如果不存在,返回None;
d[“key”] # 如果key存在,返回value值;如果不存在,直接报错;
d.has_keys(“key”) # 如果key存在,返回True;如果不存在,返回False;
d.items()
d.keys()
d.values()
注意:如何遍历字典的所有key-value值:
for key,value in d.items(): print key, value
字典的复制
d.copy()
In [105]: d1 = d.copy()In [106]: id(d)Out[106]: 20314528In [107]: id(d1)Out[107]: 20338192In [108]: d2 = dIn [109]: id(d2)Out[109]: 20314528
函数(python的乐高积木一)
内置函数(BIF,built-in function)
min,max,sum,zip,abs,
int,float,str,list,tuple,bool,
In [56]: bool(1)Out[56]: TrueIn [57]: bool("")Out[57]: False
函数实质上是一个变量;函数名是一个指向函数对象的引用,完全可以把函数赋值给一个变量,相当于给这个函数起了个别名;
In [59]: a = abs # a变量指向abs函数In [60]: a(-1) # 可以通过a实现abs的功能;Out[60]: 1In [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 num1print type(maxSum(1,4,2))print maxSum(1,4,2)
函数的参数传值
必选参数:形参与实参的个数必须相同,否则直接报错;
默认参数:在定义函数时,给形参一个默认值;
可变参数:传入的参数个数是可变的,可以是1-n个,也可以是0个;一般实参中用*args来表示可变参数;
args接收的是一个元组(tuple);
关键字参数:允许传入0个或多个包含参数名的参数,传进来的参数自动封装为一个字典.
如果四种函数参数同时存在,参数定义的顺序必须是: 必选参数,默认参数,可变参数,关键字参数.
解包:
- 把一个序列元素依次传入带有可变参数的函数时,可通过fun(*l)来解包;
- 把一个字典元素依次传入带有关键字参数的函数时,可通过fun(**d)来解包;
变量的作用域
- 全局参数:在函数外定义的函数
- 局部参数:在函数内部定义的函数;
- global:声明局部变量为全局变量;
global namename = "westos"
练习
题目1:用户管理系统V2:
用户功能如下:
welcome to xxxx system
- 1.注册:若用户存在,直接报错”name 已经存在”,若用户不存在,将用户信息保存起来,显示”注册成功”;
- 2.登陆:若用户存在,判断密码是否正确,若用户不存在,报错”name 不存在”;
- 3.注销:若用户存在,删除用户信息;若不存在,报错报错”name 不存在;
- 4.退出:break
def login(username): if not d.has_key(username): print "no username" else : password = raw_input(">>password: ") if not password == d.get(username): print "wrong password" else : print "login in"def register(username): if d.has_key(username): print "%s had exist" %(username) else : password = raw_input(">>password: ") d[username] = password print "success!" print "user\tpasswd" print "%s\t%s" %(username,password)def logoff(username): if not d.has_key(username): print "%s is not exist" %(username) else: password = raw_input(">>password: ") if password == d.get(username): del(d[username]) print "user %s has deleted success" %(username) else: print "failed! wrong password!"d = {"root":"westos"}print"""1.deng lu2.zhu ce3.zhu xiao4.tui chu"""oper = raw_input(">>your operation: ")if oper == "4": print "exit" exit()else: if oper == "1": username = raw_input(">>username: ") login(username) elif oper == "2": username = raw_input(">>username: ") register(username) elif oper == "3": username = raw_input(">>username: ") logoff(username) else : print "wrong operation"
- Python爬虫入门四
- python入门(四)
- python入门(四)
- Python入门<四>
- python基础入门四
- Python入门(四)
- python[四]:python爬虫入门
- Python入门(四,高级)
- python 入门笔记(四)
- Python入门(四):函数
- Python基础入门(四)
- 利用Python数据分析:pandas入门(四)
- Python基础入门(四)- Print语句
- 代码Python入门(四、条件语句)
- Python入门(四)函数语法
- python从入门到入坟 四(吕万友)
- python的类和对象---python入门学习(四)
- Python基本语法[二],python入门到精通[四]
- code diary
- 6-5 使用函数验证哥德巴赫猜想
- 51Nod 1057 N的阶乘
- eclipse连接MySQL
- HDU 5875 Function 线段树 || (ST表 + 二分)
- Python入门<四>
- 657. Judge Route Circle (字符串)
- 6-6 使用函数输出一个整数的逆序数
- 多个线程按顺序输出
- C#WebService返回dynamic类型报错问题
- 数据结构与算法:链表
- 【Linux学习笔记】26:环境变量
- [js高手之路]设计模式系列课程-单例模式实现模态框
- Java反射机制(reflect)