10.13 PYTHON学习总结
同时定义多个变量
方法1:
变量名1=变量名2=变量名3=变量名N=数据(赋同值)
A=B=C=1
print(A,B,C)
方法2:
变量名1,变量名2,变量名3,变量名N=数据1,数据2,数据3,数据N(赋不同值)
A,B=1,2
print(A,B)
应用:已知两个变量,用代码交换两个变量值
m=1
n=2
t=m
m=n
n=t
print(m,n)
或者 :
m=1
n=2
m,n=n,m
print(m,n)
PYTHON定义变量与重新赋值的底层逻辑
先申请内存(多大取决于数据多大)然后将数据存储在内存中,最后再让变量与内存关联。重新赋值,是重新申请新的内存,新数据存储在新内存中,然后将原变量与新内存关联。挖坑-插旗-挖坑-拔旗-插旗-埋坑
数学运算符
有+、-、*、/、%、//、**等等
其中,+、-、*、/ 和数学中的+、-、×、÷的功能一模一样
如果运算对象中有一个是浮点数,结果就是浮点数,除法运算的结果都是浮点数。
print(2 + 5)
print(2 - 5)
print(2 * 5)
print(2 / 5)
print(4.0 / 2)
% 取余操作
x % y就是求x除以y的余数
取余作用:
判断一个数是否能够被另外一个数据整除
取整数的低位数
print(234 % 10, 23 % 10, 129 % 10)
print(234 % 100, 9012 % 100)
// 整除操作
x // y x除以y的商向小取整
其中,如果运算对象中有一个数浮点数,那么结果就是浮点数
相关练习
输入任意一个正整数,获取这个数的十位数
234 -> 3
num = 2341
print(num // 10 % 10)
或者
num = 2341
print(num % 100 // 10)
** 幂运算
x ** y 求x的y的次数
print(2 ** 3) 2的3次方
print(4 ** 2) 4的平方
print(3.3 ** 2) 3.3的平方
比较运算符
有 >、<、>=、<=、==、!=(不等于)
值得注意的一点是,所有比较运算符的运算结果都是布尔值。
逻辑运算符
有and、or、not
and ( 逻辑与运算)
应用场景:需要多个条件同时满足,就用and将条件连接,相当于生活中的并且
运算规则: 条件1 and 条件2 - 两个条件只有一个是False结果就是False, 两个都是True结果才是True
True and True -> True
True and False -> False
False and Ture -> False
False and False -> False(全真则真,有假就假)
相关练习
写出num是否是大于100的奇数
num=99
num=99
print(num%2!=0 and num>100)
写出num是否能同时被3和7整除的条件
num = 21
print(num % 3 == 0 and num % 7 == 0)
或者:
num = 21
print(num % 21 == 0)
or ( 逻辑或运算)
应用场景:需要多个条件有一个条件满足就可以,使用or,相当于生活中的或者
运算规则:条件1 or 条件2 - 两个条件中只要有一个是True,结果就是True,两个都是False结果才是False
True or True -> True
True or False -> True
False or Ture -> True
False or False -> False(有真则真,全假才假)
相关练习
判断num是否能够被3或者5整除
num = 23
print(num % 3 == 0 or num % 5 == 0)
判断指定的年是否是闰年
year = 2004
print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
not (逻辑非运算)
应用场景:如果一个条件正向写情况很多很复杂,反向却很简单,条件就反向写再加not
运算符规则:not 条件 - True变False,False变True
not True - False
not False - True
下面代码意思是一样的:
print(not age > 18)
print(age <= 18)
这就是逻辑非运算,直接否定逻辑
相关练习
判断一个数是否不能同时被3、7整除
方法一:
num = 21
print((num % 3 == 0 and num % 7 != 0) or (num % 3 != 0 and num % 7 == 0) or (num % 3 != 0 and num % 7 != 0))
方法二:
print(not num % 21 == 0)
方法三:
print(num % 3 != 0 or num % 7 != 0)
赋值运算符
有=、+=、-=、*=、/=、%=、//=、**=
值得注意的是所有的赋值运算符的最终目的都是将数据保存到变量中,所以赋值运算符的前面必须是变量名,后面必须是数据且所有的赋值运算符表达式是没有结果的(非常重要),赋值语法本身无法提供数据
简单的赋值运算:=
定义变量和给变量赋值的时候的使用
例如:
a = 10
print(a)
复杂的赋值运算:+=、-=、*=、/=、%=、//=、**=
变量 += 数据 ,意思是将变量中保存的数据取出来和后面的数据进行加法运算,将运算结果再保存到变量中
注意:复合的赋值运算符前面的变量必须是已经定义过的变量
a=10
a += 2 # a = a + 2
print(a) # 12
a -= 5 # a = a - 5 = 12 - 5
print(a) # 7
a *= 2 # a = a * 2 = 7 * 2
print(a) # 14
a %= 3 # a = a % 3 = 14 % 3
print(a) # 2
# print(a //= 2) # 这里会报错,因为赋值语句没有结果,无法提供数据
各个运算符优先级为:
结论1:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
结论2:** > *、/、%、// > +、-
结论3:有括号先算括号里面 - ()
补充:布尔值参数数学运算的时候True就是1,False就是0
例如:
print(True + 23) # 24
print(False * 34) # 0
if分支结构
顺序结构(默认) - 代码从上往下一条一条的执行,每条语句执行一遍
一般情况下,都是这样运行程序
分支结构(if) - 根据条件选择执行代码
分支结构分为:
if单分支结构 (满足条件执行某个操作,条件不满足的时候就不执行)与if双分支结构(if-else)(满足条件执行某个操作,条件不满足的时候执行另外的操作)
if单分支结构
语法:
if 条件语句:
代码段
说明:
if (这是关键字是一种固定写法)
条件语句 (任何有结果的表达式,包括:具体的数据、已经赋值过的变量、运算表达式(除了赋值语句))
: ( 固定写法,必须加上)
代码段,从结构上是和if保持一个缩进(一般是一个制表符/tab)的一条或者多条语句(至少一条);
从逻辑上就是在满足才会执行的代码
执行过程:先判断条件语句是否成立,如果成立就执行代码段,条件不成立代码段就不执行。
值得注意的是,如果条件语句的结果不是布尔,就将数据转换成布尔看结果是True还False(所有的零值和空值是False,其他的都是True)。
相关练习
根据指定的分数值,打印 ‘及格’
score = 93
if score >= 60:
print('及格')
if双分支结构(if-else)
语法:
if 条件语句:
代码段1(满足条件执行的代码)
else:
代码段2(不满足条件的时候执行的代码)
循环结构(for、while) - 代码重复执行(写一遍,执行多表)
这个和前面理解差不多
相关练习
根据num的值打印’奇数’或者’偶数’
num = 23
if num % 2 != 0:
print('奇数')
else:
print('偶数')
或者:
num = 23
if num % 2:
print('奇数')
else:
print('偶数')
(这种是更想要的表达方式)
根据year的值打印’闰年’或者’平年’
year = 2000
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
else:
print('平年')
补充:布尔转换
除了0与空都是真
print(bool(0), bool(0.0), bool(’’), bool(None)) # False False False False
print(bool(12), bool(-100), bool(‘a’), bool(‘False’)) # True True True True