1. 变量
1.1 程序中使用数据的两种方式
- 直接使用数据
print(18)
print((89+92)/2)
- 先将数据保存到变量中,然后再通过使用变量来使用数据
age = 26
print(age)
score1 = 89
score2 = 92
print((score2+score1)/2)
1.2 定义变量/创建变量
变量的作用:保存数据
- 语法:
变量名
=数据
- 说明:变量名:程序员自己命名
要求:是标识符,不是关键字
规范:见名知义(看到变量名就大概知道保存的是什么数据)
不使用系统函数名(比如:print
、input
、type
、…)
所有字母都小写,多个单词之间用下划线隔开(PEP8
)
=:固定写法
数据:需要保存到变量中的具体数据(可以是具体的某种类型的数据,也可以是运算表达式的结果)
1.3 使用变量
使用变量中保存的数据,数据能做的事情,保存数据的变量都可以做
注意:变量必须先定义再使用
num = 100
print(100)
print(100+200)
print(type(100))
print(float(100))
print(num)
print(num+200)
print(type(num))
print(float(num))
x = num
print(x)
str1 = '姓名:'
name = input(str1)
1.4 同时定义多个变量
变量名1
=变量名2
=变量名3
= … =数据
:同时定义多个变量赋相同的值
a1 = b1 = c1 = 100
print(a1, b1, c1)
变量名1
,变量名2
,变量名3
, … =数据1
,数据2
,数据3
, …:同时定义多个变量赋不同的值(变量的数量必须和数据的数量保持一致)
x, y = 100, 200
print(x, y)
m = 300
n = 20
m, n = n, m
print(m, n)
1.5 变量重新赋值
定义完变量以后可以重新给变量赋值,重新赋值后再使用变量,使用的是新的值
重新赋值的时候可以赋不同类型的值
score = 90
print(score)
score = 55
print(score)
score = '优秀'
print(score)
2. 变量的底层逻辑
python定义变量的时候先申请内存,内存申请多大看数据需要多大,申请完内存后将数据保存到内存中,然后再将变量和对应的内存进行关联
重新给变量赋值的时候,会根据新的值重新申请新的内存,然后将新的数据保存到新的内存中,最后将变量和新的内存进行关联
3. 数学运算符
3.1 +、-、*、/
+、-、*、/
和数学中的+、-、×、÷
的功能一样
如果运算对象中有一个是浮点数,那么结果一定是浮点数(适用于所有数学运算符)
除法(/)运算的结果一定是浮点数
print(10 + 20) # 30
print(10 - 20) # -10
print(0.5 * 20) # 20.0
print(10 / 20) # 0.5
print(20 / 10) # 2.0
3.2 %(取余、取模)
# x % y:求x÷y的余数
print(10 % 3) # 1
print(20 % 4) # 0
# 1) 应用场景1:判断一个数是否能够被另外一个数整除:判断这两个数的余数是否为0
print(30 % 6)
print(18 % 5)
# 2) 应用场景2:取整数的低位数:对10的N次方取余,就可以获取这个数的后N位数
num = 946598984562
print(num % 10) # 2
print(num % 100) # 62
print(num % 1000) # 562
3.3 //(整除)
# x // y:求x÷y的商向小取整的结果
print(5 // 2) # 2
print(3.8 // 2) # 1.0
print(-5 // 2) # -3
# 应用场景1:求1个数中有多少个完整的另一个数
num = 9854623
print(num // 7)
# 应用场景2:去掉整数的低位数,保留高位数
print(965 // 10) # 96
print(896 // 100) # 8
3.4 **(幂运算)
# x ** y:求x的y次方
print(3 ** 4) # 81
print(2 ** 5) # 32
print(8 ** (1/3)) # 2
4. 比较运算符
比较运算符:>(大于)
、<(小于)
、==(等于)
、!=(不等于)
、>=(大于等于)
、<=(小于等于)
- 所有比较运算符的结果都是布尔值
- python中的比较运算符支持连写表示范围
print(100 > 200) # False
print(10 == 10) # True
num = 89
print('num是否是偶数:', num % 2 == 0, sep='')
score = 88
print('是否是中等成绩:', 70 <= score <= 90, sep='')
5. 逻辑运算符
5.1 and
- 应用场景:用来连接要求同时成立的两个条件,相当于生活中的’并且’
- 运算规则:
条件1 and 条件2
:如果两个条件同时成立结果就是True
,只要有一个条件不成立结果就是False
True and True - True
True and False - False
False and True - False
False and False - False
num = 895
print('num是否能同时被3和8整除:', num % 3 == 0 and num % 8 == 0, sep='')
num = 92
print('num是否能同时被3和8整除:', num % 2 == 0 and num % 7 == 0, sep='')
5.2 or
- 应用场景:用来连接要求有一个成立的两个条件,相当于生活中的’或者’
- 运算规则:
条件1 or 条件2
:如果两个条件有一个成立结果就是True
,只要有一个条件不成立结果就是False
True or True - True
True or False - True
False or True - True
False or False - False
# 练习1:判断num是否能够被3或者7整除
num = 89
print('num是否能被3或者7整除:', num % 3 == 0 or num % 7 == 0, sep='')
# 练习2:判断指定的年份是否是闰年
year = 8944
print('是否是闰年:', year % 4 == 0 and year % 100 != 0 or year % 400 == 0)
5.3 not
- 应用场景:对条件进行否定
- 运算规则:
not 条件
:对指定条件进行否定
not True - False
not False - True
age = 20
print(not age > 18)
print(age <= 18)
# 判断num是否不能被5整除
num = 89
print(not num % 5 == 0)
print(num % 5 != 0)
6. 赋值运算
赋值运算:=
、+=
、-=
、*=
、/=
、%=
、//=
、**=
- 注意:所有赋值运算符最终的功能都是完成对变量的赋值操作(将数据保存到变量中)
- 所有的赋值运算都没有结果,无法提供数据[print(b = 20) # False]
变量名
= 数据
:将数据直接保存到变量中
变量名
+= 数据
:先将变量中保存的数据取出来,和后面的数据进行加法运算,然后将运算的结果重新赋值给前面的变量
注意:复合的赋值运算符前面的变量必须是已经赋值过的变量
num = 10
num += 2 # num = num + 2
print(num) # 12
num -= 3 # num = num - 3
print(num) # 9
num *= 2 # num = num * 2
print(num) # 18
num %= 3 # num = num % 3
print(num) # 0
7. 运算符的优先级
-
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
-
**
>*
、/
、//
、%
>+
、-
-
and
>or
-
有括号先算括号里面