《老鸟python 系列》视频上线了,全网稀缺资源,涵盖python人工智能教程,爬虫教程,web教程,数据分析教程以及界面库和服务器教程,以及各个方向的主流实用项目,手把手带你从零开始进阶高手之路!点击 链接 查看详情




循环

阅读:227569258    分享到

循环是计算机可以帮我们做重复的大量的计算操作,比如要计算 1 + 2 + 3,我们可以直接写表达式,计算从 1 加到 1000,如果你一个一个加的方式去写代码,老板就要气疯了,此时我们就需要用循环了。

Python 的循环有两种:一种是 for 循环,一种是 while 循环。

for 循环

for 循环的写法为 for x in Y,就是把 Y 里面的每个成员(dict 带入的是键)带入 x(无论该成员有多复杂), 一般 Y 是集合(比如 str,list,tuple,dict,set 以及自定义可以遍历的类型)。

complex_list = ["ruhua", "xingxing", "zhaoritian", (1,), [2, 3], {"name": u"hauhua", "age": 18}]
for item in complex_list:
    print(item)

用 for 循环直接遍历 dict 带入的是键,如果想带入值和成员,可以使用 dict 的 values 函数和 items 函数。

students_dict = {"name": "ruhua", "age": 18}
for student in students_dict:
    print(student)   # 带入的是键

for student in students_dict.keys():
    print(student)   # 带入的是键

for student in students_dict.values():
    print(student)   # 带入的是值

for student in students_dict.items():
    print(student)   # 带入的是成员

用 for 循环计算从 1 加到 1000 的总和,我们可以用 range 函数,range(1000) 实际上是生成一个 0 到 999 的 range 对象;我们也可以使用 range 函数生成某个范围的数放入 range 对象里面,比如 range(2, 5),注意是左闭右开。

for i in range(1000):
    print(i)

print(range(2, 5))

注意:在 Python 2 中多了一个 xrange 函数,xrange 函数的作用和 range 相同,只是 xrange 函数返回的是一个迭代器;而 Python 2 的 range 函数返回的则是一个 list 类型对象。

while 循环

while 循环,只要条件为真,就不断循环,直到条件为假时退出循环。

suppermen = ["如花", "星星", "赵日天"]
smlen = len(suppermen)
counts = 0

while counts < smlen:
    print(suppermen[counts])
    counts += 1

重要的事情再说一遍,while 判断的是真假,对于各种数据类型的假值有: 整数 0, 浮点数 0.0, 字符串 "", 动态数组 [], 元组 (), 集合 set([]), 字典 {} 和自定义类型空对象,对于所有类型的非假值即为真值。

continue 语句

continue 语句可以结束本次循环,然后回到 while 或者 for 判断语句位置进行判断,重新开始下一次循环。

# 打印出 1 到 10 之间的偶数
for item in range(1, 11):
    if item % 2 != 0:
        continue
    print(item)

continue 语句会破坏逻辑,容易导致程序易读性差,大多数循环并不需要用到 continue 语句,我们可以通过改写循环条件或者修改循环逻辑去掉 continue 语句。

# 打印出 1 到 10 之间的偶数
for item in range(1, 11):
    if item % 2 == 0:
        print(item)

break 语句

break 语句可以使循环运行到该处结束循环,跳到循环之外。我们看个例子:找出字符串中 是否有 "学" 字符串,有的话打印出下标并退出循环,否则不输出。

strone = u"Python 学习基地"
for index, item in enumerate(strone):  # enumerate 函数返回一个元组,该元组有两个成员:索引和成员。
    if item == u"学":
        print(index)
        break

break 语句虽然在程序中会经常用到,但 break 也会破坏逻辑,尽量少用。

本节重要知识点

for 循环和 while 循环的使用。

continue 语句和 break 语句的作用。

作业

著名公司(某东)找出姓名为 "星星" 的超人,找到后打印出姓名并退出循环,否则打印 "无此人"。

suppermen = ["jack马", "星星", "赵日天"]
# 请在下面完成代码

如果以上内容对您有帮助,请老板用微信扫一下赞赏码,赞赏后加微信号 birdpython 领取免费视频。


登录后评论

user_image
Seven
2021年11月16日 10:14 回复

作业:找出超人“星星”,并打印姓名,否则打印“查无此人”

supperman = ["Jack马","星星","赵日天"] for item in enumerate(supperman): if item == "星星": print(item) break else: print("查无此人")


user_image
芳草天
2020年8月7日 18:30 回复

suppermen = ["如花", "星星", "赵日天"]

for item in suppermen:

if item == "星星":

    print(item)

    break

elif all(item) != "星星":

    print("无此人")

结果: 无此人 星星


user_image
xrw
2020年8月6日 09:00 回复
suppermen = ["如花", "星", "赵日天"]

for item in suppermen:

if item == "星星":

print(item)

break

elif all(item) != "星星":

print("无此人")

user_image
15137884849
2020年8月6日 08:54 回复

··· suppermen = ["如花", "星", "赵日天"]

for item in suppermen:

if item == "星星":

print(item)

break

elif all(item) != "星星":

print("无此人") ···


user_image
研上~琑死
2020年8月6日 08:53 回复
suppermen = ["如花", "星星", "赵日天"]

for item in suppermen:

    if item == "星星":
        print(item)
        break
    else :
        print("无此人")

user_image
酩酊醉前尘
2020年8月6日 08:49 回复
suppermen = ["如花", "", "赵日天"]

for item in suppermen:
    if item == "星星":
        print(item)
        break
    elif all(item) != "星星":
        print("无此人")

user_image
酩酊醉前尘
2020年8月6日 08:42 回复

suppermen = ["如花", "星", "赵日天"]

for item in suppermen: if item == "星星": print(item) break elif all(item) != "星星": print("无此人") ...


user_image
酩酊醉前尘
2020年8月6日 08:41 回复

suppermen = ["如花", "星", "赵日天"]

for item in suppermen: if item == "星星": print(item) break elif all(item) != "星星": print("无此人")


user_image
王烽a
2020年8月6日 08:32 回复

suppermen = ["如花", "星", "赵日天"]

for item in suppermen: if item == "星星": print(item) break elif all(item) != "星星": print("无此人")


user_image
wly
2020年8月5日 11:12 回复
suppermen = ["如花", "星", "赵日天"]

for item in suppermen:
    if item == "星星":
        print(item)
        break
    elif all(item) != "星星":
        print("无此人")

user_image
聂玉翠
2020年8月4日 20:53 回复

suppermen = ["如花", "星星", "赵日天"]

for index, item in enumerate(suppermen):

if item == u"星星":

    print(index)

    print(item)

else:

    print("无此人")

结果

无此人

1

星星

无此人


user_image
yyj
2020年8月4日 13:04 回复

suppermen = ["如花", "星星", "赵日天"]

for item in suppermen:

if item == "星星":

   print(item)

else:

   print("无此人")

user_image
爱吃爆米花
2019年3月5日 06:08 回复

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句。

有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。


user_image
路人甲
2018年12月29日 21:52 回复

一直有点模糊,看了这个明白多了。感谢博主精彩演绎!