2018-11-17 11:48:33
1.8字典
- 字典是另一种可变容器模型,且可存储任意类型对象,如其他容器模型。
- 字典由键和对应值成对组成。字典也被称作关联数组或哈希表。
- 字典是Python中唯一的映射类型(哈希表)
- 字典对象是可变的,但是字典的键必须是不可变的,
- 字典是无序的
- 每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
- 键必须独一无二,但值则不必。
- 值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
- dict = {key:value,key1:value1,}
字典操作
- dict.keys() :获取dict内所有的值
- dict.has_key(key) :判断key是否在字典中
- dict.items() :将字典转换成一个列表
- dict.clear() :删除字典内所有元素
- dict.pop(k,[d]) :删除对应key的值,如果没有返回d
- dict.update(E,**F) :更新、合并
创建字典方式
- dict = {}
- dict = (a=10,b=20)
- dict([(‘a’,10),(‘b’,20)])
- dict.fromkeys(‘abc’,100)
1.9字典练习
- 读取键盘读取的输入,将输入信息存入字典并按规则打印出来
#!/usr/bin/python
dic = {}
name = raw_input('Please input name: ')
age = raw_input('Please input age: ')
gender = raw_input('Please input gender: ')
dic['name'] = name
dic['age'] = age
dic['gender'] = gender
#print dic
#print dic.items()
for k,v in dic.items():
print "%s is: %s" %(k,v)
2.0-2.1 流程控制if条件
- Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
- if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
- Python程序语言指定任何非0和非空(null)值为true,0 或者 null以及空的量(列表,元组等)为false。
if语法格式
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
if多条件判断举例
#!/usr/bin/python
num = 9
if num >= 0 and num <= 10: # 判断值是否在0~10之间
print 'hello'
>>> hello # 输出结果
num = 10
if num < 0 or num > 10: # 判断值是否在小于0或大于10
print 'hello'
else:
print 'undefine'
>>> undefine # 输出结果
num = 8
# 判断值是否在0~5或者10~15之间
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
>>> undefine # 输出结果
2.2-2.3 流程控制for循环
- 循环语句允许我们执行一个语句或语句组多次
列表重写
for i in [j for j in range(1,10) if j %2 == 0 ]:
print j,
其中后面的j必须统一,不然无法赋值
range与xrange
- 两种作用相同
range直接返回一个列表在内存中
xrange生成的是一个xrange对象,需要遍历取值,占用内存资源少
迭代遍历
- 将序列中各个元素取出来
直接从序列取值
通过索引取值
- 举例99乘法口诀
#!/usr/bin/python
for i in xrange(1,10):
for j in xrange(1,i+1):
print "%sX%s=%s" %(j,i,j*i),
print
2.4 循环退出
- break 退出整个循环
- continue 退出当前循环
- pass 占位符什么都不做
- sys.exit() 退出程序
#!/usr/bin/python
import sys
for i in xrange(10):
if i == 5:
continue
elif i == 6:
pass
elif i == 7:
break
sys.exit()
print 'nothing to do'
猜数字游戏
- 小于20的随机数,猜5次
#!/usr/bin/python
#coding:utf8
import random
i = 0
while i<6:
num = raw_input('Please input a num: ')
num = int(num)
random_num = random.randint(0,20)
if num == random_num:
print "%s等于%s,恭喜您!" %(num,random_num)
break
elif num > random_num:
print "您输入的数为%s,猜大了,请继续加油!" %num
else:
print "您输入的数为%s,猜小了,请继续加油!" %num
i +=1
if i == 6:
print "您输了!"
#!/usr/bin/python
dic = {}
name = raw_input('Please input name: ')
age = raw_input('Please input age: ')
gender = raw_input('Please input gender: ')
dic['name'] = name
dic['age'] = age
dic['gender'] = gender
#print dic
#print dic.items()
for k,v in dic.items():
print "%s is: %s" %(k,v)
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
if多条件判断举例
#!/usr/bin/python
num = 9
if num >= 0 and num <= 10: # 判断值是否在0~10之间
print 'hello'
>>> hello # 输出结果
num = 10
if num < 0 or num > 10: # 判断值是否在小于0或大于10
print 'hello'
else:
print 'undefine'
>>> undefine # 输出结果
num = 8
# 判断值是否在0~5或者10~15之间
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
>>> undefine # 输出结果
2.2-2.3 流程控制for循环
- 循环语句允许我们执行一个语句或语句组多次
列表重写
for i in [j for j in range(1,10) if j %2 == 0 ]:
print j,
其中后面的j必须统一,不然无法赋值
range与xrange
- 两种作用相同
range直接返回一个列表在内存中
xrange生成的是一个xrange对象,需要遍历取值,占用内存资源少
迭代遍历
- 将序列中各个元素取出来
直接从序列取值
通过索引取值
- 举例99乘法口诀
#!/usr/bin/python
for i in xrange(1,10):
for j in xrange(1,i+1):
print "%sX%s=%s" %(j,i,j*i),
print
2.4 循环退出
- break 退出整个循环
- continue 退出当前循环
- pass 占位符什么都不做
- sys.exit() 退出程序
#!/usr/bin/python
import sys
for i in xrange(10):
if i == 5:
continue
elif i == 6:
pass
elif i == 7:
break
sys.exit()
print 'nothing to do'
猜数字游戏
- 小于20的随机数,猜5次
#!/usr/bin/python
#coding:utf8
import random
i = 0
while i<6:
num = raw_input('Please input a num: ')
num = int(num)
random_num = random.randint(0,20)
if num == random_num:
print "%s等于%s,恭喜您!" %(num,random_num)
break
elif num > random_num:
print "您输入的数为%s,猜大了,请继续加油!" %num
else:
print "您输入的数为%s,猜小了,请继续加油!" %num
i +=1
if i == 6:
print "您输了!"
#!/usr/bin/python
num = 9
if num >= 0 and num <= 10: # 判断值是否在0~10之间
print 'hello'
>>> hello # 输出结果
num = 10
if num < 0 or num > 10: # 判断值是否在小于0或大于10
print 'hello'
else:
print 'undefine'
>>> undefine # 输出结果
num = 8
# 判断值是否在0~5或者10~15之间
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
>>> undefine # 输出结果
for i in [j for j in range(1,10) if j %2 == 0 ]:
print j,
其中后面的j必须统一,不然无法赋值
range直接返回一个列表在内存中
xrange生成的是一个xrange对象,需要遍历取值,占用内存资源少
直接从序列取值
通过索引取值
#!/usr/bin/python
for i in xrange(1,10):
for j in xrange(1,i+1):
print "%sX%s=%s" %(j,i,j*i),
print
#!/usr/bin/python
import sys
for i in xrange(10):
if i == 5:
continue
elif i == 6:
pass
elif i == 7:
break
sys.exit()
print 'nothing to do'
- 小于20的随机数,猜5次
#!/usr/bin/python
#coding:utf8
import random
i = 0
while i<6:
num = raw_input('Please input a num: ')
num = int(num)
random_num = random.randint(0,20)
if num == random_num:
print "%s等于%s,恭喜您!" %(num,random_num)
break
elif num > random_num:
print "您输入的数为%s,猜大了,请继续加油!" %num
else:
print "您输入的数为%s,猜小了,请继续加油!" %num
i +=1
if i == 6:
print "您输了!"