变量和底层逻辑(2021-9-15)

本文详细介绍了Python中变量的定义与赋值,包括同时定义多个变量、变量重新赋值及其内存管理原理。还探讨了数学运算符、比较运算符、逻辑运算符的用法及运算规则,并通过实例展示了各种运算符的运用。此外,还提到了赋值运算符的使用和运算符的优先级。
摘要由CSDN通过智能技术生成

变量和底层逻辑(2021-9-15)

同时定义多个变量

python定义变量的底层逻辑

1、变量

1)同时定义多个变量
1、同时定义多个变量赋相同的值:变量名1 = 变量名2 = 变量名3 =… = 数据
x = y = z = 0
print(x, y, z)
2、同时定义多个变量赋不同的值:变量名1, 变量名2, 变量名3, … = 数据1, 数据2, 数据3, …
name, age, gender = '小明', 18, '男'
print(name, age, gender)
2)变量重新赋值

重新给变量赋值之后,使用变量使用时变量中最新的值

score = 100
print(score)
score = 95
print(score)

请添加图片描述

3)Pytion定义变量和重新给变量赋值的原理

1、Python在定义变量的时候会申请内)存保存数据,内存申请多大看被保存数据需要多大,重新给变量赋值的时候,会申请新的内存,新的内存的大小由新的数据大小决定,然后变量会和新的内存关联,原来的内存会自动销毁。
2、id(变量) - 获取变量对应的内存地址。

num = 100
print(id(num))

2、运算符

数学运算符:+、-、*、/、%、//、**

1)+、-、*、/和数学中的+、-、x、÷的功能一样

注意:除法运算的运算结果是浮点数

2)%(取余)取模

x % y — 求x除以y的余数

print(15 % 2)

应用1:判断两个数是否存在整除关系 - 判断两个数的余数是否为0
应用2:取整数的低位数
一个整数对10取余,能够获取这个数的个位数

一个整数对100取余,能够获取这个数的后两位数

num = 1234
print(num % 10)
3)// - 整除(商向小取整)
print(5 // 2)    # 2  2.5  3
print(-5 // 2)    # -3  -2.5  -2

应用场景:去掉低位数

print(num // 10)     # 123

练习:获取任意一个正整数的百位数

print(num // 100 % 10)
4)** - 幂运算

x ** y -求x的y次方

print(8 ** 3)    # 512
print(9 ** 0.5)    # 3
print(8 ** (1/3))    # 2

请添加图片描述

5)比较运算符:>、<、==(等于)、!=(不等于)、>=、<=

所有的比较运算符的运算结果都是布尔值

print(10 > 20)
print(10 < 20)
print(10 == 20)
 print(10 = 20)    # 错误
print(10 != 20)
print(10 >= 20)

python的比较运算符支持连写表示范围

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

请添加图片描述

6)逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)
1、and

1)应用场景:用于需要多个条件同时满足的时候,相当于生活中的并且

2)运算规则:条件1 and 条件2 - 两个都是True结果才是True,只要一个是False,结果就是False

True and True    --    True
True and False    --    False
False and True    --    False
False and False    --    False

练习:写出判断一个是否能同时被3和7整除的条件

num = 22
print('是否能同时被3和7整除:', num % 3 == 0 and num % 7 == 0)

练习:判断指定数是否能被3整除的偶数

num = 12
print('是否能被3整除的偶数:', num % 3 == 0 and num % 2 == 0)

请添加图片描述

2、or

1)应用场景:用于需要多个条件只要有一个条件满足的时候,相当于生活中的或者
2)运算规则:条件! or 条件2 - 两个条件中只要有一个条件是True,结果就是True,两个都是False的时候才是False

练习1:判断指定数是否能被5或7整除

num = 11
print('是否能被5或7整除:', num % 5 == 0 or num % 7 == 0)

练习2:判断指定的年是否是闰年

year = 2000
print('是否是闰年:', year % 4 == 0 and year % 100 != 0 or year % 400 == 0)

请添加图片描述

3、not

1)应用场景:对某一个条件进行否定(如果正向写条件很多很复杂,反向却很简单的时候,条件就反向写再加not)
2)运算规则:not条件
not True – False
not False – True
num = 100
print()

练习:写出判断一个数不能同时被3和7整除的条件
1、能被3整除但不能被7整除:num % 3 == 0 and num % 7 != 0
2、能被7整除但不能被3整除:num % 7 == 0 and num % 3 != 0
1、不能被3整除和不能被7整除:num % 3 != 0 and num % 7 != 0

num = 21

print((num % 3 == 0 and num % 7 != 0) or (num % 7 == 0 and num % 3 != 0) or (num % 3 != 0 and num % 7 != 0))

条件反向写:
能同时被3和7整除的条件:num % 21 == 0
不能同时被3和7整除的条件:not num % 21 == 0

print(not num % 21 == 0)

请添加图片描述

7)逻辑运算符扩展
1、短路操作

and的短路:如果条件1是False,那么条件2对应的代码不会执行
or的短路:如果条件1是True,那么条件2对应的代码不会执行

2、逻辑运算符的通用运算规则

print(True and 100) # 100
print(False and 100) # False
print(True or 100) # True
print(False or 100) # 100
print(7 and 8) # 8
print(not 7) # 7
print(not 0) # 0
(重)重要结论:python任何类型的数据都可以转换成布尔(都有布尔值),其中0值和空值是False,其他都是True

print(bool(0), bool(0.0), bool(''), bool(None))
print(bool(8), bool(-2), bool(0.1), bool(-0.3), bool('abc'), bool(''))

请添加图片描述

8)赋值运算符:=、+=、-+、*=、/=、%=、//=、**=
1、赋值运算符的作用不是计算出一个结果,而是将数据保存到变量中
2、所有赋值运算符的左边必须是变量
3、=

a = 10
b = 100

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

变量 += 数据 - 将变量中保存的数据和+=后面的数据进行加法运算,将运算结果重新赋值给前面的变量
注意:复合的赋值运算符前面的变量必须是已经赋值过的变量

a += 10
print(a)    # 20
a -= 5
print(a)    # 15
a %= 4
print(a)     # 3

强调:所有的赋值运算是没有结果的
print(a += 10) # 报错
请添加图片描述

9)运算符优先级:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
1、有括号先算括号里面的 - ()
result = 100 + 2 * 3 ** 2 > 20 *10 - 3
print(result)
2、如果布尔数据参与了数学运算,那么False就是0,True就是1
result = 100 + (10 >2)
print(result)

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值