Python基础笔记-------------七

一、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])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥哥的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值