一、for循环
语法
for 变量 in 迭代序列(即列表,元组,字典,集合或字符串):
循环体
-
注意: for循环的循环体会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
-
例子
#for 循环访问列表
list = ['woodman', 'Alan', 'Bobo']
for name in list:
print(name)
输出结果:
woodman
Alan
Bobo
二、for……else……格式
语法
for <变量> in <循环序列>:
【循环体】
else:
【else的语句块】
注意
for循环正常结束后,执行else语句块
示例
list = ['woodman', 'Alan', 'Bobo']
for name in list:
print(name)
else:
print("循环后执行")
输出结果:
woodman
Alan
Bobo
循环后执行
三、range函数
range(start,stop,step)
参数说明
• ·start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
• stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
• step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
• range(start, stop[, step]) 从 start 开始到 stop 结束(不包含 stop)返回一个整数序列的迭代对象, step 为他的步长
示例
for i in range(1,5,2):
print(i)
输出结果
1
3
四、元组
元组简介
• 元组表现形式tuple
• 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
• 使用()创建元素
• 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
• 元组解包指将元组当中的每一个元素都赋值给一个变量
tuple1 = ()
tuple2 = ,1
tuple3 =(1,)
元组的拆包
x = (1,2,3,4,5)
>>>a, *b = x # x有5个元素,左边变量只有两个,多余的都被带*的b吸收了
>>>a, b
>>>(1, [2, 3, 4, 5])
>>>a, *b, c = x #由于带*的b的存在,b“吸收”了多余元素
>>>>a,b,c
>>>(1, [2, 3, 4], 5)
>>>*a, b, c = x #带*的a“吸收”多余元素
>>>a,b,c
>>>([1, 2, 3], 4, 5)
>>>a,b,c = x #没有带*的,x的5个元素无法匹配3个变量,产生错误
"""
此处会报出一个错误:
ValueError Traceback (most recent call last)
<ipython-input-153-58e3b82a91cc> in <module>
----> 1 a,b,c = x
ValueError: too many values to unpack (expected 3)
"""
五、字典
字典的基本介绍
• 字典属于一种新的数据结构称为映射(mapping)
• 字典的作用和列表类似,都是用来存储对象的容器
• 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
• 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
• 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
• 字典我们也称之为键值对(key-value)结构
• 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
• 创建一个有数据的字典 语法 {key:value}
• 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…)
• 字典的键是不能重复的,如果出现重复的后面的会替换前面的
字典的使用
• dict()函数来创建字典
y = dict()
print(y)
输出结果
{}
• get(key[,default]) 根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
示例一:
dict = {
"name":"tianjinlong","age":17
}
print(dict.get('name'))
输出结果
tianjinlong
示例二:
dict = {
"name": "tianjinlong", "age": 17
}
print(dict.get('name'))
print(dict.get("t", "结果不存在"))
输出结果
tianjinlong
结果不存在
• update() 将其他字典的key-value添加到当前的字典当中
示例:
dict = {
"name": "tianjinlong", "age": 17
}
dict1 = {"t":"b0lam"}
dict.update(dict1)
输出结果
{'name': 'tianjinlong', 'age': 17, 't': 'b0lam'}
• del 删除字典中的key-value
示例:
dict = {
"name": "tianjinlong", "age": 17
}
del dict["name"]
print(dict)
输出结果
{'age': 17}
• popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为返回值返回
示例:
dict = {
"name": "tianjinlong", "age": 17
}
y = dict.popitem()
print(dict,y)
输出结果
{'name': 'tianjinlong'} ('age', 17)
• pop(key[,default]) 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
示例一:
dict = {
"name": "tianjinlong", "age": 17
}
dict.pop('name')
print(dict)
输出结果
{'age': 17}
示例二:
dict = {
"name": "tianjinlong", "age": 17
}
y = dict.pop('t','结果不存在')
print(dict)
print(y)
输出结果
{'name': 'tianjinlong', 'age': 17}
结果不存在
• dict. setdefault(key,value)向字典中添加key-value,如果这个key存在,则不会做任何改变,如果不存在,直接添加进去
dict = {
“name”: “tianjinlong”, “age”: 17
}
dict.setdefault(“tian”,“jin”)
print(dict)
• copye()
copy() 方法用来对字典进行潜复制
注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进行复制的
dict = {
"name": "tianjinlong", "age": 17
}
e = dict.copy()
print(e)
输出结果
{'name': 'tianjinlong', 'age': 17}
作业
# 给用户9次机会 猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对
i = 1
m = list(range(1,11))
while i<10:
i += 1
input_conten = int(input('请输入1~10的数字:'))
if input_conten > 10:
print('你输入的数字不在范围内,请重新输入')
continue
m.remove(input_conten)
print('猜错了')
print(m[0])