Python基础学习<四>
2017-09-02 20:03
393 查看
这里有一个关于字典和函数的一个脑图:
“字” —> 先找首字母,查到这个字的解释所在的页数;
字典是无序的,与序列(str,list,tuple)不同的是,不支持索引,切片,连接与重复。只能通过key值获取对应的value值;
字典支持异构,支持嵌套;
d.setdefault(key[,value])
如果key存在,不更改;如果key不存在,添加key-value到字典中;
如果key值有,并不存在d字典中,默认value值为None;
d.popitem() # 随机删除key-value值
d.clear() # 清空字典的所有内容,字典还存在
del(d[“key”]) # 删除指定的key值
del(d) # 删除字典d,d直接不存在
d[“key”] # 如果key存在,返回value值;如果不存在,直接报错;
d.has_keys(“key”) # 如果key存在,返回True;如果不存在,返回False;
d.items()
d.keys()
d.values()
注意:如何遍历字典的所有key-value值:
int,float,str,list,tuple,bool,
函数实质上是一个变量;函数名是一个指向函数对象的引用,完全可以把函数赋值给一个变量,相当于给这个函数起了个别名;
函数体 # 函数要执行的程序
return 返回值 # 如果没有return返回,默认返回值为None;
函数名([实参])
注意:有返回值 的函数,必须print fun(),可以打印出返回值;
函数返回值只能返回一个,如果想间接返回多个值,返回值实际是一个元组;
默认参数:在定义函数时,给形参一个默认值;
-可变参数:传入的参数个数是可变的,可以是1-n个,也可以是0个;一般实参中用*args来表示可变参数;args接收的是一个元组(tuple);
关键字参数:允许传入0个或多个包含参数名的参数,传进来的参数自动封装为一个字典.
如果四种函数参数同时存在,参数定义的顺序必须是: 必选参数,默认参数,可变参数,关键字参数.
解包:
- 把一个序列元素依次传入带有可变参数的函数时,可通过fun(*l)来解包;
- 把一个字典元素依次传入带有关键字参数的函数时,可通过fun(**d)来解包;
局部参数:在函数内部定义的函数;
global:声明局部变量为全局变量;
用户功能如下:
welcome to xxxx system
1.注册:若用户存在,直接报错”name 已经存在”,若用户不存在,将用户信息保存起来,显示”注册成功”;
2.登陆:若用户存在,判断密码是否正确,若用户不存在,报错”name 不存在”;
3.注销:若用户存在,删除用户信息;若不存在,报错报错”name 不存在;
4.退出:break
题目2:用户管理系统V3:
d = {“name”:[]}
初始化有一个系统管理员:
用户分为两种:
用户登录:
登陆
退出
判断用户类型:
系统管理员功能:
1.添加用户
2.查看所有用户信息
3.退出:
普通用户功能:
1.查看个人信息
2.注销
3.退出
要求:
根据用户身份,进入不同的管理界面;
系统初始化一个系统管理员帐号;
只有系统管理员可以添加用户和查看用户所有信息;
普通用户只能查看个人信息,和注销帐号;
字典
又称为(# 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]: 20314528 In [107]: id(d1) Out[107]: 20338192 In [108]: d2 = d In [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]: 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"
练习
题目1:用户管理系统V2:用户功能如下:
welcome to xxxx system
1.注册:若用户存在,直接报错”name 已经存在”,若用户不存在,将用户信息保存起来,显示”注册成功”;
2.登陆:若用户存在,判断密码是否正确,若用户不存在,报错”name 不存在”;
3.注销:若用户存在,删除用户信息;若不存在,报错报错”name 不存在;
4.退出:break
#!/usr/bin/env python #coding:utf-8 ''' file:usermanger.py date:9/2/17 11:14 AM author:feitian desc: ''' d = {"name":"passwd","lala":"123"} def register(): user = raw_input("User:") if d.has_key(user): print "%s the user b04a has alread exit" else: passwd = raw_input("Passwd:") d[user] = passwd print "%s option succeed !" %(user) def info(): print "user\tpasswd" for user,passwd in d.items(): print "%s\t%s" %(user,passwd) def log(): print "please input your's username and passwd" username = raw_input("please input your's username") passward = raw_input("please input your's passwd ") for user,passwd in d.items(): if username == user and passward == passwd: print "option successed" else : print "please check your username and passwd" def dele(): print "please input your will del username " username = raw_input("please input your's username") passward = raw_input("please input your's passwd ") for user,passwd in d.items(): if username == user and passward == passwd: user else : print "please check your username and passwd" def leave (): exit(0) while True : print """ welcome to user maneger system (L):user log system (A):add user (V):display user's message (Q):tui chu xi tong (D):delete a user message """ op = raw_input("please input your option") option = {"L":log, "A":register, "V":info, "D":dele, "Q":leave } if option.has_key(op): f = option[op] f()
题目2:用户管理系统V3:
d = {“name”:[]}
初始化有一个系统管理员:
用户分为两种:
用户登录:
登陆
退出
判断用户类型:
系统管理员功能:
1.添加用户
2.查看所有用户信息
3.退出:
普通用户功能:
1.查看个人信息
2.注销
3.退出
要求:
根据用户身份,进入不同的管理界面;
系统初始化一个系统管理员帐号;
只有系统管理员可以添加用户和查看用户所有信息;
普通用户只能查看个人信息,和注销帐号;
相关文章推荐
- <<Python基础教程>>学习笔记 | 第07章 | 更加抽象
- <<Python基础教程>>学习笔记 | 第04章 | 字典
- Python基础学习<五>
- python基础学习笔记<面向对象编程>
- Python基础学习<一>
- <Python基础教程>第三章_学习心得
- Python基础学习<八>
- <<Python基础教程>>学习笔记 | 第14章 | 网络编程
- <<Python基础课程>>学习笔记 | 文章13章 | 数据库支持
- python基础学习笔记<数据库>
- <<Python基础教程>>学习笔记 | 第09章 | 魔法方法、属性和迭代器
- <<Python基础教程>>学习笔记 | 第11章 | 文件和素材
- <<Python基础教程>>学习笔记 | 第10章 | 充电时刻
- <<Python基础教程>>学习笔记 | 第14章 | 网络编程
- <Test-Driven Development with Python>学习笔记 第一部分 测试驱动开发基础
- Python基础学习<三>
- <<Python基础教程>>学习笔记 | 第10章 | 充电时刻
- python基础学习笔记<函数式编程与模块>
- <<Python基础教程>>学习笔记 | 第12章 | 图形用户界面
- JavaScript基础学习<四>基本数据和引用类型