Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)—玩转Python语法(一):面向过程—下一站是何方?—循环结构(1)(十)

简介: 玩转Python语法(一):面向过程

3.3 循环结构

3.3.1 range()函数

🚩我们在介绍循环结构之前,首先介绍一个函数:range(),这个函数的作用是可以用它来生成一个整数的序列,range() 函数的返回对象是一个迭代器对象 (这里无须知道什么是迭代器对象,知道range()函数可以产生一连串的整数序列即可),关于range() 函数,这里介绍其使用的三种方法:

range的使用 具体解释说明
range(strop) 创造一个[0, stop)的整数序列,序列中相邻两数的差为1
range(start, stop) 创造一个[start, stop)的整数序列,序列中相邻两数的差为1
range(start, stop, step) 创造一个[start, stop)的整数序列,序列中相邻两数的差为step

我们把序列中相邻两数之间的差称为:步长注意以上的范围均是左闭右开型,下面我们用代码去讲解我们的range():

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/8 15:36
# 欢迎大家关注AIoT相关博客~
a = range(10)
print(a)

image.png

我们可以看到输出的结果为:range(0, 10)这就是所谓的迭代器,我们知道,range返回的应该是一连串的数,但我们不可能把这一连串的数全部存到一个变量a之中,故我们可以调用list(),就可以查看我们的rang()产生的这一连串的数字,关于 list(),后续会重点进行讲解,读者此时把它理解成为一个可以把 range() 中产生的数全部显示出来即可:

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/8 15:36
# 欢迎大家关注AIoT相关博客~
# range() 的第一种用法: range(stop)
a = range(10)
print(list(a))
# range() 的第二种用法: range(start, stop)
b = range(5, 10)
print(list(b))
# range() 的第三种用法: range(start, stop, step)
c = range(2, 10, 2)
print(list(c))

image.png

我们还可以使用 2.4.4 布尔运算符  中所讲过的  innot in  去判断序列中是否存在我们规定的整数,代码如下:

print(1 in range(1, 10, 2))
print(2 not in range(1, 10, 2))

这里再来介绍一下 range() 的优点,我们知道,我们在创建变量的时候,对应的是创造的过程,一旦有东西被创造出来了,那么它一定是占用了一定的资源空间的,我们人类的出生占用的是地球的资源和空间,那么一个变量创造就会占用计算机内存的空间,故如果我们想要创造一个 [10, 100) 这个范围内的所有偶数的话,我们可以开辟很多个变量,然后每一个变量都对应一个值,这显然会占用很大的内存空间,我们还可以采用 range() 函数,我们在用a = range(10, 100, 2)的时候,相当于是创造了一个 range() 的迭代器,或者你可以理解成,我们创造了 [10, 100) 内的所有偶数的一个压缩文件,并用 a 指向这个文件,我们的压缩文件其实只是存储了start, stop, step三个值,并没有存储所有的偶数,对应到这个例子之中相当于我们在进行a = range(10, 100, 2)这个操作的时候,只存储了10, 100, 2这三个数,这样显然是比开一堆变量分别存储偶数是要省空间的,那么什么时候 “解压” 这个 range() 呢?当我们要用它的时候,才会对它 “解压”,就单独说存储而言,我们在调用 range() 函数的时候只存储了start stop step


3.3.2 while循环

🚩什么是循环?反复的做着相同的任务就叫做循环,我们如果要打印一行hello world,那么只需要写出print('hello world')即可,,但是如果我们要打印 10 行hello world怎么办呢?你可能会回答到:在原有的代码基础上直接 Ctrl c + Ctrl v 九次不就好啦嘛,那么打印 100 次,1000 次呢?你可能会回答到:没有人会闲到打印 1000 次的 hello world,咳咳咳,你真是个小聪明😒    (不管你,反正我就要讲while循环!!!

while循环的语法结构如下:

while 条件表达式:
  执行语句(循环体)

while循环的语法如上述所示,条件表达式后面的:不可以省略,它是循环开始的象征,并且执行语句必须进行相应的缩进(一个Tab键的距离【4个空格】),代码所表达的意思就是,如果 条件表达式成立【bool值为True】,就执行语句的内容

image.png

while 循环和 if 的区别:if 循环如果条件表达式为 True 的话,会执行一次执行语句,while 循环的话,当条件表达式为 True 后会执行一次执行语句,执行完成之后再次返回条件表达式,如果还为 True,那么会再次执行执行语句,直至条件表达式的值为 False,从这里我们也可以看出,如果执行语句执行了 n 次的话,那么我们的条件表达式会执行 n+1 次(最后一次执行表达式值为False,不执行执行语句而是退出循环)

为了强化大家对while的理解,这里讲一个例题:经典高斯求和问题:求出 1 + … + 100 的值

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/8 16:26
# 欢迎大家关注AIoT相关博客~
a, res = 1, 0
while a <= 100:
    res += a
    a += 1
print(res)

3.3.3 for循环

🚩for 循环和 while 循环的思想是一样的,可以理解成循环的又一种表达形式,for循环的语法结构如下:

for 自定义的变量 in 可迭代对象:
  循环体

for循环的语法如上述所示,条件表达式后面的:不可以省略,它是循环开始的象征,并且执行语句必须进行相应的缩进(一个Tab键的距离【4个空格】),代码所表达的意思就是,如果 条件表达式成立【bool值为True】,就执行语句的内容


我们来依次介绍几个知识点:

可迭代对象:对于现在而言,我们的可迭代对象只有两个:range() 以及字符串,后续我们还会介绍更多的可迭代对象;

自定义的变量:说白了就是给起一个变量名,然后把可迭代对象里面的值依次逐个赋值给自定义的变量

遍历:我们以后会常见到遍历这个名词,它的意思就是我们依次从可迭代对象中取值,直至取值操作结束为止

下面我们来用代码去介绍for循环,还是和while循环中一样的问题:高斯求和

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/8 16:59
# 欢迎大家关注AIoT相关博客~
res = 0
for item in range(1, 101):
    res += item
print(res)

根据代码去理解for循环:我们可以看到,对于上述代码,for循环所遍历的对象为:range(1, 101),即当我们遍历到 100 的时候,for 循环就会停止,在遍历的过程中,我们把 range 中产生的数依次赋值给了 item(当然我们可以任意去给它取名,一般习惯起名为 item),我们根据上述也可以看出,在我们计算 1 + … + 100 的时候,既可以使用while也可以使用for,故其实我们的 for 和 while 没有本质上的区别,它们之间是可以相互转换的




目录
相关文章
|
25天前
|
人工智能 Ubuntu IDE
【Python】基础:环境配置与基础语法
本文介绍了Python编程语言及其环境配置方法。Python由Guido van Rossum于1991年创建,以其简洁、易学和强大的功能著称。文章详细讲解了Python的主要特点、Windows和Ubuntu下的安装配置步骤、基础语法、控制流、函数、文件操作、模块使用及面向对象编程等内容,帮助读者快速入门Python编程。
52 4
|
3天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
14天前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
13 2
|
20天前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
22天前
|
Python
【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制
在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。
37 2
|
1月前
|
存储 C语言 索引
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
39 0
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
|
1月前
|
存储 数据可视化 数据处理
【Python篇】快速理解Python语法:全面指南
【Python篇】快速理解Python语法:全面指南
45 1
|
2月前
|
Java Linux C++
30天拿下Python之基础语法
30天拿下Python之基础语法
29 4
|
人工智能 分布式计算 前端开发
3大阶段,30+教程,超全年度 Python 礼包大放送 | 技术日报(15期)
Python简单易懂,功能强大,同时也是大数据、人工智能时代的首选编程语言之一。这两年 Python 如破竹之势一般出现在开发者眼前,甚至有许多非技术人员也会想通过学习 Python 来提高自己的工作效率。这么火的语言,开发者社区当然要为你带来 “Python 学习大礼包” 了!
986 0
|
2天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!