1.变量
变量就是在程序中用来保存数据的容器
1.声明变量(定义变量) python中没有严格意义上的声明(给变量赋值就是声明变量)
语法:
变量名=值
说明:
变量名 -要求:标识符,不能是关键字
规范:
1.遵守PEP8的命名规范(名字的所有字母都小写,如果由多个单词组成,单词之间用下划线组成)
2.见名知义
student_name
同时给多个变量赋值
num1=num2=num3=10
print(num1,num2,num3)
x,y,z=10,20,30
print(x,y,z)
num4=100
num4=200
print(num4) # 给同一个变量赋值,后赋的值会覆盖先赋的值
num4='abc'
print(num4) # 同一个变量可以存储不同类型的值
运行:
2.声明变量和给变量赋值的本质
c语言中声明变量:
int num=10
num=100 #只能是给定的类型,并且由类型确定内存空间大小,超出则会溢出
python中数据需要多大空间,就提供多大空间
python中所有的变量存的都是数据在内存中的地址。内存地址的大小一样
用一个变量给另一个变量赋值,实质就是将变量中的地址赋给另外一个变量
3.变量的三要素:值、地址、类型
值:变量中存的地址对应的值
地址:变量中存储的地址
类型:变量中存的地址对应的值的类型
name1='小明'
name2=name1
print(name1) #打印变量中地址对应的值
print(id(name1),id(name2)) #id(变量) 获取变量中存储的地址(每次打印地址都在变化)
运行:
2.运算符
python中的运算符:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符
二进制运算都要用他的的补码运算
1.数学运算符:+,-,,/,%,//,*
%:取余(求余数)
获取一个数的最低位或者几位的值
判断一个数是否能被另一个数整除 num1 % num2 ==0
num=123456
print(num % 10)
//:整除(获取商的整数部分) 如果商是负的小数(小数部分大于0) 结果是整数部分减一
print(5//2)
print(3.9//3)
num=289
print(num//100) #取num的百位上的值
**:幂运算
num=2**3
num1=3**3
print(num,num1)
print(9**0.5,8**(1/3)) #开次方
运行:
2.比较运算符:>,<,==,!=,>=,<=
比较运算符的运算结果都是布尔值
== 判断两个数据苏值是否相等
is 判断地址是否相等
3.逻辑运算符:and,or,not(运算对象是布尔(不是布尔也可以只是没有意义),结果也是布尔)
and(逻辑与运算):
条件1 and 条件2 :同时为真:True,有一个为假:False
or(逻辑或运算):
条件1 or 条件2 :有一个为真:True,同时为假:False
not(逻辑非运算):
not 条件:对结果取反 True->False False->True
age=21
print(not age<18)
运行:
4.赋值运算符:=,+=,-+,=,/+,%=,//=,*=
所有的赋值运算符的左边必须是变量;组合的赋值运算符的左边的变量必须已经赋值
a += b ---> a=a+b
a -= b ---> a=a-b
...
num =10
num -=4
print(num)
num **=2
print(num)
num //=5
print(num)
运行:
5.运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
优先级高的先算。如果有括号,先算括号里面的
数学运算符中:** > *,/,//,% > +,-
6.位运算:&(按位与),|(按位或),^(按位异或),~(按位取反),<<(左移),>>(右移)
- 位运算是针对二进制中的每一位进行的相关操作
按位与(&):数字1 & 数字2 -> 二进制的每一位进行与运算,如果对应位都为1 则结果为1;否则为0
11010 & 00111 = 00010
与运算的应用:判断一个数的奇偶性(最优解答)
将数字与1进行按位与运算,结果为1 则为奇数;结果为0,则为偶数
按位或(|);数字1 | 数字2 -> 如果有一位是1结果就是1,否则为0
3(补码)=0011
2(补码)=0010
-3(补码)=111101
20(补码)=010100
print(3 & 2)
print(-3 | 20)
运行:
按位异或(^)
数字1 ^ 数字2 对应位如果相同就为0,否则为1
按位取反( ~ ):~ 数字 -> 将每一位取反 (按位取反的快捷运算公式 -(x+1))
010补码 -> 101(补码) =100(反码) =111
print(~2)
运行:
左移(<<)
数字1 << 位数 相当于 数字1 * 2**n 将指定的数字的每一位向左移指定的位数,空出的位置用0填满(负数左移是他的正数左移的相反数)
01010
print(10 << 2)
print(-10 << 2)
运行:
右移(>>) 右移部分去除(负数右移是他的正数右移的相反数)
数字1 >> n 相当于 数字1//(2**n)
01010 >> 1 -> 0101 = 5
print(10 >> 1)
运行:
3.字符串
1.什么是字符串(str)
字符串是python中一种常用有序但是不可变的容器类的数据类型。属于序列
字面量:使用单引号或者双引号将任意字符括起来,就是字符串常量
字符就是指字符串中的每一个单元.python中只有字符概念没有字符类型
2.字符串中的内容
普通字符:包含数字,字母,普通符号,中文,韩文等
转义字符:通过反斜杠将一些字符转换成有特殊功能或者特殊意义的字符
\n 换行
' 表示一个单引号
注意:一个转义字符代表一个字符
阻止转义:在字符串最前面加r/R,可以阻止转义
print(r'abc\n123')
运行: