Python基础之流程控制

本文由车神哥分享,详细介绍了Python的基础知识,包括代码块、条件判断语句(if-else)、循环语句(for、while)以及迭代的高级用法如enumerate和列表推导式。通过实例解析了如何在不同场景下运用这些概念,是学习Python的好资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室实验室快3分钟,最慢3分半(那半分钟其实是等绿
📝个人主页:车手只需要车和手,压力来自论文_府学路18号车神_CSDN博客
🥇 官方认证:人工智能领域优质创作者
🎉点赞评论收藏 == 养成习惯一键三连)😋

⚡希望大家多多支持🤗~一起加油 😁


最近发现有些东西长时间不用就要忘了,坚持每天复习总结一个小知识点吧~


今天写点儿Python基础,流程控制块。

代码块

首先,需要了解的是代码块,它不是一种特殊的语句,它是一系列功能相似的代码集合,通过一定的编程规范将一组代码编写成一组快,相当于封装成一体。

在Python中使用缩进的方式对代码进行分块,缩进格式一样的代码则成为一个代码块。(一般使用4个空格位一个缩进单位,当然你也可以按Tab键进行缩进也没毛病)

简洁的Python不需要明确的结束标记,但是在通常的工程项目中,为了方便,一般位在结尾的位置加上一个pass语句来表示当前代码执行结束。

条件判断语句

在编写代码时,一般不会一句一句的写来执行,通常都会使用判断语句。

如下面的示例:

假如学生A的成绩为70,按照60的及格线来判断该学生是否及格。

studentA = 70
if studentA > 60:
	print("及格啦~")
else:
	print("不及格~")

显而易见,该指令只进行了if studentA > 60:的语句,没执行else:,如果将studentA=70改为studentA=40。(我们可以知道,条件判断语句是根据布尔表达式的值选择代码块执行的)

下面给出一些会被判断为假(False)的值:

False,None,0,"",(),[],{}

除了上述的这些类型外,都会被判别为真(True)执行相应的代码块。

上面是一个简答例子,但是在实际工程上或者现实中会更加复杂多变。再举例一个多情况的。

举例:

我们进一步划分成绩的标准,90以上为”优秀“;80~89为“良好”;70~79为”中等“;60~69为“及格”;60以下为”不及格“。

studentA = 80

if studentA >= 90:
	print("及格")
elif studentA >= 80:
	print("良好")
elif studentA >= 70:
	print("中等")
elif studentA >= 60:
	print("及格")
else:
	print("不及格")

通过以上代码,会被判断为良好,我们面对这种多次判断需要使用elif进行多次区分判断。

在条件判断语句中,不仅可以使用算术运算符,其他任何的布尔运算亦可,如使用成员表达式来判断今天是否是工作日:

today = 'TUE'
week = ['MON', 'TUE', 'WED', 'THU', 'Fri']

if today in week:
	print("今儿是工作日")
elseprint("今儿是休息日")

显而易见,执行完毕后会输出"今儿是工作日".

今儿是周四,明儿还得开项目会,哎,论文投稿遥遥无期,毕业压力日益增加,行吧,佛系了@_@白天搞科研,晚上复习基础,慢慢儿来吧~(2022.4.14)

循环语句

循环语句是将一个代码块执行多次的一种语法结构,若想打印一个数组,可遍历数组中的每一个元素,然后打印显示,当遍历完毕整个数组,则循环终止。

当然,也可以使用break关键字在循环过程中退出,或者使用continue跳过其中的一次循环。

for 循环

for 循环的语句结构:

for i in t:
	print("10086")

上语句中,t 是一个包含多个元素的序列,可以是字符串数组等。

每次遍历后悔从s中提取一个元素并赋值给变量i, 同时执行代码块

遍历数组,并打印出每一个元素乘以一个元素值 5 :

s = [1, 2, 3, 4, 5]
for i in s:
	print(i*5)

来看下输出结果是什么:

5
10
15
20
25

使用continue来跳过部分循环,如果只希望打印奇数,则需要设置判断语句:

s = [1, 2, 3, 4, 5]
for i in s:
	if i % 2 ==0:
		continue
	print(i*5)

结果为:

5
15
25

相反,如果我们用break,则会跳出循环:

s = [1, 2, 3, 4, 5]
for i in s:
	if i > 3:
		break
	print(i*5)

结果为:

5
10
15

while 循环语句

通常用的较多的第二种,也就是while语句了。

结构如下:

i = 10
while i <= 20:
	print(i)
	i+=1

从上可看出,是一个很简单的循环语句。while语句会根据判断条件来决定是否执行内部代码运行;只有当判断为条件真的时候才能执行内部代码;否则,循环停止结束。

当然,while语句也可以使用continue和break来实现循环控制。如下示例。

example1:

num = [1,2,3,4,5,6,7,8]
x = 0
while x < len(num):
	if num[x] % 2 == 0:
		x += 1
		continue
	print(num[x])
	x += 1

输出结果为:

1
3
5
7

Process finished with exit code 0

example2:

输出小于等于4的数

num = [1,2,3,4,5,6,7,8]
x = 0
while x < len(num):
	if num[x] >= 4:
		break
	print(num[x])
	x += 1

输出结果为:

1
2
3

Process finished with exit code 0

迭代进阶版

Iterable

我们学过for循环,这种遍历操作叫做迭代,在Python中并非所有的对象都可以进行迭代,如下就会报错:

num = 28421

for x in num:
	print(x)

输出:

Traceback (most recent call last):
  File "D:/项目/minprogram/学习笔记/Django_learn/day02.py", line 10, in <module>
    for x in num:
TypeError: 'int' object is not iterable

Process finished with exit code 1

上述报错可知,由于num是一个非迭代对象,所以不能进行迭代操作。

那么如何判断是否为一个迭代对象呢?

可以使用collections模块Iterable类型进行判断

from collections.abc import Iterable

num = 22412

print(isinstance(num, Iterable))

num2 = [2,3,4,5,6]

print(isinstance(num2, Iterable))

输出结果:

False			
True		# 返回布尔型

Process finished with exit code 0

enumerate

可能你会对enumerate比较陌生,enumerate函数可以将一个序列转换为索引-元素对,可以方便在操作序列时,使用元素的索引号。

下面给出for循环下使用enumerate函数,在循环中同时迭代索引元素本体

st = ["111", '2131','1231245124']

for x, value in enumerate(st):
	print(x, value)

输出结果:

0 111
1 2131
2 1231245124

列表推导式

列表推导式是利用其他列表创建新列表的一种方式,类似于for循环的一样。

>>> [x*x for x in range(5)]
[0, 1, 4, 9, 16]

如上式,”for x in range(5)“相当于一个for循环range()函数创建一个新列表,在每次循环的时候,将循环变量x赋值给表达式x*x中,x*x相当于for循环中的代码块,最后根据x*x生成新列表。

又如,我们再往for循环中嵌套if语句,如下

>>> [x*x for x in range(5) if x % 2 != 0]
[1, 9]

同理,也可以再嵌套for循环


>>> [(x,y) for x in range(3) for y in range(5) if x!=y]
[(0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 3), (2, 4)]

好啦,本期就到这里了啊~

跑步去了。


❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!
To Be No.1

⚡⚡


创作不易⚡,过路能❤关注收藏点个赞三连就最好不过了

ღ( ´・ᴗ・` )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

府学路18号车神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值