编译性语言(C、Java等)与Python定义变量的区别
- 编译性语言:定义变量前先定义变量类型再赋值,系统会根据变量类型申请内存空间,之后再将数据与内存空间和变量名关联,更改数据的过程就是先将内存空间中的数据清除再赋新值。由于最初在申请内存空间时内存空间就由变量类型确定了,所以在里面保存的数据的类型和大小就确定了,当保存数据超出内存空间大小时就会导致数据溢出,数据太小时又会浪费内存。
- Python:定义变量时直接对变量赋值,系统会根据赋值的大小申请内存空间,之后将数据与内存空间和变量名关联,更改数据时就是由新赋予的数据重新申请内存空间,然后将新数据与变量名和新内存空间关联,所以不会造成数据溢出,重新赋值后原本数据所在内存空间会因为没有变量使用它而自动删除,所以不会导致内存浪费。
Python中的运算符
Python中的运算符包括四类:数学运算符、比较运算符、逻辑运算符、赋值运算符。
-
数学运算符:+、-、*、/、%(取余)、//(取整)、**(幂运算)
-
+、-、*、/:与数学运算中的使用方法相同,/的运算结果为float型
-
%:a % b就是求a除以b的余数
%可以用来对2取余判断整数的奇偶性;还可以用来对10、100等取余取出整数对应位的低位数。
-
//:a // b就是a除以b的结果求整数(向小的值取整)
//可以用来取出整数的最高位数字
- **:a * *b就是a的b次方
-
-
比较运算符:>、<、=、>=、<=、!=
所有比较运算符的结果为布尔值,Python中可以连写比较运算符来判断范围,如:
num=18 print(14<=num<=20)
-
逻辑运算符:and、or、not
一般开发过程中,逻辑运算符的运算和结和结果都是布尔值。
-
and:逻辑与运算
- 运算规则:全为True结果才为True,只要有一个为False结果即为False
- 应用:若需要多个条件同时满足,就可以用and将条件进行连接
-
or:逻辑或运算
- 运算规则:只要有一个为True结果就为True,全为False结果才为False
- 应用:多个条件中只要有一个满足就行,使用or将多个条件连接,相当于或者
-
not:逻辑非运算
-
运算对象:not 条件
练习:判断一个数胡是否不能同时被3和7整除。
num=24 print('数是否不能同时被3和7整除',not(num % 3 == 0 and num % 7 == 0))
-
-
-
逻辑运算符的运行结果不是布尔:
表达式1 and 表达式2 --若表达式1的布尔值为True,则结果为表达式2的值,若为False则为表达式1的值。
表达式1 or 表达式2 --若表达式1的布尔值为True,则结果为表达式1的值,若为False则为表达式2的值。
-
短路操作:
表达式1 and 表达式2 --若表达式1的结果为False,则不会执行表达式2
表达式1 or 表达式2 --若表达式1的结果为True,则不会执行表达式2
-
赋值运算符:=、+=、-=、*=、/、%=、//=、**=
- =:变量 = 数据 --将右边的数据赋给左边的变量
- 复合和赋值运算符:变量 += 数据等于变量=变量+数据,复合的赋值运算符左边的变量必须是定义过初值的变量。
-
运算符的优先级
- 数学运算符>比较运算符>逻辑运算符>赋值运算符
- 幂运算>*、/、//、%>加减乘除
流程控制
- 顺序结构:代码冲上往下逐行执行
- 分支结构:根据不同条件选择是否执行不同代码(if语句)
- 循环结构:让一条或多条语句重复执行(for和while语句)