🚩 WRITE IN FRONT 🚩
- 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
- 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量7w+、个人社区人数累计4w+、全网访问量100w+ 🏅
- 🆔 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠
- 📑 创作时间:2022 年 2 月 24 日 📅
- 📝 个人主页:謓泽的博客 📃
- 📣 专栏系列:【Python】系列_謓泽的博客📃
- 🙌 Gitee:謓泽 (wsxsx) - Gitee.com ⭐️
- 🎁 点赞👍+ 收藏⭐️+ 留言📝
✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 📩
while循环
循环结构就是重复执行的一条或者若干个循环语句,就拿生活当中去举出一些例子,像一个项目一个工程我们必须要完成,那么这个你就可以理解是我们现在是在这个循环语句当中。当直到我们完成这个工程或者是项目的时候,此时,我们就可以脱离这个项目当中,那么这就叫做是循环。
在程序当中如果需要重复执行某段代码的时候,就可以使用 while 语句。while 条件语句,即在条件成立的情况下,就会重复执行某段程序。
语法如下
示例语法如下 👇
while 条件语句:# 注意冒号
循环体
执行过程:判断条件是否为真(Ture),如果为真则执行循环体当中的内容。
执行完之后再次判断条件语句是否为真,如果为真的话那么就继续执行。如果条件语句为假的话则退出循环体为False。
一句话:为真→进、为假→出 ♐
流程图如下↓
工作原理是:判断条件为真时的时候就进入循环体循环一次,直到判断条件不成立,为Flase时退出循环。
print()
在说循环嵌套之前我们先在了解下print() 的使用。
我们都知道在默认的情况下使用 print() 会给我们自动换行。例如↓
print("*") print("*")
此时的运行结果是这样的↓
*
*而不是这样:**
从这里就明确的说明了print() 会给我们自动换行。那假设我不想让它换行呢。有没有什么办法,那么肯定是有办法的。
如果不想给 print() 换行,我们只需要在print加上 end="" 即可。
print('*',end="") print('*')
那有小伙伴就可能会说为什么第二个不用,因为第一个已经不换行了,你第二个当然会在第一个的后面啦。
运行结果:**
那么 end = "" 有没有用,肯定是有用的。例如↓
我们想要在上面的代码* 与 * 号之间加上Python,那么就可以这样。
print('*',end="Python") print('*')
运行结果:*Python*
while 嵌套
循环嵌套实际上就是while里面还有while这种就被称之为是循环嵌套。
形式如下↓
while 条件1: 条件1成立时执行语句 条件1成立时执行语句 条件1成立时执行语句 while 条件2: 条件2成立时执行语句 条件2成立时执行语句
代码示例如下↓
我们先用单个循环来试下如何打印下面⑤行的直角三角形。
python"># 单个循环 row = 1 while row < 6: print('*' * row) # print有自动换行功能 row += 1
运行结果🖊
* ** *** **** *****
真的是太妙了!如果是C语言来做的话肯定就要用到循环嵌套了。
那么接下来我们就来用循环嵌套做下这道题目,示例代码如下↓
python">row = 1 # 行 while row <= 5: col = 1 # 列 while col <= row: print('*',end="") col += 1 print() row += 1
运行结果🖊
* ** *** **** *****
这个对于新手来说比较绕,多调试下看下步骤。
题目 - 计算1到100之和
示例代码如下:👇
python">count = 1
number = 0
while count <= 100:
number += count # number = number + count
count += 1 # count = count + 1
print(number)
运行结果 👇
5050
当number变量为1的时候,执行判断语句 number<=100,判断的结果为真,则执行循环体语句当中的内容。然后 number = 1、count = 2、进入第一次循环,一次类推。最终当count为101的时候则退出循环体,开始打印number。
注意,在使用 while 循环时,一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环。所谓死循环,指的是无法结束循环的循环结构,例如将上面 while 循环中的count+ = 1代码注释掉,再运行程序你会发现,循环会一直的继续下去。因为你的循环判断条件永远都没有改变。没有计数器加加,那么就会一直死循环下去。
遍历for
在Python中,如果需要循环依次取出列表、字符串、字典等对象中的每一个数据,那么推荐使用 for 循环是通过次数的大小来进行循环,通常我们会使用遍历序列或枚举以及迭代来进行循环。
流程图如下↓
在Python当中,可以使用for循环遍历所有非数字型的变量:列表、元组、字典以及字符串。
提示:在实际上的开发当中,除非能够确认元组当中的数据类型,不然针对元组的循环遍历的需求要求并不是很多。
那么有小伙伴可能会问为什么元组对于for语句的要求不是很多呢。示例代码如下↓
python">my_tuple = ("小明",18,2.50) # 使用迭代遍历元素 for printf in my_tuple: print(printf,end=" ")
运行结果🖊:小明 18 2.50
那么在这里杰斯下为什么for用于元组不适合↓
- 使用的格式字符串拼接 printf 这个变量是不方便的。
- 因为元组当中通常都是保存的数据类型是不同的。
语法如下
示例语法如下 👇
for 迭代变量 in 对象:
循环体
迭代变量在我们每一次循环中保存根据变量得到的值,对象既是有序的序列,可以是字符串、元组、列表,也可以是无序的序列,例如字典。而循环体则为一条或若干条会被重复执行的语句。
执行次数是由:列表、字符串、字典、元组中数据的个数来决定的。
在Python当中的for()循环还可以和else配合来进行使用,语法如下↓
for 变量 in 集合: pass 循环体代码 # 注else后面+冒号(:) else: 循环结束之后执行代码
注:如果for语句当中有break(退出循环)就不会执行else语句,还有一种情况就是死循环。
示例代码如下↓
python">for str in "Python": pass print(str,end="") else: print("结束end")
运行结果🖊
Python结束end
那么我们要不执行else语句当中的内容怎么办如下↓
python">for str in "Python": pass print(str,end="") break else: print("结束end")
运行结果🖊
P
那么此时我们就只执行了①次for循环就退出了循环。
迭代iterate遍历
遍历就是从头到尾依次从列表当中获取数据。
- 在循环内部针对每一个元素,执行相同的操作。
迭代iterate是数学的专用术语,所谓的迭代就是重复遍历的意思。(从列表当中拿出一个又一个的元素)
我们想要进行迭代遍历的话是使用for,而不是使用while语句注意。
题目 - 循环实现列表中整形元素求和
示例代码如下 👇
python">List = [1,2,3,4,5]
sum = 0
for i in List:
# 从列表当中依次获取数据
sum += i
print(sum)
运行结果 👇
15
需要注意两点↓
(1)→使用 for - in 循环,可以从列表中依次得到每一个元素,如第1次获取元素为1,第2次获取元素为2,最后一次获取元素为5。
(2)→求和操作,就是对取出的整形元素进行算数求和的过程。
range()函数
range()函数是Python内置的函数,它被用于生成一系列连续的整数,它的语法格式为↓
range(start, stop, step)
- start:计数的第一个值,是包含这个值,如果没有start的时候默认为0。
- stop:计数的最后一位,不包含这个值,当range(1,3)的时候,等同于[1,2]是没有3这个数字的,在使用的时候一定要注意这一点。当range()中只有一个数字的时候,像range(3),对应的是[0,1,2]这样一个序列,关于这点大家多多使用就会体会到。
- step:为步长,用来控制取数之间的间隔,如果省略则默认为1,如果为2,3等则步长为2,3等。步长为-1时为逆序。
如需循环一组代码指定的次数,我们可以使用 range() 函数,
range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。
使用 range() 函数示例代码如下 👇
python">for x in range(10):
print(x)
运行结果 👇
0
1
2
3
4
5
6
7
8
9注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。这和下标的使用是一样的,新手很容易会误点这一点!
range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(2, 10),这意味着值为 2 到 10(但不包括 10)也就是 2~9
python">for x in range(3, 10):
print(x)
运行结果 👇
3
4
5
6
7
8
9
那么我们要让每一次结果递增 3,该怎么办呢?如下代码所示↓
python">for x in range(0, 20, 3):
print(x)
运行结果 👇
0
3
6
9
12
15
18
pass占位
Python 当中的 pass 是空语句,pass 不做任何事情,一般用做占位语句,仅仅是为了保持结构的完整性。示例代码如下 ↓
python">for i in 'Python':
if i == 'P':
pass
print("pass")
print('当前字符是:',i)
print("END")
运行结果↓
pass
当前字符是: P
当前字符是: y
当前字符是: t
当前字符是: h
当前字符是: o
当前字符是: n
END