变量和运算符与分支
定义变量的和变量赋值的原理
python定义变量的时候
1)先在堆中申请内存(申请多大看被赋值的数据需要多大的内存)
2)将数据保存在内存区域中
3)让变量和保存数据的内存进行关联(让变量保存数据的内存地址)
重新给变量赋值的时候
1)会重新申请新的内存(申请多大看被赋值的数据需要多大的内存)
2)将数据保存在内存区域中
3)让变量和保存数据的内存进行关联(让变量保存数据的内存地址)
id(变量/数据)
获取变量中关联的数据在内存中的地址
数学运算符
数学运算符: +(加)、-(减)、*(乘)、/(除)、//(整除)、%(取余、取模)、**(幂运算)
加减乘除运算
# python的加减乘除与数学中运算一样
# 加减乘运算中有浮点数,结果就是浮点数,如果都是整数,结果为整数
print(7+1) # 8
print(7+0.1) # 7.1
print(7-1) # 6
print(7-0.1) # 6.9
print(7*1) # 7
print(7*0.1) # 0.7
# 除法运算的结果一定是浮点数
print(5 / 2) # 2.5
print(4 / 2) # 2.0
%(取余,取模)
# x % y - 求x除以y的余数
print(10 % 3) # 1
print(10 % 2) # 0
# 获取低位数
print(234 % 10) #4
print(2834 % 100) #34
# 可以判断数的奇偶 y = x % 2 当y = 1 时 x为奇数;当y = 0 时 x为偶数
//(整除)
#//(整除) - 求商,商向小取整
print(5 // 2) # 2
print(3.8 // 2) # 1.0
print(-5 // 2) #-3
# 去掉低位数
print(876 // 10) #87
**(幂运算)
# x ** y - x的y次方
print(3 ** 5) # 243
print(2 ** 3) # 8
print(16 ** 0.5) # 4.0
print(8 ** (1/3)) #2.0
print(2 ** (-3)) #0.125(1/8;1/(2**3))
比较运算符
比较运算符: >(大与)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)
所有比较运算符的运算结果都是布尔值
print(10 > 20) # False
print(10 < 20) # True
print(10 >= 20) # False
print(10 <= 20) # True
print(10 == 20) # False
print(10 != 20) # True
python中可以直接通过比较运算符来表示范围
x=8
print(0 <= x <=10) #True
逻辑运算符
逻辑运算符: and(与)、or(或)、not(非)
优先级 not > and > or
and(逻辑与运算)
# and 用于需要多个条件同时成立的时候
# 条件1 and 条件2 - 两个条件都是True,结果才是True;只要有一个是False结果就是False
True and False # False
False and True # False
False and False # False
True and True # True
or(逻辑或运算)
# or 用于需要多个条件只要有一个成立就可以的情况
# 条件1 or 条件2 - 两个条件都是False,结果才是False;只要有一个是True结果就是True
True or False # True
False or True # True
False or False # False
True or True # True
not(逻辑非运算)
# 对一个条件进行否定 (当一个条件正向写的时候情况很多很复杂,反向却很简单时)
# not 条件 - 当条件为True,结果为False;当条件为False,结果为True
not True # False
not False # True
赋值运算符
赋值运算符: =、+=、-=、*=、/=、%=、//=、**=
所有赋值运算符的功能都是将数据直接或间接存储到一个变量中,不会产生任何结果
print(a=10) # 报错
b=0
print(b+=10) # 报错
复合的赋值运算符
# +=、-=、*=、/=、%=、//=、**=
# 变量 += 数据 - 将变量中的数据取出来和后面的数据进行加法运算,将运算结果再赋值给前面的变量
# 注意: 前面的变量必须是已经赋值过的变量
b = 10
b += 2 # b = b + 2 = 10 + 2 = 12
print(b) # 12
# 变量 -= 数据 - 将变量中的数据取出来和后面的数据进行减法运算,将运算结果再赋值给前面的变量
b -= 3 # b = b - 3 = 12 - 3 = 9
print(b) # 9
# 变量 *= 数据 - 将变量中的数据取出来和后面的数据进行乘法运算,将运算结果再赋值给前面的变量
b *= 2 # b = b * 2 = 9 * 2 = 18
print(b) # 18
# /=、%=、//=、**= 同上
优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
数学运算符
优先级:
** > *,/,//,% > +,-
逻辑运算符
优先级 not > and > or
流程控制
顺序结构(默认)
代码从上往下依次执行,每条语句执行一次
分支结构(if)
Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
if单分支结构 - 满足条件执行某个操作,如果条件不满足这个操作就不执行(if)
'''
if 条件语句
代码段
if - 关键字;固定写法
条件语句 - 任何有结果的表达式
: - 关键字;固定写法
代码段 - 从结构上就是和if保持一个缩进的一条或者多条语句;就是满足条件的时候才执行的代码
'''
num = 24
if num % 2 == 0:
print('偶数') #当num % 2 == 0 成立 控制台打印偶数
if双分支结构 (if…else)
'''
if 条件语句:
代码段1
else:
代码段2
if - 关键字;固定写法
条件语句 - 任何有结果的表达式
: - 关键字;固定写法
代码段1 - 从结构上就是和if保持一个缩进的一条或者多条语句;就是满足条件的时候才执行的代码
else - 关键字;固定写法
代码段2 - 从结构上就是和if保持一个缩进的一条或者多条语句;就是不满足条件的时候才执行的代码
'''
num = 24
if num % 2 == 0:
print('偶数') #当num % 2 == 0 成立 控制台打印偶数
else:
print('奇数') #当num % 2 == 0 不成立 控制台打印奇数
if多分支结构(if…elif…else)
'''
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
...
elif 条件语句n:
代码段n
else:
代码段n+1
if - 关键字;固定写法
条件语句 - 任何有结果的表达式
: - 关键字;固定写法
代码段1 - 从结构上就是和if保持一个缩进的一条或者多条语句;就是条件语句1为True的时候才执行的代码
elif - 关键字;固定写法
代码段2...n - 从结构上就是和if保持一个缩进的一条或者多条语句;就是条件语句2...n为True的时候才执行的代码
else - 关键字;固定写法
代码段n+1 - 从结构上就是和if保持一个缩进的一条或者多条语句;就是不满足所有条件的时候才执行的代码
后面的条件是在前面的条件不成立的前提进行判断,所有条件都不成立执行else后的代码段
'''
age = 18
if age < 18:
print('未成年') #当age<18 成立时控制台打印未成年
elif age<40:
print('青年') #当age<30 成立时控制台打印青年
elif age<60:
print('中年') #当age<50 成立时控制台打印中年
else:
print('老年') #当age<18,age<30,age<50 都不成立时控制台打印老年