打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第 5 关、消灭该死的重复(上)

1、for ... in ... 循环语句

for 循环的格式如下:

下面用例子来讲解一下:

1-1、遍历列表

自动检测
a=['七七','卡西','延君']
for i in a:
print(i)

注意:i 只是一个变量名,可以叫为 a,b,不一定为 i,i 只是存储遍历列表出来的变量而已。

1-2、遍历字典

1-2-1、遍历字典的键和值

自动检测
d={1:'七七',2:'卡西',3:'延君'}
for a,b in d.items():
print('字典的键为:' str(a) '\字典的值为:' str(b))
# 结果为:
字典的键为:1、字典的值为:七七
字典的键为:2、字典的值为:卡西
字典的键为:3、字典的值为:延君

注意:这里的 items() 是一个方法,我们用 for 遍历字典后,将字典的键、值分别用变量 a、b 存储。

1-2-2、遍历字典的键(方法一)

自动检测
d={1:'七七',2:'卡西',3:'延君'}
for i in d:
print(i)
# 结果为 1,2,3

1-2-3、遍历字典的键(方法二)

自动检测
d={1:'七七',2:'卡西',3:'延君'}
for i in d.keys():
print(i)
# 结果为 1,2,3 

注意:这里的 keys() 是一个方法,我们用 for 遍历字典后,将字典的键用变量 i 存储。

1-2-4、遍历字典的值

自动检测
d={1:'七七',2:'卡西',3:'延君'}
for i in d.values():
print(i)
# 结果为七七、卡西、延君

注意:这里的 values() 是一个方法,我们用 for 遍历字典后,将字典的值用变量 i 存储。

1-3、range() 函数

1-3-1、不带间隔数

作用:生成了一个【取头不取尾】的整数序列

我们用 for 和 range() 函数结合起来的例子看 range() 的效果:

自动检测
for i in range(1,3):
print(i)
# 结果为 1、2

有点类似我们的列表(左取右不取),range() 函数里面的为“取头不取尾”。

1-3-2、带间隔数

自动检测
for i in range(1,10,3):
print(i)
# 结果为 1、4、7

解析:这里的代码是从1数到9(取头不取尾),取值的间隔为3

2、while 循环语句

2-1、常见使用

自动检测
a=1
while a<5:
print(a*5)
a=a 1

解析:我们这里定义了一个 a 并赋值 1,while 循环的判断语句是 a<5,当符合条件时,执行循环内的语句。

注意:

  • 我们循环内需要让 a 的值改变,不然 a 一直等于 1,语句将会进入死循环;
  • print(a*5) 只是打印了 a 乘以 5 的值,但实际上没有改变 a 的值。

2-2、while ... else ... 语句

自动检测
a=input('七七怎样?')
while a == '七七真可爱':
print('输入正确~')
else:
print('输入错误~')

解析:如果我们输入的内容不等于 “七七真可爱” ,则打印 “输入错误~” ,否则打印 “输入正确~”。

2-3、避免进入无限循环

以下为危险操作,请勿模仿!!!

自动检测
while True:
print('已经进入死循环')
  • 解析:由于第 1 行的 while True 代码是一定会执行,也就是while 1,所以一直打印出‘已经进入死循环’这句话。
  • 如何避免:
  • 代码区使用 exit() ,在运行终端输入该代码,强行结束运行
  • 终端区按 ctrl c,强行结束运行
  • 代码区使用 break 语句(如下),当打印完‘已经进入死循环’这语句后,会直接跳出循环
  • 正确操作:
自动检测
while True:
print('已经进入死循环')
break

3、习题

3-1、while 循环(01)

自动检测
a=1
while '卡西真可爱':
a=0
a=a*2
print(a)
a =1
if a > 10:
break
else:
continue
终端结果会有几行?
A.2行 B.3行 C.4行 D.死循环

答案:D

解析:

  • 非空字符串,布尔值为True,所以开始循环。
  • 若无第三行
  • 第一次循环,a=a*2,结果使a的值更新为2并打印出来,再加1为3,小于10,else语句生效,返回循环;
  • 第二次循环,a=a*2,结果使a的值更新为6并打印出来,再加1为7,小于10,else语句生效,返回循环;
  • 第三次循环,a=a*2,结果使a的值更新为14并打印出来,再加1为15,大于10,if语句生效,跳出循环。
  • 但是第三行有一句a=0,每次循环都会重新将a赋值为0,所以if条件无法执行,会陷入死循环

3-2、while 循环(02)

题目:小明报名了python课程,加加说可以根据自己喜欢的符号来选择助教,请编写一个程序,让小明可以根据自己选择的符号知道自己的助教是谁~如果没有这个符号,要输出‘没有这个符号的助教哦’

自动检测
teachers = {
'加加':['草莓','樱桃','西瓜','熊猫','菠萝'],
'卡西':['星星','树叶','向日葵'],
'延君':['小丑','猴子','小鬼'],
}

答案:

Python
teachers = {
'加加':['草莓','樱桃','西瓜','熊猫','菠萝'],
'卡西':['星星','树叶','向日葵'],
'延君':['小丑','猴子','小鬼'],
}
x=0 #创建一个标记用于识别是否找到符号
a=True
while a:
symbol_check = input('你想查询哪个符号?')

for teacher in teachers:
symbol = teachers[teacher]
if symbol_check in symbol:
print( '小明的助教是' teacher)
x = 1 #找到符号后更改标记
if x == 1:
a=False #找到助教后终止查找
elif x == 0: #找不到助教x=0赋值不改变,不改变a值,继续循环
print('没有这个符号的助教哦')

3-3、for 循环

题目:如果想让下面的代码输入不在列表明星时,提示:“该演员无法查询”,并开始下一次查询,直到输入列表内明星,并正确打印输出相对应的电影。

自动检测
movies = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}
actor = input('你想查询哪个演员?')
for movie in movies:
    actors = movies[movie]
    if actor in actors:
        print(actor '出演了电影' movie)

答案:

自动检测
from sys import exit
v = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅']
}
while True:
t = input('你想查询哪个演员?')
for i in v:#i指的是键名,电影名字
if t in v[i]: #v[i]是键值,所有的演员名字
print(t '出演了电影' i)
exit()
print('查无此人')

3-4、pop() 函数

题目:列表 Marvel=['钢铁侠','美国队长','奇异博士','蝙蝠侠','蜘蛛侠']中 除了蝙蝠侠都是漫威英雄,现在请你把DC英雄蝙蝠侠从 列表Marvel中删除,并放到列表DC中去(提示:用pop()函数和append()函数)。

答案:

自动检测
Marvel=['钢铁侠','美国队长','奇异博士','蝙蝠侠','蜘蛛侠']
DC=[]
a=Marvel.pop(3)
DC.append(a)
print(Marvel)
print(DC)

结果:

解析:pop()函数可以删除列表中的元素,并返回这个元素的值。append()函数可以给列表添加元素。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
第 4 关、列表和字典
[一定要掌握的基础语法]测试题答案及解析
秒杀市面 90% 的 Python 入门教程 (上)
山脚问题集锦
基础语法常见问题
Python for循环及用法详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服