Python逻辑控制

这篇博客详细介绍了Python中的逻辑控制,包括运算符的分类和用法,如算术、赋值、逻辑、比较运算符;还讲解了判断语句,如if...else...,if嵌套,以及循环语句,如while和for循环,以及break和continue的使用。通过多个实例练习,帮助读者深入理解Python逻辑控制。

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

1 运算符

1.1 算术运算符

a=10 b=20
在这里插入图片描述

# 算术运算符:+ - * / // % **
a=10
b=20
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a//b)
print(a%b)

在这里插入图片描述

1.2 赋值运算符

在这里插入图片描述

# 赋值运算符 :+= -= *= /= //= %= **=
m=0
m+=1 # m=m+1=0+1 m=1
m+=2 # m=m+2=1+2 m=3
print(m)

在这里插入图片描述

1.3逻辑运算符

在这里插入图片描述

'''
逻辑运算符:and or not
and : 表示and左右两边同时为true,那么结果为true
or:表示or左右两边任意一边为true,那么结果为true
not:表示not右边的表达式取反

通常和比较运算符联合使用在判断语句中
'''
 a=True
 b=False
 print(a and b)
 print(a or b)
 print(not a)

在这里插入图片描述

1.4 比较运算符

a=10 b=20
在这里插入图片描述

# 比较运算符:== != > < >= <=
print(a==b) # false
print(a!=b) # true
print(a>b) # false
print(a<b) # true
print(a>=b) # false
print(a<=b) # true

1.5 运算符优先级

所有运算符优先级从高到低
在这里插入图片描述

优先级的使用,直接用()括起来,()里面的先运算

# in not in
str1='张晓明'
str2='张明'
print(str2 not in str1)

在这里插入图片描述

1.6 数据类型转换

常用的数据类型转换
在这里插入图片描述

1.7 成员运算符

测试实例中包含了一系列的成员,包括字符串,列表或元组
在这里插入图片描述

1.8身份运算符

用于比较两个对象的存储单元。注: id()函数用于获取对象内存地址
在这里插入图片描述

2 判断语句

2.1 if…else…

if…else…使用格式

'''
判断语句
语法:
if 条件:
    满足条件时,执行的代码1
    满足条件时,执行的代码2
通常和逻辑运算符 and or 连用

if-else
语法:
if 条件:
    满足条件,执行的代码
else:
    不满足if后面的条件,执行的代码
'''

练习
从键盘输入一个age年龄,判断是否成年,如果已经成年,则可以处对象,否则,不能

 age=input('请在键盘输入一个年龄:')
 age=int(age)
 if age>=18:
     print('已经成年,可以处对象')
 else:
     print('请好好学习,天天向上')
 print('end')

在这里插入图片描述
在这里插入图片描述
练习:
和女朋友异地谈恋爱,情人节去到女朋友所在的城市过节。如果买到高铁票,那么就可以见到心心念念的她了;如果没有买到高铁票,那么亲爱的,下次再见啦~

用ticket表示是否有车票 用1代表有车票 用0代表没有车票
 ticket=1
 if ticket==1:
     print('出发去过520')
 else:
     print('明年再过520')

在这里插入图片描述
练习
从键盘输入刀子的长度,如果刀子长度没有超过10cm,则允许上火车,否则不允许上火车

'''
模拟上火车的场景:不能带刀过安检
判断:刀子长度是否超过了规定的规格
'''
 knife=int(input('请输入刀子的长度:'))
 if knife>=10:
     print('对不起,你需要把刀子丢掉,才能上火车')
 else:
     print('车要开走了,请尽快上车')

在这里插入图片描述
在这里插入图片描述

2.2 if…elif…

语法:
if 条件1:
 执行代码1
elif 条件2:
       执行代码2
elif 条件3:
    执行代码3

注意:
elif只能和if连用,也就是不能直接使用elif,
else可以在if-elif中使用(不是必须存在的)

练习:
成绩等级评级(A、B、C、D)

score=78
if score>=90 and score<=100:
     print('成绩等级为A')
elif score>=80 and score<90:
     print('成绩等级为B')
elif score>=70 and score<80:
     print('成绩等级为C')
elif score>=60 and score<70:
     print('成绩等级为D')
else:
     print('不及格')

在这里插入图片描述
练习:
性别判定(男、女、第三种性别)

sex='男'
if sex=='男':
     print('他是男性')
elif sex=='女':
     print('她是女性')
else:
     print('他可能是第三种性别')

在这里插入图片描述

2.3 if嵌套

if嵌套:
if里面可以接以上if所有结构

语法:
if 条件1:
    if 条件2:
        满足条件1的时候,执行的代码
    else:
        不满足条件1的时候,执行的代码
else:
    不满足条件1,执行的代码
    
if-elif-else 嵌套
if 条件1:
    if 条件01:
        执行代码01
    elif 条件02:
        执行代码02
    else:
        不满足条件01...n,执行的代码
elif 条件2
    执行的代码2
else:
    不满足以上的条件1..n,执行的代码

练习:
车票进站问题

# ticket代表有无车票
# knife代表刀子长度
ticket=1
knife=8
if ticket==1:
    if knife<=10:
        print('已经顺序安检完,尽快上车')
    else:
        print('请把刀子留下')
else:
    print('请购买车票')

在这里插入图片描述
练习:
请输入公交卡余额,如果余额大于等于1,可以上公交车,上车之后,
如果空位大于0,那么可以坐下

money=int(input('请输入公交卡余额:'))
seat=1
if money>=1:
    if seat>0:
        print('先生,可以坐下')
    else:
        print('先生,站着吧')
else:
    print('请充值')

在这里插入图片描述
在这里插入图片描述
练习:
猜拳游戏
运行效果:
请输入:剪刀(0) 石头(1) 布(2)
你输了!再来一局
测试:
赢了
平局
输了

import random
computer=random.randint(0,2)
player=int(input('请输入:剪刀(0) 石头(1) 布(2):'))
# 测试一下
# print('player:%d,computer:%d'%(player,computer))
if ((player==0 and computer==1) or (player==1 and computer==2)
        or (player==2 and computer==0)):
    print('恭喜你,赢了')
elif player==computer:
    print('平局')
else:
    print('你输了')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 循环语句

3.1 while循环

  • 一般情况下,需要多次重复执行的代码,都可以用循环完成
  • 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环
循环语句
循环:一般情况下,我们需要重复执行的代码,可以放入循环语句中
死循环:当条件一直满足的情况下,一直执行代码(需要避免的)

while循环

语法:
while 条件:
    满足条件,需要执行的代码
i=0
while i<5: # 0 1 2 3 4
    print('宝贝,我错了')
    i+=1

在这里插入图片描述
这是第1次执行循环
i=0
这是第5次执行循环
i=4

i=0
while i<5:
    print('这是第%d次执行循环'%(i+1))
    print('i='+str(i))
    i+=1

在这里插入图片描述
练习:
求1-100的累积和(包含1,100)

i=1
count=0
while i<=100:
    count+=i
    i+=1
print(count)

在这里插入图片描述
练习:
求1-100的偶数和奇数的累积和(包含1,100)

# # 循环次数
i=1
# 偶数和用even_sum表示
even_sum=0
# 奇数和用odd_sum表示
odd_sum=0
while i<=100: # 1 2 3
    if i%2==0:
        even_sum+=i # 0+2
    else:
        odd_sum+=i
    i+=1 # 2 3 4
print(even_sum)
print(odd_sum)

在这里插入图片描述

3.2 while循环嵌套

语法:
while 条件1:
    while 条件2:
        满足条件1的前提下,满足条件2,执行的代码
    满足条件1,执行的代码

练习:

想办法输出下图:
*
**
***
****
*****

i=0
while i<5: # 1 2 3 4
    j=0
    while j<=i: #  0 1 2 3 4
        print('*',end=' ')
        j+=1
    print()
    i+=1

结果:
在这里插入图片描述
练习:

打印九九乘法表
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81
i=1
while i<=9:
    j=1
    while j<=i:
        print('%d*%d=%d'%(j,i,i*j),end='\t')
        j+=1
    print()
    i+=1

结果:
在这里插入图片描述

3.3 for循环

语法:
for 临时变量 in 字符串等:
    满足这个in条件,执行的代码
for b in 'abcds':
    print(b)

结果:
在这里插入图片描述

3.4 break和continue

共同点:用来结束循环 
        在他们之后的语句不会执行
不同点:
        break   :用来结束所有循环
        continue:用来结束本次循环,继续执行下一次循环
        
注意:
    break和continue只能用在循环中
    在循环嵌套中,只对最近一层循环起作用
        
pass:跳过本次循环,需要注意的是,需要让if判断有else子句
区别:
      break和continue必须在循环中使用,pass不需要

break:

i=0
while i<5:
    if i==3:
        break
        print('break跳出循环')
    print(i)
    i+=1

结果:
在这里插入图片描述
continue:

i=0
while i<5:
    i+=1
    if i==3:
        continue
        print('continue跳出本次循环')
    print(i)
print('end')

结果:
在这里插入图片描述
pass:

i=0
while i<5:
    if i==3:
        pass
    else:
        print(i)
    i+=1
print('end')

结果:
在这里插入图片描述

str1='abcdefg'
for temp in str1:
    if temp=='c' or temp=='f' or temp=='g':
        continue
    else:
        print(temp)

在这里插入图片描述

str2='abcdefg'
for a in str2:
    if  a in 'cde':
        break
    print(a)

在这里插入图片描述

i = 0
while i<3:
    j=0
    while j<3:
        if j==1:
            break
        print(i,j)
        j+=1
    i+=1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值