热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Python编程基础】深入理解Python中的循环结构

在《Python编程基础》课程中,我们将深入探讨Python中的循环结构。通过详细解析for循环和while循环的语法与应用场景,帮助初学者掌握循环控制语句的核心概念和实际应用技巧。此外,还将介绍如何利用循环结构解决复杂问题,提高编程效率和代码可读性。

中国史之【鲧禹治水】:
中国古代的神话传说故事。三皇五帝时期,黄河泛滥,鲧(gun)、禹父子二人受命于尧、舜二帝,任崇伯和夏伯,负责治水。大禹置个人利益于不顾,“三过家门而不入”,治水13年,耗尽心血与体力,终于完成了治水的大业。
-来源:全历史APP

今天讲python的循环语句,具体是while和for语句的使用。有需要的也可以直接去我的github查看全部笔记:

https://github.com/JackKoLing/python_notes_with_ten_days
在这里插入图片描述
俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。对于环境的配置,可以参考以下两篇:

  • win10版 @小保,公众号:CV之道
    【深度学习环境配置】手把手实战配置深度学习环境(win10版)
  • Linux版 @小保,公众号:CV之道
    【深度学习环境配置】手把手实战配置深度学习环境(Ubuntu20.04版)

1 while语句

while bool_expression:while_suite
else:else_suite

  • break: 跳出最内层的循环
  • continue: 跳到所处的最近层循环的开始处
  • pass: 占位语句
  • else代码块:循环正常终止(while语句不满足)才会执行,如果循环终止是由break导致的,则else不会执行

url = "www.baidu.com"
while url:print(url)url = url[1:] # 切片,最后一个返回是空,对象是空即为False
>>>
www.baidu.com
ww.baidu.com
w.baidu.com
.baidu.com
baidu.com
aidu.com
idu.com
du.com
u.com
.com
com
om
m

url = "www.baidu.com"
while url:print(url)url = url[:-1] # 从后面删,注意切片顾首不顾尾
else:print("Game over.") # 正常结束只会运行一次
>>>
www.baidu.com
www.baidu.co
www.baidu.c
www.baidu.
www.baidu
www.baid
www.bai
www.ba
www.b
www.
www
ww
w
Game over.

url = "www.baidu.com"
x = 0
while url:print(url)url = url[:-1] # 从后面删x += 1if x > 7:break
else:print("Game over.") # 不正常跳出,不执行此语句,因为url仍为True
>>>
www.baidu.com
www.baidu.co
www.baidu.c
www.baidu.
www.baidu
www.baid
www.bai
www.ba

x = 0
y = 30
while x<y:print(x, end&#61;&#39; &#39;) # 在print函数中使用end&#61;&#39; &#39;可以让结果在一行中打印x &#43;&#61; 1
>>>
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

l1 &#61; [1, 2, 3, 4]
while l1:print(l1[-1]) # 逆序输出l1.pop()
>>>
4
3
2
1

d1 &#61; {&#39;x&#39;:1, &#39;y&#39;:23, &#39;z&#39;:78}
keylist &#61; list(d1.keys())
# print(keylist)
while keylist:print(keylist[0]) # 逐一显示指定字典的所有键keylist.pop(0)
else:print(len(d1)) # 打印总键数
>>>
x
y
z
3

# 两个列表分别为keys-values,来生成一个字典&#xff0c;法1
d1 &#61; {}
l1 &#61; [0, 1, 2, 3, 4, 5, 6]
l2 &#61; ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
i &#61; 0
if len(l1) &#61;&#61; len(l2):while i < len(l1):d1[l1[i]] &#61; l2[i]i &#43;&#61; 1
print(d1)
>>>
{0: &#39;Sun&#39;, 1: &#39;Mon&#39;, 2: &#39;Tue&#39;, 3: &#39;Wed&#39;, 4: &#39;Thu&#39;, 5: &#39;Fri&#39;, 6: &#39;Sat&#39;}

2 for语句


  • for语句是最常用的循环语句&#xff0c;但是&#xff0c;如果要追求性能效率&#xff0c;能用矩阵运算&#xff0c;就不要用循环。

# 两个列表分别为keys-values,来生成一个字典&#xff0c;法2
d1 &#61; {}
l1 &#61; [0, 1, 2, 3, 4, 5, 6]
l2 &#61; ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
# 使用zip来将并排元素配成元组&#xff0c;并行遍历
for (k, v) in zip(l1, l2):d1[k] &#61; v
print(d1)
>>>
{0: &#39;Sun&#39;, 1: &#39;Mon&#39;, 2: &#39;Tue&#39;, 3: &#39;Wed&#39;, 4: &#39;Thu&#39;, 5: &#39;Fri&#39;, 6: &#39;Sat&#39;}

l1 &#61; [1, 2, 3, 4]
for i in l1:print(i)
>>>
1
2
3
4

sum &#61; 0
for i in range(1, 101):sum &#43;&#61; i
print(sum)
>>>
5050

d1 &#61; {0: &#39;Sun&#39;, 1: &#39;Mon&#39;, 2: &#39;Tue&#39;}
for k, v in d1.items():print(k, v)
>>>
0 Sun
1 Mon
2 Tue

# 输出奇数位的元素
l1 &#61; ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
for i in range(1, len(l1), 2):print(l1[i])
>>>
Mon
Wed
Fri

(补充回顾&#xff09;
python是动态语言&#xff0c;使用sys.getrefcount()查看对象引用次数
&#xff08;1&#xff09;增加对象的引用计数场景&#xff1a;

  • 对象创建时&#xff0c;将对象添加进容器时&#xff0c;类似list.append();
  • 当对象被当做参数传递给函数时&#xff1b;
  • 为对象创建另外变量名

&#xff08;2&#xff09;减少引用计数&#xff1a;

  • 引用此对象的某变量名被显式销毁&#xff1a;del x;
  • 给引用此对象的某变量名重新赋值&#xff1b;
  • 从容器中移除对象&#xff0c;类似list.pop()&#xff1b;
  • 容器本身被销毁

【声明】&#xff1a;学习笔记基于互联网上各种学习资源的个人整理。

以上是本期内容&#xff0c;下期介绍python的列表解析。

我叫小保&#xff0c;一名计算机视觉爱好者、学习者、追随者&#xff0c;欢迎关注我一起学习。



推荐阅读
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 1、字符型常量字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。C语言的字符使用的就是 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 本文详细探讨了 org.apache.hadoop.ha.HAServiceTarget 类中的 checkFencingConfigured 方法,包括其功能、应用场景及代码示例。通过实际代码片段,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文介绍了如何通过Java代码计算一个整数的位数,并展示了多个基础编程示例,包括求和、平均分计算、条件判断等。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • Win10 UWP 开发技巧:利用 XamlTreeDump 获取 XAML 元素树
    本文介绍如何在 Win10 UWP 开发中使用 XamlTreeDump 库来获取和转换 XAML 元素树为 JSON 字符串,这对于 UI 单元测试非常有用。 ... [详细]
  • 本文详细介绍了 Python 中的 with 语句及其背后的上下文管理器机制,从基本概念入手,通过具体示例和原理分析,帮助读者深入理解这一重要的资源管理工具。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
author-avatar
fenfei2702936060
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有