字典
-
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 -
字典的定义和简单使用
In [1]: dic ={1:4,'a':11}
In [2]: dic
Out[2]: {1: 4, 'a': 11}
In [3]: dic={1:4,'a':11,('a','b'):'dff'}
In [4]: dic
Out[4]: {1: 4, 'a': 11, ('a', 'b'): 'dff'}
字典的方法
In [5]: dic.
dic.clear dic.get dic.pop dic.update
dic.copy dic.items dic.popitem dic.values
dic.fromkeys dic.keys dic.setdefault
In [5]: dic.keys()
Out[5]: dict_keys([1, 'a', ('a', 'b')])
In [6]: dic.values()
Out[6]: dict_values([4, 11, 'dff'])
字典的get的使用,获取key的value
In [12]: dic
Out[12]: {1: 4, 'a': 11, ('a', 'b'): 'dff'}
In [13]: dic.get(1)
Out[13]: 4
In [14]: dic.get('a')
Out[14]: 11
In [15]: dic.get(('a','b'))
Out[15]: 'dff'
检查key是否在字典里
In [17]: 'a' in dic
Out[17]: True
把key和value生成列表
In [18]: dic.items()
Out[18]: dict_items([(1, 4), ('a', 11), (('a', 'b'), 'dff')])
拷贝一个字典
In [19]: dic1=dic.copy()
In [20]: dic1
Out[20]: {1: 4, 'a': 11, ('a', 'b'): 'dff'}
pop出指定的key
In [22]: dic.pop(1)
Out[22]: 4
In [23]: dic
Out[23]: {'a': 11, ('a', 'b'): 'dff'}
更新字典,更新不相同的部分
In [24]: dic.update(dic1)
也可以通过for循环遍历字典
In [25]: dic
Out[25]: {1: 4, 'a': 11, ('a', 'b'): 'dff'}
In [28]: for k in dic:
...: print(k)
...:
1
a
('a', 'b')
字典的练习
使用input接收用户输入的信息存放在dic中,并且打印出来。
#! /usr/bin/python
info={}
name=input("please input name:")
age=input("please input age:")
gender=input("please input (M/F):")
info['name']=name
info['age']=age
info['gender']=gender
print(info)
[root@localhost studypy]# python3 dict-1.py
please input name:wushan
please input age:26
please input (M/F):M
{'gender': 'M', 'age': '26', 'name': 'wushan'}
也可以使用items的方法进行打印
for i in info.items():
print(i)
输出结果
('gender', 'M')
('age', '26')
('name', 'shanwu')
for i,j in info.items():
print(i,j)
输出结果
gender M
name shanwu
age 26
流程控制
条件语句
if语句
- Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句……
else:
执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句
if实例
#!/usr/bin/python3
age = int(input("请输入你的年龄: "))
print("")
if age < 0:
print("你还没出生!")
elif age == 1:
print("恭喜你1岁了。")
elif age == 2:
print("恭喜你2碎了。")
elif age > 18:
print("恭喜你成年了")
if 嵌套
- 在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
if嵌套例子
# !/usr/bin/python3
num=int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print ("你输入的数字可以整除 2 和 3")
else:
print ("你输入的数字可以整除 2,但不能整除 3")
else:
if num%3==0:
print ("你输入的数字可以整除 3,但不能整除 2")
else:
print ("你输入的数字不能整除 2 和 3")
11月21日任务
- 练习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}
- 将该字典按照ASCII码的值排序
dict(sorted(dict1.items(),key=lambda d:d[1]))
- 有一个字母的ASCII错了,修改为正确的值,并重新排序
dict1['0']=111
dict(sorted(dict1.items(),key=lambda d:d[1]))
- 将该字典按照ASCII码的值排序
-
用最简洁的代码,自己生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)
dict2(zip(list(string.ascii_uppercase),list(range(65,91))))
-
将dict2与第一题排序后的dict1合并成一个dict3
dict3=dict(sorted(dict1.items(),key=lambda d:d[1])).copy()
dict3.update(dict2)
- 练习2
- 输入三个整数x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
#!/bin/python
a=int(input("please input int:"))
b=int(input("please input int:"))
c=int(input("please input int:"))
if a>b:
a,b=b,a
if b>c:
b,c=c,b
if a>b:
a,b=b,a
print(a,b,c)
- 企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
#!/bin/python
I=int(input("please input your money:"))
if I >= 100.000:
A = (I-100)*0.01+4.95
elif 100.000>I>60.000:
A = (I-60)*0.015+4.35
elif 60.000>=I>40.000:
A = (I-40)*0.03+3.75
elif 40.000>=I>20.000:
A = (I-20)*0.05+1.75
elif 20.000>=I>10.000:
A = (I-10)*0.075+1
elif I<=10:
A = I*0.1
print("money %s",A)