9月15日知识梳理
一、变量
1.同时定义多个变量
1)同时定义多个变量相同的值:
变量名1 = 变量名2 = 变量名3 = … = 数据
例:
x = y = z = 0 print(x, y, z)
2)同时定义多个变量赋不同的值:
变量名1,变量名2,变量名3,… = 数据1,数据2,数据3,…
(变量个数和数据个数需要保持一致)
name, age ,gender = 'GM', 30, '男' print(name, age, gender)
2.变量重新赋值
重新给变量赋值以后使用变量使用的是变量中最新的值
score = 100 print(score) score = 98 print(score)
3.python定义变量和重新给变量赋值的原理
计算机内存单位:
最小单位:位(bit)
单位由小到大:位(bit) 字节(byte) kb Mb G T
1byte = 8bit 1kb = 1024byte 1Mb = 1024kb 1G = 1024Mb 1T = 1024G
python在定义变量时会申请内存保存数据,内存申请多大看被保存的数据需要多大。
c语言用的上一个数据申请的内存,容易溢出和浪费内存,优势是运行速度加快不用重新申请内存。
重新给变量赋值的时候,会重新申请新的内存,新的内存的大小由新的数据大小决定,然后变量回合新的内存关联,原来调取的内存自动回归销毁
id(变量) ----获取变量对应的内存地址
num =100 print(id(num)) num = 95 print(id(num))
二、数学运算符
1.数学运算符有哪些
数学运算符包括:
+: 加号,两个数相加
-:减号,两个数相减
*:乘号,两个数相乘
/:除号:两个数相除
%:百分号,功能为取余(相除取余数)
//:双斜杠,功能为整除
**:双星号,功能为幂函数
2.数学运算符的功能
1)加减乘除:+、-、*、/和数学中的加减乘除功能一模一样
加、减、乘的结果有没有浮点数看运算对象是否是整数或者小数
print(10+20) print(2-5) print(2*5)
除法运算结果是浮点数,4除以2得数为2.0
print(5/2) print(4/2)
2)取余:%
功能:取余(取模)(数学功能中的求余数)
x % y ---------求x除以y的余数
被除数 = 除数 x 商 + 余数
print(10%3) print(15%3)
%应用运算场景1:判断两个数是否存在整除关系 ----判断两个数的余数是否为零
print(10 % 2)
%应用运算场景2:
取整数的低位数 :
对10取余得到的单位就是个位数,对100取余得到的单位是后两位,对1000取余得到的单位事后三位,以此类推
num = 2346 print(num % 10) print(num % 100)
3)整除://
商向小取整,负数也取小的那个数
(判断整除关系只和取余有关)
print(5/2) #2.5 print(5//2) #2 和商相邻的整数2和3较小的那个,所以取2 print(1.8//2) # 0 0.9 1和0 0小取0 print(-5//2) #-3 -2.5 -3和-2 取小的为-3
整除应用运算场景:去掉低位数
去掉个位数整除10 ,去掉后两位整除100 ,去掉后三位整除1000,以此类推
num = 2342 print(num // 10) print( num // 100) print( num // 1000)
练习:
# 练习:获取任意一个正整数的十位数 # num1 = int(input('请输入数字')) # print(num1 % 100 // 10) # print(num1 //10 %10) # 练习;获取任意一个正整数的百位数 # num2 = int(input('请输入数字')) # print(num2 % 1000 // 100) # print(num2 //100 %10) # # num3 = int(input('请输入数字')) # print(num3 % 10000 // 1000) # print(num3 //1000 %10)
4)幂运算:**
x ** y --求x的y次方
print(8**3) print(1.3**4)
计算机浮点数时存储会存储大约数,并不能精确,看浮点数约等于值即可(计算机本身存储原因)
开可以通过这个算开方
print(8**(1/3))
三、比较运算符
比较运算符包括:>、 <、 ==、 !=、 >=、 <=
比较运算符判断两个数据之间是否存在某种关系
所有的比较运算符的运算结果基本都是布尔值
print(10>20) print(10 < 20) print(10 == 20) print(10!=20) print(10>=20) print(10 <= 20)
python的比较运算符支持连写表示范围
x = 0.5 print(0 <= x <= 1)
只有python语言可以这么写。
四、逻辑运算符
逻辑运算符包括:
and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
1.and(逻辑与运算)
1)应用场景
用于需要多个条件同时满足的时候,相当于生活中的并且
2)运算规则:条件1 and 条件2
两个都是True结果才是True,只要有一个条件不成立则整个结果就是False
True and True ->True
False and True ->False
True and False ->False
False and False ->False练习:
#练习:写出判断一个数是否能同时被3和7整除的条件 num = 67 a = num % 3 b = num % 7 print(a == 0 and b == 0) print(num % 21 == 0)#如果同时被3和7整除,那一定也可以被21整除 # 练习:判断指定数是否是能被3整除的偶数 num= 6 print(num % 3 == 0 and num % 2 == 0 ) print(num % 6 == 0)
2.or(逻辑或运算)
1)应用场景
用于需要多个条件,只要有一个条件满足就行的时候,相当于生活中的或者
2)运算规则:条件1 or 条件2
多个条件中只要有一个条件是True,结果就是True,两个都是False,结果才是False
True or False ->True
True or True ->True
False or True ->True
False or False ->False练习:
# 练习1:判断指定数是否能被5或者7整除 num = int(input('请输入数字:')) print(num % 5 == 0 or num % 7 == 0) #练习2:判断指定年份是否为闰年 year = int(input('请输入年份')) print(year % 4 == 0 and year % 100 != 0 or year % 400 == 0 )
3.end(逻辑非运算)
1)应用场景
对某一条件进行否定,
通常用语如果正向写条件情况很多很复杂反向写条件却很简单的时候,条件前加not
2)规则:not 后面加条件
not True -> False not False ->True
练习:
num1 = 90 print(not num1 > 10) print(num1 <= 10)
逻辑运算符练习:
# 练习:判断一个数不能同时被3和7整除条件 # 情况1: 能被3整除不能被7整除 # 情况2: 能被7整除不能被3整除 # 情况3: 既不能被7整除也不能被三整除 # 条件反向写(能同时被3和7整除):num % 21 ==0 # 不能同时被3和 7整除:not num % 21 == 0 print(not num % 21 == 0)
4.逻辑运算符拓展
1)短路操作
条件1 and 条件2
and的短路:如果条件1是False 那么条件2对应的代码不会执行条件1 or 条件2
or的短路:如果条件1是True 那么条件2对应得的代码不执行
2)逻辑运算符的通用运算规则
数据1 and 数据2 -->数据2 -如果短路了就是第一个,如果没有短路数据就是数据2
数据1 or 数据2 -->数据1print(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 (7 or 8) #7
重要结论:python所有的数据都由布尔值都能转换成布尔值
如果数据是0值和空值(字符串空串和None和数字0)转换成布尔值为False,其他数据都是True
print(bool(0), bool(0.0), bool(''), bool(None)) print(bool(0.34), bool(8), bool(' '), bool(-2.34),bool('abc'), bool(-2), bool('1'))
not 的结果一定是布尔值
五、赋值运算符
1.赋值运算符:= 、 +=、 -=、 *=、 %=、 /=、 //=、 **=
1)赋值运算符的作用不是计算出一个结果,二是将数据保存到变量中
2)所有的赋值运算符的左边都必须是变量
2.= 等号 :功能赋值符号,右边的数据赋值给左边的变量
a= 100
3.+=、 -=、 *=、 %=、 /=、 //=、 **=
变量 += 数据 ----将变量数据取出来和等号后边数据进行加法运算,得到的结果重新赋值给变量
其他的复合运算符规则和+=相同
变量中之前必须已经被赋值才能进行复合运算符赋值
强调:所有的赋值运算没有结果
print(a=0)会报错--------赋值运算没有结果没法输出
a += 10 print(a) a -= 20 print(a)
六、运算符的优先级
1.四种运算符优先级顺序
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
2.数学运算符中:
** > *、/、//、%(同级按顺序) > +、-
3.有括号先算括号里面的(此处括号指小括号’()’)
result = 100 + 2 * 3 ** 2 > 20 * 10 - 3
如果数学运算中遇到布尔值,那可以吧False看成0,把True看成1
result = 100 + (10 > 20) result = 100 + True print(result) height = float(input('请输入您的身高')) weight = int(input('请输入您的体重')) target = weight / height ** 2 print(18.5 <= target <= 24.9)