day3学习笔记(变量和运算符)

1.变量

1.1 定义变量

语法:
变量名 = 数据

说明:
变量名 - 自己命名 要求:1)标识符 2)不能是关键字
规范:1)见名知义 2)满足PEP8命名规范(所有字母小写,多个单词之间下划线隔开)
3)不使用系统提供类型名、函数名和模块名

= - 赋值符号
数据 - 任何有结果的表达式,包括:独立数据、运算表达式(赋值运算除外)、函数调用表达式

age = 18
teacher_name = '张三'
int_num = 20

stu_score = 90  # 定义变量,保存学生分数:90

1.2使用变量

print(age)
print('age', age)
print(10 + 20)
print(age + 20)

print('abc'[0])
str1 = 'abc'
print(str1[0])

1.3 修改变量中的数据(重新赋值)

age = 20
print(age)

python中同一个变量可以保存不同类型的值

age = '你好'
print(age)

1.4 同时定义多个变量/同时给多个变量赋值

同时给不同变量赋不同的值:变量1,变量2,变量3,…= 数据1,数据2,数据3,…

a, b, c = 10, 20, 30
print(a, c, b)

python交换两个变量的值: 变量1, 变量2 = 变量2, 变量1

x = 100
y = 200
x, y = y, x  # x, y = 200, 100
print(x, y)

同时给不同变量赋相同值:变量1 = 变量2 = 变量3 = … = 数据

a1 = a2 = a3 = 100
print(a1, a2, a3)

注意:没有赋值的变量不能使用

2. 变量赋值的原理

1.定义变量和给变量赋值的原理:

1)首先堆中申请内存(大小根据数据所需内存大小决定)
2)将数据保存内存区域中
3)变量和保存数据的内存进行关联(变量保存数据对应的内存地址)

2.id函数

id(变量) - 获取变量关联数据的内存地址

num = 10
print(id(num))

num = 20
print(id(num))

3. 数学运算符

python支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算

扫描二维码关注公众号,回复: 11311856 查看本文章

3.1.数学运算符: +, -, *, /, %(取余、取模), //(整除), **(幂运算)

1)% - 求余数
数字1 % 数字2 -> 数字1除以数字2余数

print(5 % 2)

应用1:取低位

num = 679
print(num % 10)

应用2:判断基偶

num = 2898
print(num % 2)

2)// - 取整(向小取整)

print(5//2)   # 2
print(-5//2)  # -3
print(3.9//3) # 1.0

应用:取高位

num = 367
print(num // 100)  # 3
print(num // 10)   # 36
  1. **
print(2 ** 3)      # 8
print(9 ** 0.5)    # 3

4. 比较运算符

比较运算符(关系运算符):>, <, ==, >=, <=, !=
注意:1.所有比较运算的结果都是布尔值
2.数字数据不能和字符串数据进行比较

print(10 > 5)
print(10 <= 5)
print(10 != 10)

python支持比较运算符的连写来表示

x = 10
print(0 < x <100)

可以将运算结果赋给变量

a = 3 > 4
print(a)   # False

5. 逻辑运算符:and(与), or(或), not(非)

1.and

1)运算规则:
操作对象布尔值:两个True -> True , 有一个False -> False
2)应用场景:多个条件同时满足

grade = 4.5
score = 90
print(grade > 4 and score > 85)

2.or

1)运算规则:
操作对象布尔值:两个False -> False , 有一个True -> True
2)应用场景:多个条件只需满足一个

grade = 4.5
score = 90
print(grade > 4 or score > 90)

判断是否为闰年

year = 2012
print('是否是闰年:', year % 400 == 0 or year % 4 == 0 and year % 100 != 0)

3.not

1)运算规则:True 变 False , False 变 True
2)应用场景:否定某个条件

number是否不能同时被3和7整除

num = 22
print('是否满足条件:', not (num % 3 == 0 and num % 7 == 0))

4.操作对象不是bool

逻辑运算符语法上可以操作任何数据
数据布尔值:所有为零为空的值是False,其他数据布尔值是True
数据1 and 数据2 -> 数据1布尔值是True,结果是数据2
数据1布尔值是False,结果是数据1
数据1 or 数据2 -> 数据1布尔值是True,结果是数据1
数据1布尔值是False,结果是数据2

print(7 and 'abc' )
print(False and 5)
print('' and 'abc' )

print(0 or 'abc')
print(7 or 5)

print(not 1)
print(not 0)

短路操作
and 的短路操作:
表达式1 and 表达式2 -> 1是False,2不执行

or 的短路操作:
表达式1 or 表达式2 -> 1是True,2不执行

6. 赋值运算符

1. 赋值运算符:=, +=, -=, *=, /=, %=, //=, **=

赋值运算符左边是变量,右边可以是任意有结果的表达式
复合赋值运算符左边必须是已经赋值过的变量
变量 += 数据 -> 变量 = 变量 + 数据

a = 100
a += 20
print(a)    # 120

a /= 4
print(a)    # 30.0

a **= 2
print(a)    # 900

2.运算符优先级

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
and > or > not

7. 位运算

1.位运算的特点:效率高、内存消耗少

2.位运算运算符:&(按位与)、 |(按位或)、 ^(异或)、 ~(按位取反)、 >>(右移)、 <<(左移)

位运算直接操作数据内存中存储的补码

1) &(按位与)

数字1 & 数字2 - 两个都是1结果是1,否则为0
01101101(补)& 10101100(补) -> 00101100(补)

print(5 & 9)
print(-5 & -9)

应用:判断奇偶性
“”"
与1进行按位与运算,结果1为奇数,结果0为偶数
“”"

print(-30 & 1)

2) |(按位或)

数字1 | 数字2 - 两个都是0结果是0,否则为1

“”"
7|-16
00000111
10010000 11110000
11110110 10001001
-9
“”"

print(7 | -16)

3)^(异或)

数字1 | 数字2 - 相同为0,不同为1

4)~(按位取反)

数字1 ~ 数字2 - 0变1,1变0

5)>>(右移)、 <<(左移)

数字1 >> 数字2 - 数字1 // 2数字2
数字1 << 数字2 - 数字1 * 2
数字2
应用:快速乘以或除以2的n次幂

print(5 << 2)  # 5 * 2**2

猜你喜欢

转载自blog.csdn.net/weixin_48479393/article/details/106676312