目录
变量
变量的声明与赋值用于将一个变量绑定到一个对象上,格式如下:
变量名=表达式
例:
a=3 运行过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象(拥有id、type、value),然后将这个对象地址(id)赋值给左边的变量。
变量在使用前必须先被初始化(先被赋值)
-
链式赋值
链式赋值用于同一对象赋值给多个变量
x=y=123 相当于: x=123;y=123 -
系列解包赋值
系列数据赋值给对应相同个数的变量(个数必须保持一致)
a,b,c=4,5,6 相当于:a=4;b=5;c=6
使用系列解包赋值实现变量互换
#无需借助第三个变量
>>>a,b=1,2
>>>a,b=b,a
>>>print(a,b)
21
删除变量和垃圾回收机制
可通过del语句删除不再使用的变量,如果对象没有变量引用,就会被垃圾回收器回收,清空内存空间。
>>>a=123
>>>del a
常量
Python不支持常量,即没有语法规则限制改变一个常量的值,只能我们约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。
>>>MAX_SPEED=120
>>>print(MAX_SPEED)
>120
>>>MAX_SPEED=140 #实际是可以修改的,只是逻辑上不做修改
>>>print(MAX_SPEED)
>140
基本内置数据类型
- 整型
整数,在Python中,除了是10进制,还有其他三种进制:
>>>0b101
>5
>>>0o10
>8
>>>0x10
>16
注:Python3中int可存储任意大小的整数,而不会“整数溢出”,故python特别适合科学运算
-
浮点型
-
布尔型
python 中布尔值使用常量True 和 False来表示**(注意大小写)**;
比较运算符< > == 等返回的类型就是bool类型;布尔类型通常在 if 和 while 语句中应用;
注意的是,python中,bool是int的子类(继承int),故 True等于1 , False等于0 是会返回Ture,因为他们本质还是1和0,甚至可以和数字相加
>>>a=True #本质还是1
>>>b=3
>>>a+b
>4
- 字符串型
字符串的本质是字符序列,Python的字符串是不可变的,我们无法对原字符串做出任何修改,但可以将字符串的一部分复制到新创建的字符串达到“看起来修改”的效果。
Python不支持单字符类型(char),单字符也是作为一个字符串使用的。
类型转换和四舍五入
-
使用int()实现类型转换:
1.浮点数直接舍去小数部分,int(9.9)的结果是9
2.布尔值True转为1,False转为0.如int(True)结果是1
3.字符串附和整数格式(浮点数格式不行)则直接转为对应整数,否则报错
整数和浮点数混合运算时,表达式结果自动转型成浮点数,如:2+8.0的结果是10.0 -
类似int(),float()可将其他类型转化成浮点数
-
round(value)可以返回四舍五入的值
注:不是改变原有的值,而是生成新的值
运算符
- 算数运算符
>>>divmod(13,3)#可同时等到商和余数
>(4,1)#返回一个元组
- 增强型赋值运算符
注意+=之间不能有空格,且与C和java不同,python不支持自增(++)和自减(- -) - 比较运算符
>>>a=4
>>>3<a<10 #关系运算符可以连用,同数学含义
>True
-
同一运算符
简而言之, is :比对2个变量的对象引用(对象在内存中的地址,即id() 获得的值)是否相同。如果相同则返回True,否则返回False。 == :比对2个变量指向的对象的内容是否相同。 is运算比 == 效率高,在变量和None进行比较时,应该使用is 注:在 Python 中,有一个特殊的常量 None(N 必须大写)。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。
-
逻辑运算符
逻辑表达式前一个变量(对象)很重要,可能引发中断反应。
>>>a=True
>>>a or 30
>True
>>>a or 30/0 #a为真直接返回True将不会往下计算,即不会显示30/0的错误
>True
- 运算符优先级
字符串的各种操作
Unicode编码与字符的相互转换
Python3的字符默认就是16位Unicode编码(ASCII码是Unicode的子集)
>>>ord('A')#内置函数ord()可以把字符转换成对应的Unicode码
>65
>>>ord('高')
>39640
>>>chr(66)#内置函数chr()可以把十进制数字转换成对应的字符
>'B'
引号创建字符
- 单引号或者双引号创建字符串
>>>a="I'm"#使用两种引号的好处是可以创建本身就包含引号的字符串而不用使用转义字符
>>>print(a)
>I'm
- 连续三个单引号或者三个双引号创建多行字符串
>>>re='''name="ds"
age=18'''
>>>print(re)
name=da
age=18
len()函数
>>>a=''#python允许空字符串的存在,不包含任何字符且长度为0
>>>len(a)
>0
>>>c="学习"
>>>len(c)#len()用于计算字符串包含多少字符
>2
转义
>>>a="A\nB"
>>>a
>'A\nB'
>>>print(a)
>A
>B
字符串拼接
注:如果两边类型不用将抛出异常
字符串复制
>>>a='sxt'*3 #使用*可以实现字符串复制
>>>a
>'sxtsxtsxt'
字符串打印
读取字符串
>>>myname=input("请输入名字") #使用input()从控制台读取键盘输入的内容
>请输入名字:seiya
>>>myname
>seiya
str()实现数字转型字符串
使用[]提取字符串
字符串的本质就是字符序列,在字符串后加[],并在[]中指定偏移量,就可以提取该位置的单字符
-
正向搜索
-
反向搜索
replace()实现字符串替换
字符串切片slice操作
>>>"to be or not to be"[::-1]#反向提取
>'eb ot ton ro eb ot'
>>>"sxtsxtsxtsxt"[::3]
>'ssss'
split()分割和join()合并
字符串比较与同一性(含字符串驻留机制)
成员操作符
in/not in 关键字,判断某个字符(子字符串)是否存于字符串中
常用查找方法
去除首尾信息
大小写转换
格式排版
center()居中
ljust()左对齐
rjust()右对齐
内容检测
format()用法
- 填充与对齐
>>>"我是{0},我喜欢{1:*^8}".format("seiya","666") # ^ < > 分别是居中\左对齐,右对齐
#:号后跟填充字符,只能是一个字符,不指定的话默认是空格
>'我是seiya,我喜欢**666***'
- 数字格式化