python之字典和函数参数

1.字典

1.1.字典的定义:

    在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,所以引入了字典

字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。映射其实就是一组key和value以及之间的映射函数,其特点是:key的唯一性、key与value的一对多的映射。

1.2.字典的方法

dict.clear() 删除字典中所有元素
dict.copy() 返回字典(浅复制)的一个副本
dict.fromkeysc(seq,val=None) 创建并返回一个新字典,以seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None)
dict.get(key,default=None) 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)
dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个 可工作的接口。
dict.items() 返回一个包含字典中(键, 值)对元组的列表
dict.keys() 返回一个包含字典中键的列表
dict.values() 返回一个包含字典中所有值的列表
dict.iter() 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
dict.pop(key[, default]) 和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。
dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。
dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。

练习:

购物车程序需求:
   1.启动程序后,让用户输入工资,然后打印商品列表;
   2.允许用户根据商品编号购买商品;
   3.用户选择商品后,检测余额是否足够,足够直接扣款,不够就提醒;
   4.可随意退出,退出时打印购买的商品和余额

python之字典和函数参数

创建一个用户登录系统:保存用户的用户名和密码
创建用户时,判断用户是否存在,若存在则报错
登录系统时,确保用户名存在于系统中,密码错误有三次机会,超过三次机会会报错
登陆时判断本次登陆与上次登陆的时间差,如果time<4h,显示你已经  
python之字典和函数参数

python之字典和函数参数

python之字典和函数参数


2.函数:

  2.1.函数的声明     Python中的函数以如下形式声明:
     def 函数名称([参数1,参数2,参数3......]):
         执行语句

  2.2 关键字return 和pass

     函数在执行过程中一旦遇到return,函数就执行完毕,并将结果返回。
     函数在执行过程中没有遇到return时,返回值None.
      如果要定义一个什么也不做的空函数时,可以用pass语句,作为一个占位符,让代码先运行起来

  2.3.函数的参数

 参数定义的顺序:必选参数 > 默认参数 > 可变参数 > 关键字参数


 函数的参数检查
 函数返回多个值,实质上是返回一个元组tuple,返回时元组可以省略括号,
 函数调用接收返回值时,按照位置赋值给变量,

默认参数,必选参数同时存在函数中存在时,一定要将必选参数放在默认参数前面;设置默认参数时,把变化大的参数放前面,变化小的参数放后面,变化小的参数可以设置为默认参数。
默认参数一般是是不可变数据类型

可变参数

定义函数时,形参可以为*args,使函数可以接收多个参数,接收的数据类型为元组;
如果想将一个列表或者元组传入函数,也可通过*li 或 *t,将参数传入函数里

*args,可变参数,args接收的是tuple

练习:返回一个可变参数的第一字符

python之字典和函数参数

关键字参数

**kwargs,关键字参数,kwargs接收的是字典

python之字典和函数参数

python之字典和函数参数