day03运算符和分支

本文介绍了Python中的逻辑运算符,包括and、or和not的使用,以及如何通过这些运算符构建复合条件。接着讲解了赋值运算符的运用,如+=、-=等,并强调了运算符的优先级。文章还详细阐述了流程控制中的if单分支、双分支和多分支结构,以及for循环的语法和执行过程。
摘要由CSDN通过智能技术生成

运算符和分支

逻辑运算符:and,or,not(用机器语言描述条件,生活中的条件有两种,单一条件或者复合条件)

复合条件构建方式(1、 并且的方式连接 - and 2、 或者的方式连接-or)

not 对条件表示否定

一. 逻辑运算符

1. and(逻辑与运算)

'''
1)应用场景:用来连接要求同时成立的两个条件,相当于生活中的并且
2)运算规则:条件1 and 条件2 - 两个条件都成立,结果都是True
      True and True     -    True 
      True and  False   -    False 
      False and True    -    False 
      False and False   -    False 
'''
# 案例:判断num是否同时被3和7整除
num  = 345
# num 是否能够被3整除:num % 3 == 0
# num 是否能够被7整除:num % 7 == 0
print('num是否同时被3和7整除:',num % 3 == 0 and num % 7 == 0)
# 练习1:判断 num 是否是能够被7整除的偶数
num = 34
print('num是否是能够被7整除的偶数:',num % 7 == 0 and num % 2 == 0)
# 练习2:判断 num 是否是个位数能被3整除的数
num1 = 109
print('num1是否是个位数能被3整除的数:',num1 % 10 % 3 == 0)
num2 = 109.9  # 和取余有关,不是整除
print('num2是否是个位数能被3整除的数:',int (num2 % 10) % 3 == 0)

2. or(逻辑或运算)

"""
1)应用场景:如果要求两个条件中有一个条件成立就行,就使用这个or来对这两个条件进行连接。
2)运算规则:条件1 or 条件2  -  只要有一个条件成立,结果就是True,否则结果是False
     True or True    -   True
     True or False   -   True
     False or True   -   True
     False or False  -   False
"""
# 练习1:判断num是否能够被3或者7整除
num = 23
print('num是否能够被3或者7整除:',num % 3 == 0 or num % 7 == 0)
# 练习2:判断year对应的年份是否是闰年
# 什么是闰年:闰年分为世纪闰年(能被400整除的年)和普通闰年(能被4整除但是不能被100整除的年
year = 2008

# 世纪闰年: year % 400 == 0
# 普通闰年: year % 4 == 0 and year % 100 != 0
print('year对应的年份是否是闰年:',year % 400 != 0 or (year % 4 == 0 and year % 100 != 0))     # True

3. not(逻辑非)

"""
1)应用场景:对条件进行否定的时候使用,相当于生活中的’不‘
2)运算规则:not 条件      -      对条件进行否定
      not True          -       False
      not False         -        True

"""
# 案例 1:判断age对应的值是否不大于18
age = 29
print(not age > 18)
print(age <= 18)
# 案例 2:判断num是否不是偶数
num = 29
print(not num % 2 == 0)
print(num % 2 != 0 )
print(num % 2 == 1)
# 案例 3:判断 num 是否不能同时被3和7整除
num = 23
print(not(num % 3 == 0 and num % 7 == 0))

# 逻辑整理:以上3案例,num 是否不能同时能被3和7整除:能被3整除但是不能被7整除、能被7整除但是不能被3整除、既不能被3整除也不能被7整除

num = 23
print('num是否不能同时被3和7整除:',(num % 3 == 0 and num % 7 != 0 ) or (num % 7 == 0 and num % 3 != 0 ) or (num % 3 != 0 and num % 7 != 0))   
# num是否不能同时被3和7整除: True
# 能同时被3和7整除的数,一定能够被3和7的最小公倍数整除,3和7的最小公倍数是21
print(num % 21 != 0)

二. 赋值运算符

赋值运算符:=、+=、-=、*=、/=、%=、//=、=**

注意:不管是什么样的赋值运算符,最终的目的都是为了赋值,一个数据保存到变量中

1. =

变量名 = 数据 - 直接将指定数据保存到指定的变量中
注意:= 前面的变量名可以是没有定义过变量的变量,也可以是已经定义过变量的变量名

a = 10
b = 20
a = 100  # 重复赋值,是为最新的值
print(a)

2. +=

变量名 += 数据 - 先将变量中保存的数据取出来,和后面的数据进行加法运算,再将运算的结果保存到前面的变量中

注意:这的变量必须是已经定义(赋值)过的变量

b += 10
print(b)    # b == 30
b -= 5
print(b)    # b == 25
b %= 3
print(b)    # b == 1

三. 运算符和优先级

python中不同的运算符的优先级不同,优先级高的运算符先算。

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

数学运算符:**(幂运算) > *、/ 、%、// > +、-

逻辑运算符:and > or

有括号先算括号里面的

四. 流程控制

流程控制 - 通过代码控制程序执行过程

根据代码执行过程的不同,可以将代码分为以下三种结构

  • 顺序结构 - 代码从上往下一条一条执行,每条代码执行一次
  • 分支结构(if) - 根据条件选择执行或者不执行相关代码
  • 循环结构(for、while) - 代码写一遍,然后重复执行多次
print('你好')

age = 26
if age >= 18:
    print('成年')
else:
    print('未成年')

五.if分支结构

1. if 单分支结构:如果 xxx 就 xxx

条件成立执行某个操作,条件不成立这个操作就不执行

"""
1)语法
if 条件语句:
    代码块
    
2)说明
if        -       关键字,固定写法
条件语句    -      可以是如何有结果的表达式,一般判断语句
:         -       固定写法(注意必须是英文输入法下面的冒号)
代码块     -       结构上是和if保持的一个缩进的一条或者多条语句(至少一条;)
                  逻辑上,代码块就是需要满足条件才执行的代码
"""                

案例 1 :如果num是偶数就在控制台打印‘偶数’

num = 28
if num % 2 == 0:
    print('偶数')

案例 2:根据score的值在控制台打印’不及格‘

score = 8
if score < 60:
    print('不及格')

score = 89
if score < 60:
    print('不及格')
else:
    print('及格')

2.if双分支结构:如果xxx就xxx否则就xxx

条件成立执行某个操作,这个条件不成立的时候执行另外一个操作

"""
语法:
if 条件语句:
    代码块1
else:
    代码块2
    
代码块3(不管条件成立不成立都会执行)
"""

案例1:如果num是偶数就会在控制台打印’偶数‘,否则就打印’奇数‘

if num % 2 == 0
    print('偶数')
else:
    print('奇数')

案例2:根据score的值在控制台打印’不及格‘或者’及格‘

if score < 60
    print('不及格')
else:
    print('及格')

3.if多分支结构:如果 xxx 就 xxx,如果 xxx 就 xxx,如果 xxx 就 xxx,…

根据不同的条件做不同的事情

语法:
if 条件1:
    代码块1
elif 条件2:
    代码块2
elif 条件3:  
    代码块3     # elif结构根据情况可以有多个
...
else:
    代码块N     # 可以有,也可以没有
    
执行过程:先判断条件1是否成立,如果成立直接执行代码块1然后整个分支结构结束;
如果条件1不成立才去判断条件2是否成立,成立就执行代码块2然后整个分支结构结束;
如果条件2不成立才去判断条件3是否成立......如果前面的条件都不成立,才会执行else后面的代码块。
总结:后面的条件是在前面的条件不成立的情况下进行判断的。
案例1:根据score的值打印学生的等级
# >=90  - A;  80 ~ 89 - B;  60 ~ 79- C; <60 - D
# 情况1:不考虑成绩不在有效范围内
score = 67
if score >= 90:
    print('A')
elif 80 <= score <= 89:
    print('B')
elif 60 <= score <= 79:
    print('C')
elif score < 60:
    print('D')
# 代码可以简化之后, 符合前一个条件,后面的范围可以逐步缩小
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 60:
    print('C')
else:
    print('D')

六.for循环

循环结构的作用:让代码重复执行

1. for循环

"""
1)语法:
for 变量 in 序列:
    循环体

2)说明:
for     -    关键词;固定写法
变量名   -    可以是任何变量的变量名
in      -    关键字;固定写法
序列     -    任何容器型数据类型的数据。常见的序列:字符串、列表、字典、元组、集合、迭代器、生成器、range等
:       -    固定写法
循环体   -    结构上,就是和for保持一个缩进的一条或者多条语句(至少一条)
             逻辑上,循环体就是需要重复执行的代码。
补充:元素  -  一个容器可以同时保存多个数据,其中每一个独立的数据就是这个序列的元素


3)执行过程
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环的循环次数和序列中元素的个数有关

"""
for x in 'abc':
    print(x)
    print('hello world!')
    print('你好')
作业题
  1. 写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。

    num = int(input('请输入一个数:'))
    if num % 2 == 0 and num % 5 == 0:
        print(num, '该数字能同时被2和5整除')
    else:
        print(num, '该数字不能同时被2和5整除')
    
  2. 写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应。

    num = int(input('请输入一个数字:'))
    if num % 2 == 0 and num % 5 != 0:
        print(num % 2, num % 5, '该数字能被2整除但是不能被5整除')
    elif num % 2 != 0 and num % 5 == 0:
        print(num % 2, num % 5, '该数字能被5整除但是不能被2整除' )
    else:
        print('该数字不符合要求')
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX时XX分XX秒’的⽅式表示出来。

    例如:100秒表示成**0时1分40秒**

    a = 15678
    h = a // 3600
    m = (a-h * 3600)//60
    s = a - h * 3600 - m * 60
    print(h ,'时', m , '分', s , '秒')
    
  4. 定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!

    公式:体重(kg) / (身⾼(m)的平⽅值) 在18.5 ~ 24.9之间属于正常。

    输出格式:是否正常:True / False

    h = float(input('请输入一个人的身高:'))
    w = float(input('请输入一个人的体重:'))
    bmi = w / (h ** 2)
    
    if 18.5 <= bmi <= 24.9:
        print('正常','True')
    else:
        print('不正常','False')
    
  5. 写程序判断指定的整数(num)是否是水仙花数。

    水仙花:一个三位,其各个位数的立方和等于这个数本身,比如:153是水仙花数,因为1^3 + 5^3 + 3^3 等于153

    num = int(input('请输入一个三位数:'))
    a = num // 100
    b = num % 100
    c = num % 10
    if a ** 3 + b ** 3 + c ** 3 == num:
        print('该整数是水仙花数')
    else:
        print('该整数不是水仙花数')
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值