2024年最新Python-流程控制总结(if、elif、else、for、while、continue
pass
循环中的else
内置函数
enumerate(iterable, start=0)
range(start, stop[, step])
zip(*iterables)
条件
if、elif、else
关键字 ' elif ' 是 ' else if ' 的简写形式,在编程逻辑中二者功能等同;在一个由多个连续的if... elif... else...组成的序列中,则相当于使用其他编程语言中的switch-case结构。
可以有零个或多个 elif部分,以及一个可选 的 else部分。
可与and、or、not 等一起使用
格式:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
举例:
> x = 80
> if 0 < x < 60:
> print('bad')
> elif 60 <= x < 90:
> print('excellent')
> else:
> print('perfect')
>
>
>
>
>
>
>
>
>
>
> ```
>
>
**结果:**
>
>
> excellent
>
>
#### 三元操作符???
在C++中有?,那么python中没有?,要实现三元操作符如何办呢?**X if C else Y**
**举例:**
>
>
>>
>>
>>>
>>>
>>>>
>>>>
>>>> grade = 90
> a = ‘good’ if grade>=90 else ‘bad’
> a
> ‘good’
>>>>
>>>>
>>>
>>>
>>
>>
>
>
### 循环
#### for
对任意序列进行迭代(例如,列表、元组、字符串等),使用关键字in。
**举例:**
>
words = ['hello', 'lady', 'killer', '9'] for w in words: print(w, len(w))
结果:
hello 5
lady 4
killer 6
9 1
如果你希望在循环过程中对序列进行增删操作,则一种常用的方法是通过切片操作实现。对于某些可迭代类型来说,则提供cop y函数也是一种方便的方式。
> nums = [3, 7, 8, 3, 4, 6, 1]
>
> for num in nums[:]:
> if num > 5:
> nums.pop(nums.index(num))
> print(nums)
>
>
>
>
>
>
>
>
>
> ```
>
>
**结果:**
>
>
> [3, 3, 4, 1]
>
>
#### while
循环语句,与if相比,若满足条件,一直运行,而不是一次。
>
while expression: something need to repeat
无限循环
while True即可,不再举例
计数循环
使用cnt进行计数
> cnt = 0
> while cnt < 5:
> print(f'第{cnt+1}次循环')
> cnt += 1
>
>
>
>
>
>
>
>
>
> ```
>
>
**结果:**
>
>
> 第1次循环
> 第2次循环
> 第3次循环
> 第4次循环
> 第5次循环
>
>
##### do…while???
在C++中你可以找到doo…while,然而,python中没有。python的开发者希望语言变得更简单,如果不是有人使用语言中的其他关键字模仿三元操作符经常出错,甚至连if…else实现三元操作符也不会有。当然,do…while的实现就很简单了,使用一个flag即可,do…while就是先做,然后再判断。
**举例:**
>
导入模块random,并设置变量flag为True值。当变量flag为真时开始循环:从范围中选择一个数字num并输出该数值。如果该数字小于4,则将变量flag设置为False值并结束循环过程。
结果(当然,你的结果和我的可能不一样):
8
3
continue与break
continue 用于终止当前的循环迭代,并执行下次循环;break 用于退出当前的循环体。这两个关键字使得程序能够更加灵活地控制循环流程。
小综合举例:
> cnt = 3
> password = 'lady_killer9'
> while cnt != 0:
> pwd = input('please input your password:')
> if pwd == password:
> print('log in success')
> break
> else:
> print('password not right!!!')
> cnt -= 1
> continue
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ```
>
>
**结果:**
>
>
> E:\Workspace\python_workspace\learnpy>python learncondition.py
> please input your password:hi
> password not right!!!
> please input your password:lady
> password not right!!!
> please input your password:lady_killer
> password not right!!!
>
>
>
> E:\Workspace\python_workspace\learnpy>python learncondition.py
> please input your password:hello
> password not right!!!
> please input your password:lady_killer9
> log in success
>
>
### pass
python使用缩进而不是{},有些时候语法上需要写语句,但是我们又希望什么都不要做,这个时候就可以使用pass。
**举例(找到对3取余为1的数):**
>
初始值num设为0
数组nums定义为[1,2,5,6,4,7]
遍历列表nums中的每个元素i
如果i除以3的余数等于1:
打印出找到的数字:并继续下一条指令
如果i能被2整除:
打印出"偶数但不符合"
否则不做处理
结果:
找到了: 1
偶数但不符合
偶数但不符合
找到了: 4
找到了: 7
i为5时,pass掉了
循环中的else
Python中的循环结构可能会包含一个 else 子句。这个子句会在两种特定条件下被触发:当for循环完整遍历所有列表元素时(即使用for关键字),或者当while循环的条件变为False(即不再满足条件)时。不过,在for或while循环内部使用了break关键字终止循环的情况下,则该else子句不会被执行。换句话说,在没有break的情况下会执行else后面的语句
寻找最大因子
普通:
> def showMaxFactor(num):
> flag = False
> count = int(num/2)
> while count > 1:
> if num % count == 0:
> print(f'largest factor of {num} if {count}')
> flag = True
> break
> count -= 1
> if not flag:
> print(num, 'is prime')
>
>
> for n in range(10, 21):
> showMaxFactor(n)
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ```
>
>
**结果:**
>
>
> largest factor of 10 if 5
> 11 is prime
> largest factor of 12 if 6
> 13 is prime
> largest factor of 14 if 7
> largest factor of 15 if 5
> largest factor of 16 if 8
> 17 is prime
>
>
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取]()**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
