博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.8 字典 1.9 字典练习 2.0/2.1 流程控制-if条件判断
阅读量:6586 次
发布时间:2019-06-24

本文共 2706 字,大约阅读时间需要 9 分钟。

hot3.png

字典

字典是python中的唯一的映射类型(哈希表)

字典对象是可变的,但是字典的键必须使用不可变对象,一个字典中可以使用不同类型的键值。

字典是无序的 字典的方法: - keys() //以list的形式返回所有key - values() - items() - get() //返回key对应的value - pop() //返回k对应value,并删除这组数据 - update() //D.update(E,**F) 将E,**F加入D中

创建字典

dic = {}dic = dict()help(dict)dict((['a',1],['b',2]))dict(a=1, b=2)字典中key可以是数字,字符串,元组,但不能是list,value可为listfromkeys(),字典元素有相同的值,默认为None。    ddict = {}.fromkeys((‘x’,’y’), 100)dict(zip([list1],[list2]))会生成以list1为key,list2为value的字典dict(x=10,y=10)	{'x':10,'y':10}

访问字典

- 直接使用key访问:key不存在会报错,可以使用has_key()或者in和not in判断。- 循环遍历:for k in dic1 :	print k,dic1[k]    例:for k in dic.keys():for k, v in dic.items():	print ('{0}:{1}').format(k,v)

流程控制

if

if expression:	statements(s)if i == 1 and b == 2 :	print ("True")	if i == 1 or b == 2 :print ("True")		if i == 1 :	passelif i == 2 :	passelse :	pass

逻辑值(bool)包含了两个值 True :表示非空的量,所有非零数 False :表示0,None,空的量

练习

练习1:

  1. 现有一个字典dict1 保存的是小写字母a-z对应的ASCII码 dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 96, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122} 1) 将该字典按照ASCII码的值排序 2) 有一个字母的ASCII错了,修改为正确的值,并重新排序
  2. 用最简洁的代码,自己生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)
  3. 将dict2与第一题排序后的dict1合并成一个dict3

1、

print sorted(dict1.iteritems(), key = lambda d: d[1], reverse = False)for k in dict1 :	if not ord(k) == dict1[k] :		print k		dict1.update({k:ord(k)})print sorted(dict1.iteritems(), key = lambda d: d[1], reverse = False)

2、

list1=[]list2=[]dic2 = {}for i in range(ord("A"),ord("Z")+1) :	list1.append(chr(i))for i in range(ord("A"),ord("Z")+1) :	list2.append(i)	dic2 = dict(zip(list1,list2))print (dic2)

3、 dict3 = dict1 dict3.update(dict2)

练习2

  1. 输入三个整数x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
  2. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

1、

x = raw_input()y = raw_input()z = raw_input()if x > y :	n = y	y = x	x = n	if y > z :		n = z		z = y		y = n		if x > y :			n = y			y = x			x = nelse :	if y > z :		n = z		z = y		y = nprint (x,y,z)

2、

I = input("请输入利润,单位万元")print("奖金总数:")if I < 10 :	I = I * 0.1	print(I)elif I < 20 :	I = (I -10 )*0.075 + 10*0.1	print(I)elif I < 40 :	I = (I - 20)*0.05 + 10*0.1+10+0.075	print(I)elif I < 60 :	I = (I - 40)*0.03 + 1 + 0.75 + 1	print(I)elif I < 100 :	I = (I - 60)*0.015 + 1 +0.75 + 1 +0.6	print(I)else :	I = (i - 100 )* 0.01 + 1+0.75+1+0.6+0.6	print(I)

转载于:https://my.oschina.net/u/4030294/blog/2892735

你可能感兴趣的文章
oracle日常简单数据备份与还原
查看>>
黑马程序员__反射总结
查看>>
Quartz原理
查看>>
控制namenode检查点发生的频率
查看>>
2、递归遍历文件夹下每一个文件
查看>>
解决activity加上Theme.Translucent.NoTitleBar 页面跳转显示桌面
查看>>
php类库
查看>>
Linux线程
查看>>
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>
Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据
查看>>
MySQL数据库的优化(二)
查看>>
Deepin OS和WIN7双启动 花屏原因一例
查看>>
给大家推荐一个免费下载名称读写ntfs软件的地方
查看>>
突然停电或死机导致没保存的文件怎么找回
查看>>
kudu
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
maven 添加阿里云maven镜像
查看>>
mac上安装consolas字体
查看>>
对向量、矩阵求导
查看>>
各版本linux下载地址大全
查看>>