day3-变量与运算符总结
02-变量
"""
变量就是在程序中保存数据的容器
1.声明变量(定义)
语法:
变量名 = 值
说明:
变量名 - 要求:标识符,不能是关键字
规范:a.遵守PEP8命名规范(名字所有字母小写,如果多个单词组成,单词之间用下划线)
b.见名知义
= - 赋值符号
值 - 可以是任何有结果的表达式(17,变量,17+5,调用函数)
"""
age = 18
name = '小'
#使用变量就是使用保存的值
# 变量必须先声明再使用
print(age)
同时声明一个变量,并赋一样的值
num1 = num2 = 20
print(num1,num2)
同时声明多个变量,并赋值(个数一致)
x,y,z = 34,6,12.3
print(x,y,z)
num4 = 10
num4 = 48
print(num4)#后赋的值覆盖先赋的值
num4 = 'dbg' #同一变量可以赋不同类型的值
"""
2.声明变量和赋值本质
结论:python中变量存的都是数据在内存的地址,内存地址大小一样
赋值实际上是将地址赋值给变量
使用变量时,是使用变量对应地址的值
c中声明变量:
int num = 8
python中声明变量
num = 37
"""
"""
3.变量的三要素:值、地址和类型
值:变量中地址对应的值
地址:变量中存储的地址
类型:变量中地址对应的值得类型
"""
name1 = '小明'
name2 = name1
print(name2)
print(id(name1),id(name2)) #id(变量) - 获取变量地址
print(type(name1))
"""
python中的运算符:数学、比较、逻辑、赋值、位运算符
"""
03-运算符
1.数学运算符:+,-,*,/, %, //, **
加 减 乘 除 取余 取整 幂
print(10+12)
print(10-24)
a.% - 取余
"""
1.获取一个数各位置的值
2.判断是否整除
"""
print(5%3) #2
获取一个数的个位数
num = 354
print(num % 10) #4
b.// - 商取整
print(5//2)
print(3.6//2)
num = 364
print(num//100)
c.** - 幂运算
"""
x**y - x的y次方
"""
print(2**10) #2的10次方
print(9**0.5) #9开方
print(8**(1/3)) #8开三次方
2.比较运算符: >,<,==,!=,>=,<=
"""
所有结果都是布尔值
"""
逻辑运算符:and,or,not
"""
逻辑运算符运算对象是布尔值,结果也是布尔值
a.and(逻辑与运算)
值1 and 值2:判断是否为真
值1值2都位True,结果为True。只要有False
结果就为False
"""
逻辑与运算:需要多个条件同时满足,就用and连接
grade = 99 #成绩
score = 80 #分数
# 要求成绩大于90并且表现分大于95,才能获得奖学金
print(grade > 90 and score > 95)
"""
b. or(逻辑或运算)
值1 or 值2: 值1和值2中有一个为真,结果就为真,
两个都是假,结果才为假
"""
逻辑或运算:当需要多个条件中至少能有一个条件满足,就用or
grade = 99 #成绩
score = 80 #分数
# 要求要么成绩大于90要么表现分大于95,就能获得奖学金
print(grade > 90 or score > 95)
"""
c. not(逻辑非运算)
not 值:取反,值为真结果为假,值为假结果为真
用来对某个条件进行否定
"""
04-赋值运算和位运算
1.赋值运算符:=,+=,-=,=,/=,%=,//=,*=
"""
赋值符号左边必须是变量;组合的赋值运算符左边的变量必须已经赋值;
所有赋值运算符最终都会进行赋值操作
"""
a.= - 直接赋值
num = 100
b.+=,-=,=,/=,%=,//=,*=
"""
变量 += 值--> 相当于 变量 = 变量 + 值
变量 -= 值--> 相当于 变量 = 变量 - 值
"""
num1 = 1
num1 += 10 #num1=num1+10
print(num1)
num1 *= 10 #num1=num1*10
print(num1)
num2 = 3
num2 **= 2
print(num2)
num2 //= 2
print(num2)
3.运算符的优先级
"""
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
优先级高的先算,有括号先算括号
数学运算符中: ** > *,/,%,// > +,-
"""
num = 23 + 5 > 6 and 8 < 5
print(num)
num = 1+2*3**2
print(num)
4.位运算:&(与),|(或),^(异或),~(取反)
<<(左移),>>(右移)
"""
位运算是针对二进制中的每一位进行的操作
a.数字1 & 数字2 :二进制每一位进行与运算
11010 + 00111 = 00010
与运算的应用:判断一个数的奇偶性(最优解答)
将数字和1与,如果结果是1,则这个数是奇数
如果结果是0,则这个数是偶数
"""
print(3 & 2)
print(3 & -2)
print( 4 & 1,6 & 1,8 & 1) #0,0,0
print(7 & 1,5 & 1,9 & 1) #1,1,1
"""
b.数字1 | 数字2 - 只要有一个为1,结果为1
1101 | 1010 = 1111
3 | 20
000011 | 010100 = 010111
-3 | 20
111101(补) | 010100 = 111101(补)
"""
print(3 | 20)
print(-3 | 20)
"""
c.按位取反
~ 数字 - 将每一位取反,1变0,0变1
010 -> 101(补) = 100(反)= 111
"""
print(~2)
"""
d.按位异或
数字1 ^ 数字2 - 相同为0,不同为1
11 ^ 2
01011 ^ 00010 = 01001
"""
"""
e.左移
数字1 << n(位数) - 符号位不变,将每一位向左移n位,后面补n个0
左移一位数值乘2,左移n位数值乘2的n次方
10 << 1
01010 << 1 = 010100 = 20
""
print(10 << 1) #20
print(-10 << 1) #-20
"""
f.右移
数字1 >> n(位数) 将二进制数向右移n位(后面删除n位)
相当于数字整除2的n次方
"""
print(-20 >> 2)
05-认识字符串
"""
1.什么是字符串(str)
字符串是python中一种常用的有序但是不可变的容器类的数据类型
可以同时存储多个字符。属于序列范畴
字面量:使用单引号或双引号将任意字符括起来,就是字符串常量
'dsfifji3834'
字符:字符串中的每一个单元。python中只有字符的概念,没有字符类型
"""
"""
2.字符串中的内容
a.普通字符:数字字符、字母、普通符号、中文、日文等
'cwewueewi2349'
b.转义字符:通过反斜杠将一些字符转成又特殊功能或特殊意义的字符
\n - 换行
\t - 制表符(tab)
' - 表示一个普通单引号
" - 表示一个普通双引号
\ - 表示一个\
注意:一个转义字符代表一个字符
c.阻止转移:在字符串最前面加r/R,可以阻止转义字符转义
"""