day2_运算符和分支结构

文章目录

总结

1.运算符

python中常用的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符

1) 数学运算符

a. +(加) -(减) *(乘)/(除)

加减乘除和数学中的一样

print (2 + 1)
print (2 - 1)
print (2 * 7)
print (2 / 3)
b. %(取余/模)
应用一:判断一个属是否能被另外一个数整除
print( 6 % 2)
应用二:取一个数的低位
print ( num % 10 )
c. //(整除)
print ( 5 // 2 )
print (9.7 // 3)
d.**(幂运算)
print ( 2 ** 3 )
print ( 81 ** 0.5 )

2) 比较运算符

==、!=、>=、<=、>、<

a.所有比较运算符的运算结果都是布尔值
b. python和别的语言的区别

python中的比较运算符指出表示范围的连写方式

x = 0.4
print(0<=x<=1)

3) 逻辑运算符

and、or、not

a. and(逻辑与)
应用场景

要求多个条件同时满足,将多个条件用and连接

运算符规则

两个都是True结果才是True,否则结果是False

T and T == T

T and F == F

F and F == F

F and T == F

练习

写出一个数同时能被3和7整除的条件

print('判断是否能同时被3和7整除')
num = int(input('请输入一个数'))
res = (num % 3 == 0) and (num % 7 == 0)
print(res)
print('判断是否能同时被3和7整除')
num = int(input('请输入一个数'))
res = num % 21 == 0
print(res)
b. or(逻辑或)
应用场景

要求多个条件中只要有以一个满足,将多个条件用or连接

运算符规则

只要有一个为True结果就是True,否则结果为False

T or T == T

T or F == T

F or T == T

F or F == F

练习

写出一个数能被3或7整除的条件

print('判断是否能被3或7整除')
num = int(input('请输入一个数:'))
res = (num % 3 == 0) or (num % 7 == 0)
print(res)
c. not(逻辑非)
Ⅰ. 应用场景

对一个条件进行否定

Ⅱ. 运算符规则

not T == F

not F == T

Ⅲ. 练习
①. 写出一个数不能被3和7整除的条件
num = int(input('请输入一个数:'))
print('判断不能同时被3和7整除')
res = not ((num % 3 == 0) and (num % 7 == 0))
if not res:
    print('不满足条件')
else:
	print('满足条件')
②. 判断一个数是否是偶数
num = int(input('请输入一个数:'))
if num % 2 == 0 :
	print('是偶数')
else:
	print('奇数')
③. 判断一个数是否能被3整除,且个位数是1
num = int(input('请输入一个数:'))
if num % 3 == 0 and num % 10 == 1:
	print('能被3整除且个位数是1')
else:
    print('不能')
④. 判断一个数的个位数加上十位数的和是否是偶数
num = int(input('请输入一个数:'))
while num != 0:
    if ((num % 10) + (num // 10 % 10) % 2 == 0:
        print('个位数加上十位数的和是偶数')
    else:
        print('个位数加上十位数的和不是偶数')
d.扩展
Ⅰ.短路操作

逻辑与的短路操作:

①. 表达式1 and 表达式2

表达式1结果False,则表达式2不执行

②. 表达式1 or 表达式2

表达式1为True,则2不执行

def func1():
    print('func1')
print(False and func1())
print(True or func1())
Ⅱ. 运算对象不是布尔值
①. 表达式1 and 表达式2

如果表达式1的布尔值是True,则整个与运算的结果是表达式2。而如果表达式1是True,则结果是表达式2

②. 表达式1 or 表达式2

如果表达式1的布尔值是False,则整个与运算的结果是表达式2。而如果表达式1是True,则结果是表达式1

③. 补充

数据的布尔值

python中的所有数据都有布尔值,所有零值和空值对应的布尔值是False,其他都是True

print(7 and 8)   #8
print(0 and 8)   #0
print(0 or 8)    #8
print(7 or 8)    #7
print(not None)  #True

4)赋值运算符

=、+=、-=、*=、/=、%=、//=、**=

a. 重要结论:
Ⅰ. 所有的赋值运算都是用来给变量赋值的,没有计算结果
Ⅱ.所有赋值运算符的左边都是变量

5) 总结

a. 优先级比较
Ⅰ. 数学运算符>比较运算符>逻辑运算符>赋值运算符
Ⅱ. ** > * 、/、%、// > +、-
Ⅲ. 括号优先

2. 分支结构

1) 流程控制

a. 顺序结构

代码从上往下一条一条执行,每条只执行一次

b. 分支结构

根据条件的不同,执行或者不执行不同的语句

c.循环结构

重复执行

2) 分支结构

python只有if,没有switch

a. if单分支结构 - 满足条件执行某个操作,条件不满足的时候对应的操作不执行
if 条件语句:
    代码段
Ⅰ. 写法

if:关键字,固定写法

条件语句:任何有结果的表达式,除了赋值语句以外的表达式,比如:数据、运算表达式、函数表达式等
:固定写法,半角

代码段:和if 保持一个缩进的一条或多条语句,满足条件才执行的代码

执行过程:先判断条件语句的结果是否为True

Ⅱ:练习
①.如果成年打印‘可以进网吧’
age = int(input('please input your age'))
if age >= 18 :
    print('可以进网吧')
②.闰年
year = int(input('please input year:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('闰年')
b. if双分支结构

满足条件执行一个操作,不满足的时候执行另一个操作

Ⅰ. 写法
if 条件语句:
	代码段1
else:
	代码段2
Ⅱ. 练习

如果指定的数是奇数,打印奇数,否则打印偶数

num = int(input('请输入数字'))
if num % 2:
	print('奇数')
else:
	print('偶数')
c. if多分支结构

根据不同的条件执行不同的操作

条件之间其中一个满足了,另外的条件绝对不满足

Ⅰ. 写法
if 条件语句1:
	代码段1
elif 条件语句2:
	代码段2
else:
	代码段N
Ⅱ. 练习

根据年龄的范围打印人生阶段

0-3 儿童,4-17少年,18-28青年,29-39壮年,40-59中年

①方法一:
age = int(input('请输入年龄:'))
if 0 <= age <= 3:
    print('儿童')
elif 4 <= age <= 17:
    print('少年')
elif 18 <= age <= 28:
    print('青年')
elif 29 <= age <= 39:
    print('壮年')
elif 40 <= age <= 59:
    print('中年')
elif 60 <= age:
    print('老年')
else:
    print('error')
②方法二
age = int(input('请输入年龄:'))
if 0 <= age <= 3:
    print('儿童')
elif age <= 17:
    print('少年')
elif age <= 28:
    print('青年')
elif age <= 39:
    print('壮年')
elif age <= 59:
    print('中年')
elif 60 <= age:
    print('老年')
else:
    print('error')

作业

选择题

  1. print(100 - 25 * 3 % 4) 应该输出什么? (B)

    A. 1

    B. 97

    C. 25

    D. 0

  2. 下列哪种说法是错误的(A)。

    A. 除字典类型外,所有标准对象均可以⽤于布尔测试

    B. 空字符串的布尔值是False

    C. 空列表对象的布尔值是False

    D. 值为0的任何数字对象的布尔值是False

  3. 下列表达式的值为True的是(B)。

    A. 3>2>2

    B. 1 and 2 != 1

    C. not(11 and 0 != 2)

    D. 10 < 20 and 10 < 5

  4. Python不⽀持的数据类型有(A)。

    A. char

    B. int

    C. float

    D. list

  5. (多选)n = 6784,以下能够获取到7 的⽅法有(CD)。

    A. n / 1000 % 100

    B. n % 1000 / 100

    C. n // 100 % 10

    D. n // 10 % 100 // 10

  6. 运⾏以下程序,当从键盘上输⼊12,运⾏结果是(A)。

x = (input())
print(type(x))

A. <class 'str'>

B. <class 'int'>

C. 出错

D. <class 'dict'>

  1. 下列表达式的运算结果是(D) 。

    a = 100
    b = False
    print(a * b > -1)
    

    A. False

    B. 1

    C. 0

    D. True

填空题

  1. 查看变量中数据的类型的函数名是(type())。
  2. 已知 x = 3 == 3 ,执⾏结束后,变量x的值为(True)。
  3. 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
  4. 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2)。

编程题

  1. 写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。

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

    的结果。

    num = int(input())
    if num % 10 != 0 and (num % 2 == 0 or num % 5 == 0):
        print(num, '能被2或5整除,且不能同时被整除', sep='')
    else:
        print(num, '不满足条件', sep='')
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

    时XX分XX秒’的⽅式表示出来。

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

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

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

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

    height = float(input('请输入身高(m)'))
    weight = float(input('请输入体重(kg)'))
    BMI = weight / height ** 2
    print(BMI)
    if 18.5 <= BMI <= 24.9:
        print('True')
    else:
        print('False')
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    score = float(input())
    if score >= 60:
        print('及格')
    else:
        print('不及格')
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = int(input('请输入年龄'))
    if age < 0 or age > 150:
        print('这不是人')
    elif age < 18:
        print('未成年')
    else:
        print('成年人')
    
  7. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = int(input('请输入a:'))
    b = int(input('请输入b:'))
    if (a - b) % 2:
        print(a - b)
    else:
        print(a, '-', b, '的结果不是奇数', sep='')
       print('及格')
    else:
        print('不及格')
    
  8. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = int(input('请输入年龄'))
    if age < 0 or age > 150:
        print('这不是人')
    elif age < 18:
        print('未成年')
    else:
        print('成年人')
    
  9. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = int(input('请输入a:'))
    b = int(input('请输入b:'))
    if (a - b) % 2:
        print(a - b)
    else:
        print(a, '-', b, '的结果不是奇数', sep='')
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值