拓冰建站拓冰建站
首页 / 资讯中心 / 正文

第5章 Python 循环 for / while

第5章 Python 循环 for / while程序里最机械的活儿——“重复做 N 次”——交给循环。Python 的for不是像 Java 那样写for (int i0; in; i)而是遍历一个序列for 变量 in 可迭代对象。配合range()、列表、字典写起来非常自然。一、for range最常用的数数循环print(1到5:,end )foriinrange(1,6):print(i,end )print()print(1到10步长2:,end )foriinrange(1,11,2):print(i,end )输出1到5: 1 2 3 4 5 1到10步长2: 1 3 5 7 9range(起始, 结束, 步长)含头不含尾range(1, 6)生成 1~5。只要起始就能range(5) 0~4。二、遍历列表 enumeratenames[小明,小红,小刚]forninnames:print(f你好,{n})foridx,ninenumerate(names,start1):# 既拿下标又拿值print(f第{idx}位:{n})输出你好, 小明 你好, 小红 你好, 小刚 第1位: 小明 第2位: 小红 第3位: 小刚Java 里按下标遍历还要写for (int i0;...)Python 直接for n in names遍历元素想带下标用enumerate——一个函数全搞定。三、求和与统计total0foriinrange(1,101):totaliprint(12...100 ,total)输出12...100 5050这种简单求和其实有内置函数sum(range(1,101))但用循环写一次能看清每一步发生了什么。四、break 与 continueprint(找 1~20 第一个能被7整除的数:)foriinrange(1,21):ifi%70:print(f找到了:{i})break# 结束整个循环print(1~10 跳过偶数:)foriinrange(1,11):ifi%20:continue# 跳过本次进入下一次print(i,end )输出找 1~20 第一个能被7整除的数: 找到了: 7 1~10 跳过偶数: 1 3 5 7 9和 Java 一样break跳出整个循环continue跳过本次。区别是 Python 里没有do-while和带标签的 break写法更少。五、while 循环次数不确定时用猜数字的经典例子演示版改为程序自动猜importrandom secretrandom.randint(1,10)guess-1tries0print(f目标数字演示用:{secret})whileguess!secret:tries1guesstriesifguesssecret:print(f尝试{guess}: 大了)elifguesssecret:print(f尝试{guess}: 小了)print(f猜中! 答案是{secret}用了{tries}次)输出目标数字演示用: 9 尝试 1: 小了 尝试 2: 小了 ...依次递增 猜中! 答案是 9用了 9 次for适合次数/范围已知while适合结束条件取决于运行过程如读文件直到末尾、轮询直到成功。六、列表推导式for 的压缩版Python 最优雅的语法之一——一行生成列表squares[i*iforiinrange(1,11)]print(1~10 的平方:,squares)evens[iforiinrange(1,21)ifi%20]print(1~20 的偶数:,evens)输出1~10 的平方: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 1~20 的偶数: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20][表达式 for 变量 in 序列 if 条件]——Java 要写四五行的过滤映射收集这里一行完成。七、本章小结for x in range(起, 止, 步)数数循环含头不含尾for x in 列表/字符串/字典直接遍历元素不需要下标enumerate拿下标值zip并行遍历下章讲break跳出、continue跳过while 条件:适合次数不确定的循环注意要有出口防死循环列表推导式[x for x in ... if ...]是 Python 名片级语法务必掌握。下一篇第6章 Python 列表 List待发布
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门