为对象引用赋予的名称称为标识符,有效的标识符包括引导字符和后续字符,只要是Unicode编码的字母,都可以充当引导字符,后续字符可以是数字,下划线,或任意非空字符;
1.标识符大小写敏感;
2.标识符不能使用关键字;
3.标识符不能和预定义的标识符同名;如NameError…
4.关于下划线的使用,应避免名称的前后都有下划线_,因为Python在定义各种特殊方法时,使用的这种格式。
5.规范起见,标识符应以字母、下划线开头。
Python提供了两种类型的Integral类型,int和bool,表示整数和布尔值。需要注意的是,int和bool值是固定的,一旦设定,就不能改变,但由于Python提供了增强的赋值操作符,因此不会导致实际问题,可以像其他语言那样修改int值。
bool值只有两个:True和False,还可以用1表示True,0表示False。
整数(int)和其他语言中的int不同,Python中整数的大小只受限于机器的内存;二进制数以0b引导,八进制数以0o引导,十六进制数以0x引导;
所有内置的数据类型都可以作为函数并不带任何参数进行调用,如:
x = int(),即x=0;
*内置类型和标准库数据类型区别:前者可以直接使用,后者需要导入相关的模块,并且需要使用模块名对数据类型名进行限定。
x/y: x除以y,返回的总是一个浮点数
x // y: x除以y,舍弃小数部分,使得结果总是整数;
x**y : 计算x的y次幂
-x: 对x取负数
+x:不做任何操作
abs(x): 求绝对值
divmod(x,y): 以二元组的形式返回x除以y的商和余数
pow(x,y): x的y次幂
pow(x,y,z): x**y%z
round(x,n): 四舍五入
Python提供了三种浮点值:内置的float和complex,标准库的decimal.Decimal类,这三种数据类型都是固定的。
float:存放双精度浮点类型。
复数(complex)存放一对浮点数,一个表示实数,一个表示虚数,如:3.5+2j;
decimal.Decimal:比float更精确,但是比浮点数的计算较慢。decimal用于提供固定的十进制数,使用Decimal时,需要导入decimal:
import decimal
获取decimal对象时:a = decimal.Decimal(6788)
decimal.Decimal的约束:
1.如果decimal.Decimal()作为**操作符左边的数字,则右边的操作数必须为整数;
2.如果pow()函数左边的数为decimal.Decimal(),则第二个、第三个也必须为整数;
使用str表示字符串类型,使用引号创建字符串对象,如:s = ’string‘,s=”just”,也可以使用三个引号’‘’或“”“来创建,只要保持起始端和终端匹配即可。
如果需要输出’‘“”,使用转义字符\进行转义后输出:s = "hahhaha.\"interest\""
跨行输出字符串:如果一个字符串过长,需要多行输出,有两种方式:
第一种:使用+\连接
s = "abcdefghijklmnopqrst"+\
"uvwxyz"
第二种:
s=("Python is interesting"
".very good")
比较字符串常用的操作符有:<,<=,==,!=,>,>=,比较字符串时,会在内存中逐个字节对字符串进行比较,返回bool值。
在说分片操作符之前,先来了解下字符串的索引位置,字符串s中的字符从左至右依次为s[0],s[1],……s[n],还有一种表示法,从右至左依次是s[-1],s[-2],…..s[-n+1];因此,s[0]总是表示第一个字符,s[-1]总是表示最后一个字符。
ch[start:end] #提取ch字符串中start-end位置的字符串,下同
ch[start:end:step]
ch[start]
ch[start:]
ch[:end] #提取ch字符串中0-end位置的字符串
ch[:] #提取整个字符串
如:
>>> s="wonderful Tonight"
>>> s[:4] #0-4的字符
'wond'
>>> s[3:12:2] #每隔2个字符提取3-5位置的字符
'dru o'
>>> s[::-1] #如果给定步距为负值,则起点索引值为-1.因此可以反转字符串
'thginoT lufrednow'
>>>
还可以使用分片操作符进行字符串的插入:
>>>s = "i you"
>>> s[:2] +"love "+s[2:]
'I love you'
>>>
不过这种连接方式并不高效,连接字符串时使用str.join()
方法。
字符串是固定序列,所以可用于固定序列的操作符都可用于字符串:如in 成员关系符,*=,+=,…下面一一说明。
*= :用于复制字符串:
>>> s = "heart of gold“
>>> s *= 4 #将s复制四次
>>> s
'heart of goldheart of goldheart of goldheart of gold'
>>>
+=:用于追加字符串:
>>> s = "Python,"
>>> s+=" nice"
>>> s
'Python, nice'
>>>
连接字符串:
str.join()
: #连接字符串,以序列作为参数,并将其进行连接,其中调用该方法的字符串作为分隔符添加在每项中间,如:
>>> " ".join(s)
'P y t h o n'
>>>
>>> s=["one","two","Three","four"]
>>> "--".join(s)
'one--two--Three--four'
>>>
反转字符串:str.join()
和str.reversed()
配合使用:
>>> s = "i love study"
>>> "".join(reversed(s))
'yduts evol i'
>>>
搜索字符串:
str.index(i,start,end)
:返回子字符串的索引位置,如果失败则产生ValueError异常。
str.find(i,start,end)
:返回子字符串的索引位置,如果失败则产生-1;
其中第二个、第三个参数可选,如:
>>> s = "what i want"
>>> s.index("i")
5
>>>
str.rindex(i,start,end)
:从右边开始搜索自字符串i;
str.rfind(i,start,end)
:从右边开始搜索自字符串i;
str.endswith(i,start,end)
:判断字符串是否已i结尾,第二第三个参数可选;
str,startswith(i,start,end)
:判断字符串是否已i开头,第二个第三个参数可选;
str.count(i,start,end)
:判断子字符串出现的次数,第二个第三个参数可选;如:
s.count("s",5) = s[5:].count("m")
;
替换字符串:
str,replace(t,u,n)
:返回s的副本,使用t替换u,最多可替换n次,n可选;
拆分字符串为元组:
str.partition(t)
:返回一个被t分隔的3个字符串的元组,如果t不在s中,则返回s和两个空串,如:
>>> s = "what i want"
>>> s.partition("i")
('what ', 'i', ' want')
>>> s.partition("c")
('what i want', '', '')
>>>
分隔字符串:
str.split(t,n)
:返回一个字符串列表,其字符串s被t分隔,最多分隔n次,t可选,n可选,t不指定时从空白字符处切割。如:
>>> s = "what i want"
>>> s.split("a")
['wh', 't i w', 'nt']
>>>
清空两端空白字符:
str.strip()
;
str.lstrip()
:清空左端空白字符
str.rstrip()
:清空右端空白字符