python第二天

本文详细介绍了Python中的各种运算符,包括数学运算符、比较运算符、逻辑运算符和赋值运算符,以及位运算的基础知识。通过实例展示了如何使用这些运算符,并探讨了运算符的优先级。此外,还讲解了如何利用运算符进行条件判断,如判断数字奇偶性、闰年等,并探讨了短路操作和非布尔值在逻辑运算中的处理。
摘要由CSDN通过智能技术生成

#Day2

一、运算符

python中支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算(了解)
1.数学运算符:+(加法运算)、-(减法运算)、(乘法运算)、/(除法运算)、%(取余、取模)、//(整除)、**(幂运算)
+、-、
、/和数学中的±×÷的功能一模一样

print(5 + 2)  # 7
print(5 - 2)  # 3
print(5 * 2)  # 10
print(5 / 2)  # 2.5

1)% - 取余、取模(数学中的求余数!!!!!!!!!!!!!!!)
x % y - 求 x 除以 y 的余数
print(10 % 3) # 1
应用1:判断一个数是否能够被另外一个数整除

 num = int(input('请输入一个整数:'))
 print(num % 3)

应用2:取整数的低位数
x % 10 - 获取x的个位数; x % 100 - 获取x后两位数;…

  1. // - 整除(商取整)
    x // y - x除以y的商向小取整!!!得到的数字向小取整数
    向小取整!!!:1.9 -> 1 -1.9 -> -2 3.4 -> 3

应用1:去掉低位数

678 // 10 -> 67   678 // 100  ->  6
num = 19971016
print(num // 10000)   # 1997

练习:获取任意大于100的数的百位数

num = int(input('请输入一个大于100的数字:'))
print(num % 1000 // 100)  # 获取num的百位数

3)** - 幂运算
x ** y -> 求 x 的 y次方

print(2 ** 3)  # 8

如果次方数是 1/N 表示开 N 次方
开根号的结果数据都为浮点型

print(4 ** 0.5)  # 2.0
print(8 ** (1 / 3))  # 2.0

布尔值参与数学运算的时候0为False,1为True!!!!!!!!!!!!!!!!!

2.比较运算符:>、<、>=、<=、==、!=
所有的比较运算符的运算结果都是布尔值
print(10 > 20)

注意:python中的比较运算符支持连写的方式表示取值范围
age = 19
print(18 <= age <= 19)

3.逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)
“”"

  1. and - 逻辑与
    应用场景:相当于生活中的’并且’,当需要多个条件同时满足的时候使用
    运算规则:都是True结果就是True,只要有一个是False结果就是False
    True and True -> True
    True and False -> False
    False and True -> False
    False and False -> False
    “”"
    练习:写出一个数是否能同时被3和7整除的条件
num = int(input('请输入一个数字:'))
print('是否能同时被3和7整除:', (num % 3 == 0) and (num % 7 == 0))
print('是否能同时被3和7整除:', num % 21 == 0)  # 方法二

2)or - 逻辑或运算
‘’’
应用场景:相对于生活中的’或者’,需要多个条件中只要有一个条件满足的时候使用
运算规则:都是False结果就是False,只要有一个True结果就是True
True or True -> True
True or False -> True
False or True ->True
False or False -> False
‘’’
练习:写出判断闰年的条件
闰年 - 能被4整除但是不能被100整除,或者能被400整除

year = 2009
print('是否是闰年:', year % 400 == 0 or year % 4 == 0 and year % 100 != 0)
  1. not - 逻辑非运算
    ‘’’
    应用场景:对某一个条件进行否定
    运算规则:True 变 False,False 变 True
    not True -> False
    not False -> True
    ‘’’
age = 20
print(not age > 18)
 print(not age % 3 == 0 and age % 7 == 0)

什么时候用not:如果一个条件正向写很麻烦,但是反向写很简单,就反向写条件然后加not
4)短路操作
and 的短路操作:条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不会执行
or 的短路操作:条件1 or 条件2 - 如果条件1是True,那么条件2对应的代码不会执行
False and print(‘ig’)
True or print(’*****’)

5)运算对象不是布尔值
‘’’
实际开发的时候逻辑运算符的运算对象和运算结果一般都是布尔,但是面试的时候喜欢考运算对象不是布尔的情况

表达式1 and 表达式2 - 如果表达式1的结果是True,那么运算结果就是表达式2的值;
如果表达式1的结果是False,那么运算结果就是表达式1的值
表达式1 or 表达式2 - 如果表达式1的结果是False,那么运算结果就是表达式2的值;
如果表达式1的值是True,那么运算结果就是表达式1的值;
注意:表达式的值不是布尔,就转换成布尔再判断
怎么转:python中任何类型的数据都可以转换成布尔值,所有为0为空的值都会转换成False,
其他的值都是True
‘’’
a.布尔值转换
print(bool(0.0))
print(bool(‘dd’))
print(bool(135135131))
print(bool())

4.赋值运算符:=、+=、-=、=、/=、%=、//=、**=
所有的赋值运算符都是用来给变量赋值,赋值运算符的左边必须是变量;
复合的赋值运算左边的变量必须是已经赋值过的变量。
1) =
a = 10
2)复合的赋值运算符
a += 3 # a = a+3
print(a) # 13
a = 2 # a = a2 = 13
2
print(a) # 26
a %= 3 # a = a%3 = 26%3
print(a) # 2
5.运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
数学运算符:** > *、/、%、// > +、-
逻辑运算符:and > or
如果有括号先算括号里面的内容

6.*位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)、<<(左移)
位运算的运算效率比一般的运算符都要高(高出几十倍甚至几百倍)
应用1:判断整数的奇偶性 - 数字对1进行按位与运算,如果结果是1就是奇数,结果是0就是偶数
print(10 & 1, 36 & 1, 500 & 1) # 0 0 0 0
print(3 & 1, 99 & 1, 155 & 1) # 1 1 1 1

应用2:
数字 << N - 数字快速乘 2N
数字 >> N - 数字快速整除 2
N
数字 << 1 - 数字快速乘2:数字*2
数字 >> 1 - 数字快速整除2:数字//2
print(4 << 1, 5 << 1, 5 << 2) # 8 10 20
print(4 >> 1, 5 >> 1, 5 >> 2) # 2 2 1

print(bool(1 and 2 != 1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值