一、变量
-
程序中使用数据的两种方式
1)直接使用数据
print(18) # 18 print((5+3)/2) # 4
2)先将数据保存到变量中,然后在通过使用变量来使用数据
age = 22 print(age) # 22 score1 = 10 score2 = 8 print((score1+score2)/2) # 9 msg = '成长在路上' print(msg) # 成长在路上 print('--------------------------------------------')
-
定义变量/创建变量 - 将数据保存到变量中
变量的作用:保存数据
1)语法:变量名 = 数据
2)说明:
a. 变量名 - 自己命名要求:是标识符,且不是关键字;
规范:1)见名知义
2)不使用系统函数名(eg.print、input、type、…)、类名(int、float、str、…)和模块名]
3)所有字母都小写,多个单词之间用下划线隔开(eg.dog_name = ‘大黄’、驼峰式命名:dogName = ‘大黄’)
b. = - 固定写法
c. 数据 - 需要保存到变量中的具体的数据(可以是具体的某种类型的数据,也可以是某个运算表达式)result = 805+1005 print(result) print('-------------------------------------------------')
-
使用变量 - 使用变量中保存的数据
含义:使用变量就是使用变量中保存的数据,所以数据能做的事情,保存数据的变量都可以做
注意:变量必须先定义再使用
num = 1005 print(1005) print(num) print(1005+805) print(num + 805) print(type(100)) print(type(num)) print(float(1005)) print(float(num)) # x = 1005 x = num print(x) str1 = '姓名:' # name = input('姓名:') #name = input(str1)
-
同时定义多个变量
1)变量名1 = 变量名2 = … =数据 - 同时定义多个变量赋相同的值
a = b = c = 1005 print(a, b, c)
2)变量名1, 变量名2,… = 数据1, 数据2, … - 同时定义多个变量赋不同的值
要求:变量的数据必须和数据的数量保存一致
x, y = 1005, 805 print(x, y) # eg.交换两个变量的值 m = 1005 n = 805 print("交换之前:", m, n) m, n = n, m print("交换之后:", m,n) # p = m # m = n # n = p # print("交换之后:", m, n)
-
变量重新赋值
1)定义完变量以后可以重新给变量赋值,重新赋值后再使用变量,使用的是新的值
score = 805 print(score)
2)重新赋值的时候,可以赋不同类型的值
score = '优秀' print(score)
-
变量的底层逻辑
# python变量存储数据和重新赋值的底层 # python定义变量时,先申请内存,数据需要多大就申请多大内存,申请完内存就将变量存放在内存中,然后将变量和对应的内存相关联 # 重新给变量赋值的时候,会根据新的值重新申请内存 # 优点:不需要考虑内存的浪费和溢出,且二次赋值的时候可以赋值成不同类型的值 # 缺点:在申请内存之前需要先计算数据的大小,比较慢 # id函数 - 获取变量对应的内存地址 a = 10 print(id(a)) a = 100 print(id(a))
二、数学运算符
数学运算符:+、-、*、/、%、//(整除)、**(幂运算)
-
+、-、*、/
print(10+20) print(10-20) print(10*20) print(10/20) # 如果运算对象中有浮点数,那么结果一定为浮点数,应用于所有的数学运算符 print(10.0+20) #30.0 print(10.0-20) print(10.0*20) # 除法(/)特殊,不论整除与否,其运算结果一定为浮点数 print(20/10) #2.0
-
%(取余、取模) - 求余数
# x % y - 求x除以y的余数 print(10 % 3) # 1)应用场景1:判断整除关系--判断一个数是否能被另一个数整除 - 判断两个数的余数是否为0 num1 = 23 num2 = 11 print(num1 % num2) print(55 % 11) # # 判断奇偶数 # num = int(input("请输入一个数:")) # if num%2 == 0: # print("您输入的数为偶数:%f", num) # else: # print("您输入的数为奇数:", num) # 2)应用场景2:取整数的低位数 - 对10的N次方取余,就可以获得这个数的后N位数 num = 1234 print(num % 10) # 4 print(num % 100) # 34 print(num % 1000) # 234 # 判断水仙花数 #num = int(input("请输入一个三位数:")) #print(a, b, c) for i in range(100,1000): a = i % 10 # 个位 b = i % 100 // 10 # 十位 c = i // 100 # 百位 if (a**3+b**3+c**3) == i: print("水仙花数:", i)
-
//(整除) - 求商,商向小取整
# x // y - 求x除以y的商,商向小取整的结果 print(5 // 2) print(3.8 // 2) # 1.0 print(-5 // 2) # -3 # 应用场景1:求一个数中有多少个完整的另一个数 # eg.求num中有多少个8 num = 79 print(num // 8) # 9 # 练习:已知t的值是总的秒数,求t中有多少个完整的小时 t = 282929 print(t // 3600) #78 # 应用场景2:去掉整数的低位数,保留高位数 - 整除10或10的N次方 print(8239 // 100) # 82 print(82 // 10) # 8 # 练习:提取任意一个整数的百位数 num = 2833 print(num % 1000 // 100)
-
**(幂运算)
# x ** y -求x的y次方 print(3**4) # 81 print(4 ** -2) # 0.0625 print(8 ** (1/3)) #2.0 print(100 ** 0.5) #10.0
三、比较运算符
比较运算符:>、<、==、!=、>=、<=
-
所有比较运算符的运算结果都是布尔值
print(100 > 200) print(100 == 100) # # 判断奇偶数 # num = int(input("请输入一个数:")) # if num%2 == 0: # print("您输入的数为偶数:%f", num) # else: # print("您输入的数为奇数:", num)
-
python中的比较运算符支持连写表示范围
score = 89 # 判断分数是否大于等于70,小于90if 90 >= score >= 70: print("是中等成绩:", 70 <= score < 90)
四、逻辑运算符
逻辑运算符:and 、 or 、 not
-
and(逻辑与运算)
""" 1)应用场景:用于连接要求同时成立的两个条件,相当于“并且” 2)运算规则:条件1 and 条件2 - 如果两个条件同时成立结果就是true,有一个条件不成了,结果是false """ # 案例:判断num是否能同时被3和8整除 num = 78 print('num能否同时被3和8整除',num % 3 == 0 and num % 8 == 0) # if num % 3 == 0 and num % 8 == 0: # print('num能被3和8整除') # else: # print('num不能被3和8整除') # 练习:判断num是否是能够被7整除的偶数 num = 92 print('num是否是能够被7整除的偶数',num % 2 == 0 and num % 7 == 0) # print('{}是否是能够被7整除的偶数'.format(num),num % 2 == 0 and num % 7 == 0)
-
or(逻辑或运算)
""" 1)应用场景:如果要求两个或多个条件有一个条件成立就行,用or连接,相当于“或者” 2)运算规则:条件1 or 条件2 - 只要有一个条件成立,结果就是true,两个条件都不成立,结果就是false """ # 练习1:判断num是否能够被3和7整除 num = 1005 print("{}是否能够被3和7整除:".format(num),num % 3 == 0 or num % 7 == 0 ) # 练习2:判断是否是闰年 # 闰年 # 普通闰年:能被4整除且不能被100整除 # 世纪闰年:能被4整除且能被100整除 year = 2023 print("{}是否是闰年:".format(year), (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
-
not(逻辑非运算)
""" 1)应用场景:对条件进行否定 2)运算规则:not 条件 -对指定条件进行否定 """ # 判断age是否不大于18 age = 28 print(not age > 18) print(age <= 18) # 判断num是否不能被5整除 num = 89 print(not num % 5 == 0) print(num % 5 != 0) # 判断num是否不能同时被3和7整除 num = 90 print(not (num % 3 == 0 and num % 7 == 0))
五、赋值运算符
赋值运算符: =、+=、-=、*=、/=、%=、//=、**=
注意:
a.所有赋值运算符最终的功能都是完成对变量的赋值操作(将数据保存到变量中)
b.所有的赋值运算都没有结果,无法提供数据
print(b = 20) #报错,原因是赋值运算没有结果,无法提供数据
-
= – 普通赋值运算符 [变量名 = 数据 - 将数据直接保存到变量中]
-
+=、-=、*=、/=、%=、//=、**=
含义:取出变量中保存的数据,与后面的数据进行运算,将所得结果重新保存到变量中
要求:复合的赋值运算符前面的变量必须是已经赋值过的变量
num = 19 num += 2 print(num) num -= 3 print(num) num %= 3 print(num) num = 13 num /= 10 print(num) # 1.3 num //= 3 print(num) # 0.0 num = 5 num *= 5 print(num) # 25 num **= 5 print(num) # 9765625
六、运算符的优先级
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
- (幂运算)** > (乘除运算)*、/、%、// > (加减) +、-
- and > or
- 有括号()先算括号里面的