给变量赋值的基本原理
当给变量赋值的时候,会现在内存中开辟空间保存数据(开辟的空间大小由数据来决定)然后将数据对应的数据空间进行关联。
重新给便力量赋值的时候,重新开辟新的空间保存新的数据(开辟的新空间大小由新数据决定),然后再将新数据对应的内存空间和变量进行关联。
运算符
python中的运算符包括:数学运算符、比较运算符、逻辑运算符、赋值运算符
1.数学运算符
+(加)-(减)*(乘)/(除)%(取余)//(整除)**(幂运算)
1.1 + - * / 和数学中的加减乘除功能一样,没有区别
注意:/的结果是浮点型
1.2 % 取模、取余
应用1:判断整数的奇偶性
根据整数对2取余的结果来判断是否是偶数
num = 165465
print(num % 2 == 0)
应用2:取整数的低位数
num = 165465
print(num % 10)
1.3 // 整除(商向下取整)
应用:取整数的高位数
num = 234
print(num // 100)
练习:将十位数取出来
num = 234
print(num // 10 % 10)
1.4 ** 幂运算
x**y 求x的y次方
print( 2 ** 3 ) # 2的3次方
print( 16 ** 0.5 ) # 开平方
2.比较运算符:>、<、==、>=、<=、!=
所有的比较运算符结果都是布尔值(True、False)
python中的比较运算符支持表示范围的连写
age = 18
print(10 < age < 20)
3.逻辑运算
and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
实际开发中逻辑运算的运算对象一般都是布尔值,结果也是布尔值
3.1 and 逻辑与运算
运算规则:
全部是True,结果才是True,只要由False结果就是False
应用:
如果希望多个条件同时满足,那么就使用and将条件进行连接,相当于生活中的并且
练习:定义两个变量分别保存学生的成绩和操评分,根据分数打印这个学生是否能拿奖学金(奖学金条件:绩点不低于3.5,操评分高于90)
grade = 3.9
sore = 89
print( grad >= 3.5 and sore > 90)
3.2 or 逻辑或运算
运算规则:
只要有一个是True,结果就是True,全部是False结果为False
应用:
多个条件中只要满足一个条件就可以,使用or,相当于生活中的或者
练习:判断一个数能否被3或7整除
num = 321
print(num % 3 == 0 or num % 7 == 0)
3.3 not 逻辑非运算
运算对象: not 条件
not True - False
not False - True
练习:判断一个数能否不能同时被3和7整除
num = 31566
print(not (num % 3 == 0 and num % 7 ==0))
练习:判断指定的年是否是闰年(闰年能被4整除不能被100整除,能被400整除)
year = 2000
print(year % 4 == 0 and year % 100 != 0 or year % 400 ==0)
3.4 逻辑运算符的对象不是布尔值
表达式1 and 表达式2 : 如果表达式1的值为True,输出结果为表达式2的值,如果表达式1的值为False,输出结果为表达式2的值
表达式1 or 表达式2 :如果表达式1的值为True,输出结果为表达式1的值,如果表达式1的值为False,输出结果为表达式2的值
print(7 adn 8) # 8
print(7 or 8) # 7
数据的布尔值怎么确定:所有为零为空的数据的布尔值都是False,如(0、-0、0.0、’’、[]、{}、()、None)
print(not 7) # False
print(not 0) # True
3.5 短路操作
表达式1 and 表达式2 : 如果表达式1的结果是False,程序不会执行表达式2
表达式1 or 表达式2 : 如果表达式1的结果是True,程序不会执行表达式2
4.赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
所有的赋值运算符最终目的都是为了给变量赋值,所以赋值运算符的左边必须是变量
4.1 =
变量 = 数据 :将右边的数据赋值到左边的变量
num = 10
4.2 = 复合的赋值运算符
变量 += 数据 :将变量中的数据取出来和指定数据运算,然后将结果赋值给变量
num = 10
num += 5
print(num) # 15
注意:复合的赋值运算符左边变量必须是已经赋值过的变量
5.优先级
数学运算符>比较运算符>逻辑运算符>赋值运算符
** > *、/、%、// > +、-
有括号先算括号里面的
and的优先级比or高