文章目录
- 一、变量
- 1、定义一个变量
- 2、同时定义多个变量
- 3、变量保存数据的底层逻辑
- 二、运算符
- 1、数学运算
- 2、比较运算
- 3、逻辑运算
- 4、赋值运算
- = 直接赋值
- 复合赋值运算符
- 5、运算符的优先级
一、变量
1、定义一个变量
变量名=数据
a=10
2、同时定义多个变量
变量1=变量2=…=变量n=数据
a,b,c=10
变量1,变量2,…变量n=数据1,数据2,…数据n
注意:后面数据的个数必须和前面变量的个数保持一致
a,b,c=1,2,3
练习:交换两个变量的值
a=100
b=200
a,b=b,a
print('a=',a,'b=',b)
3、变量保存数据的底层逻辑
问题1:为什么python定义变量不用说明类型
python定义变量的时候会自动生成内存,内存大小由数据大小决定
问题2:为什么Python给变量重新赋值的时候可以赋不同类型的数据
python给变量重新赋值的时候会重新根据新的数据申请新的内存
问题3:为什么python可以直接计算并保存9999**9999的计算结果
申请内存的时候会提前计算存储这个数据需要多大的内存,需要多大就申请多大
内存单位:
位(bit) ;1字节(byte)=8位;1 k b=1024字节;1 Mb=1024 k b;1 G b=1024 Mb;1 Tb=1024 G b
二、运算符
1、数学运算
加+、减-、乘*、除/、整除//(取商,向小取整)、取余%(取模)、幂运算**
print(1+3.0) #4.0 结果为浮点数
print(7/3) # 2.5 结果为浮点数
print(7//3) # 2 结果为整数
print(7%3) # 1 7/3=2+1 取余数 结果为整数
print(2**3) # 8
整除的应用:1、希望能整除的情况下商是整型 2、去掉一个整数的低位数
print(4/2) #2.0
print(4//2) # 2
num=1234
print(num//10) # 123
print(num//100) # 12
取余的应用:1、判断两个数字之间的整除关系,余数为0则整除,余数不为0则不整除
2、去掉高位数,保留低位数
print(123%10) # 3
print(123%100) #23
练习:获取一个正整数的十位数
num=8271
print(num//10%10) # 7
幂运算
print(2**3) # 8
print(2**(-3)) # 0.125
print(2**(1/3)) # 1.2599210498948732
注意:除的结果一定是浮点数,其他运算符的运算结果的类型和运算对象有关
2、比较运算
>
、<、==、!=、>=、<=
所有比较运算符的运算结果都是布尔值
print(10>3) # True
print(10>30) # False
python的比较运算符直接连写表示范围
3、逻辑运算
and逻辑与、or逻辑或、not逻辑非
and 要求多个条件同时成立,or 要求一个条件成立即可
and
应用场景:如果需要多个条件同时满足,用and
连接
运算规则:条件1 and 条件2 --条件1和条件2同时成立结果是True,只有一个不成立结果是False
练习:写条件判断num是否是大于10的偶数
num=int(input('请输入num:'))
print('num是否是大于10的偶数',num%2==0 and num>10)
or
应用场景: 如果要求多个条件中有一个条件成立就行,就用or连接;相当于生活中的或者
运算规则: 条件1 or 条件2–如果两个条件都不成立结果就是False,只要有一个条件成立结果就是True。
练习:判断闰年
year = 2000
print('year是否是闰年:',(year%4==0 and year%100!=0) or year%400==0)
not
应用场景:对指定的条件进行否定
运算规则:not 条件
4、赋值运算
=、+=、-=、*=、/=、%=、//=、**=
所有赋值运算都是用来给变量赋值的。所有的赋值语句都是没有结果的,无法提供数据
= 直接赋值
变量=数据 --将数据保存到变量中,变量既可以是已经定义的也可以是未定义的
a=1
a=3
b=4
print(a,b) #3 4
复合赋值运算符
变量 += 数据 --将变量中的数据取出来,然后和后面的数据进行运算,然后将得到的结果赋值给变量
变量必须是已经定义过的变量,并且已经保存的数据必须可以和后面的数据进行加法运算
a=10
a+=20
print(a) #30
a-=10
print(a) #20
5、运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
不同的数学运算符优先级和数学中一样(** *、/、%、// +、-)
print(1+2**3*2/4-4*2) # -3.0
有括号先算括号里面的