判断&循环&迭代

这篇博客详细介绍了Python中的判断和循环语句,包括关系运算符、逻辑运算符、if判断语句、while循环和for循环的使用。同时,讲解了真假值的判断以及break和continue在循环控制中的作用。

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

一、 判断(关系)运算符

运算符 <, >, ==, >=, <= 和 != 将比较两个对象的值。 两个对象不要求为相同类型。
在这里插入图片描述

>>> 10 > 5
True
>>> 10 == 10
True
>>> 10 != 9
True
>>> 1 == True
True
>>> False == 0
True

链式判断

>>> 10 > 5 > 3
True

二、 逻辑运算符和成员运算符

在这里插入图片描述

>>> n = 1
>>> not n
False
>>> n = 0
>>> not n
True
>>> n = ""
>>> not n
True
>>> 'h' in 'hello'
True

运算符 not 将在其后跟的 参数 为假值时产生 True,否则产生 False。

>>> not 0
True
>>> not ''
True
>>> not 'hello'
False

表达式 x and y 首先对 x 求值;如果 x 为假则返回 该值;否则对 y 求值并返回 其结果值。

>>> x = 0
>>> y = 1
>>> x and y
0
>>> 'hello' and y
1
>>>

表达式 x or y 首先对 x 求值;如果 x 为 真 则返回该 值;否则对 y 求值并返回其 结果值。


>>> 'hello' or y
'hello'
>>> '' or y
1
>>> x or y
1
>>>

> 请注意 and 和 or 都不限制其返回的值和类型必须为 False 和 True,而是返回最被求值的参数的 值。

三、 看清真假

在执行布尔运算的情况下,或是当表达式被用于流程控制语句时,以下值会被解析为假值: False, None, 所有类型的数字零,以及空字符串和空容器(包括字符串、元组、列表、字典、集合与冻结集合)。

所有其他值都会被解析为真值。
在这里插入图片描述

四、if 判断语句

单分支
基本的语法格式:

if 条件语句:   # 注意这里必须以英文的冒号结束
    条件语句为真时,执行的语句
[root@aldey ~]# vim num.py
n = input("输入数字>>:")
n = int(n)    # input 接收到的数据,都是字符串类型
if n == 5:
    print('相等')
    
[root@aldey ~]# python3 num.py 
输入数字>>:5
相等
[root@aldey ~]# vim a.py
n = input("输入数字>>:")
n = int(n)
if n == 5:
    print('相等')
else:               # else 后边必须有英文的冒号
    print('No')

[root@aldey ~]# python3 a.py 
输入数字>>:2
No
[root@aldey ~]# python3 a.py 
输入数字>>:5
相等 

多分支
基本语法

if 条件语句:   # 注意这里必须以英文的冒号结束
    条件语句为真时,执行的语句
elif  条件语句:
    条件语句为真时,执行的语句
else:
    前面的条件都为假,则执行此语句

elif 可以有多个

[root@aldey ~]# vim a.py
n = input("输入数字>>:")
# 必须输入数字来测试
n = int(n)

if n == 5:
    print('ok')
elif n > 5:
    print('大了')
else:
    print('小了')
    
[root@aldey ~]# python3 a.py 
输入数字>>:3
小了
[root@aldey ~]# python3 a.py 
输入数字>>:7
大了
[root@aldey ~]# python3 a.py 
输入数字>>:5
ok

嵌套

[root@aldey ~]# vim a.py
n = input("输入数字>>:")
# n.isdigit() 用于判断 n 的值是否全部都是纯数字, 
# 全部是数字才能使用 int()  转换, 比如: int("123")  可以转成 123

if n.isdigit():
    f_n = int(n)
    if f_n == 5:
        print('ok')
    elif f_n > 5:
        print('大了')
    else:
        print('小了')
else:
    print('请输入数字')

[root@aldey ~]# python3 a.py 
输入数字>>:g
请输入数字
[root@aldey ~]# python3 a.py 
输入数字>>:5
ok

五、while 循环

基本语法

while  条件表达式:
    条件表达式为真,则这些这里的语句

冒号 : 是必须的 缩进也是必须的

[root@aldey ~]# vim a.py
while True:
    n = input("输入数字>>:")
    n = int(n)
    if n == 5:
        print('相等')
        break
    elif n > 5:
        print('大了')
    else:
        print('小了')
        
[root@aldey ~]# python3 a.py 
输入数字>>:3
小了
输入数字>>:6
大了
输入数字>>:5
相等
[root@aldey ~]# 

假设上面的小游戏,只能玩 3 次,如何处理?

[root@aldey ~]# vim a.py
m = 1
while m <= 3:
    m += 1
    n = input("输入数字>>:")
    n = int(n)
    if n == 5:
        print('相等')
        break
    elif n > 5:
        print('大了')
    else:
        print('小了')
        
[root@aldey ~]# python3 a.py   #无论对错,只让玩三次
输入数字>>:6
大了
输入数字>>:3
小了
输入数字>>:17
大了
[root@aldey ~]# 

七、 for 循环

基本语法

for    变量名    in   被循环的对象:
     循环体

变量名是自定义的
被循环的对象也称为 可迭代对象
可迭代对象:

  • 字符串 ‘hello’
  • 列表 [1, 2, ‘hello’]
  • 元组 (1, 2, ‘hello’)
  • 集合 {1, 2, ‘hello’}

循环字符串对象


>>> s = 'hello'
>>> for i in s:     #循环五次
...     print(s)
... 
hello
hello
hello
hello
hello

range()
产生一个可被循环的整数序列,默认序列的元素从 0 开始.

用法:
range(开始索引号, 结束索引号, 步长)

>>> for i in range(3):
...     print(i)
...
0
1
2
>>> for i in range(1, 3):
...     print(i)
...
1
2
>>> for i in range(1, 10, 2):
...     print(i)
...
1
3
5
7
9
>>>

python3

>>> range(3)
range(0, 3)

python2.x

>>> range(3)
[0, 1, 2]

break 和 continue
break:是一个让循环提前结束的关键字,只能写在循环中。
continue:结束当次循环,进入下次循环。

它们都可用于循环语句的循环体,所谓的区别也应该是它们对循环次数的影响不同。
break用于立即退出当前循环,而continue仅跳过当次循环

[root@aldey ~]# vim a.py
for i in range(0, 10):
    print(i)
    if i < 3:
        inp_num = int(input(">>:").strip())
        # inp_num = int(inp_num)
        if inp_num == 15:
            print('You get it')
            break          # 在这里break就是输入15的时候会退出循环
        elif inp_num > 15:
            print("高了")
        else:
            print("低了")
    else:
        print("Game over")
        break

[root@aldey ~]# python3 a.py 
0
>>:2
低了
1
>>:15     # 输入正确的时候会直接退出
You get it
[root@aldey ~]# 
>>> for i in range(2, 10):
...     if i == 4:
...         continue     # continue就是继续下面的循环
...     print("循环到", i)
...     if i == 6:
...         break
...
循环到 2
循环到 3
循环到 5
循环到 6
>>>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值