python是一门动态的语言,所有的数据类型在使用时不需要强制申明,当你给一个变量赋值完后该变量的数据类型就自动定义完成。
python中的所有类型均为对象,数据类型在定义时其实就是一个实例化的过程
>>> a = 1
>>> type(a)
<class 'int'>
>>> a = '1'
>>> type(a)
<class 'str'>
>>> a = []
>>> type(a)
<class 'list'>
>>> a =()
>>> type(a)
<class 'tuple'>
>>> a = {}
>>> type(a)
<class 'dict'>
python主要的数据类型主要包括以下几种类型:
(1) 数字型
(2) 字符串
(3) 列表
(4) 元组
(5) 字典
(6) bool型
对于python的数据类型,可以通过内置函数dir()来查看相关的方法及属性,如 dir(int),具体到某个属性时可以通过help()来查看
一、数字
1 整型(int)
整型对应的方法及属性
bit_length(): 整数类型对应的二进制长度。如
>>> a = 1
>>> a.bit_length()
1
>>> a = 2
>>> a.bit_length()
2
>>> a = 4
>>> a.bit_length()
3
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,...) 返回给定参数的最小值,参数可以为序列
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j
x / y x除以y,3.x返回float型 如 3 / 2 = 1.5,2.x返回整数型 3 / 2 = 1
x // y x 除以y ,仅在3.x中有效,返回整数类型,与2.x中的 x / y 等价 3 // 2 = 1
二 字符串
字符串内建函数
capitalize : 将字符串的首字母大写,其它均小写
>>> a = 'aBCdEF'
>>> a.capitalize()
'Abcdef'
casefold : 此功能与lower功能类似,将字符串转换为小写
lower : 将所有字符转换为小写
center rjust ljust : 根据显示的长度中间对齐、左对齐、右对齐,不足的部分根据指定内容填充,默认为空格
>>>> b 'Hello sOrlD'
>>> b.center(20)
' Hello sOrlD '
>>> b.center(20,'*')
'****Hello sOrlD*****'
>>> b.ljust(20,'*')
'Hello sOrlD*********'
>>> b.rjust(20,'*')
'*********Hello sOrlD'
count : 统计字符串中包含子串的个数
>>> a = 'aaAAbbBB'
>>> a.count('a')
2
lstrip 、 rstrip、 strip : 去除字符串左边空格 右边空格 两边空格
>>> a
' abc '
>>> a.strip()
'abc'
>>> a.lstrip()
'abc '
>>> a.rstrip()
' abc'
startswith endswith 是否已制定子串开始 是否已制定子串结尾
>>> a='abc1234def'
>>> a.startswith('abc')
True
>>> a.endswith('def')
True
translate 用指定的字符串替换,该内置函数在2.x与3.x中使用方法有一定区别
2.x
>>> from string import maketrans 必须先导入此模块,3.x中不用了
>>> a = '12345'
>>> b = 'abcde'
>>> source = 'aAAbc123d'
>>> trans = maketrans(b,a)
>>> source.translate(trans)
'1AA231234'
将abcde替换成12345
3.x
>>> a = '12345'
>>> b = 'abcde'
>>> source = 'aAAbc123d'
>>> source.translate(source.maketrans(b,a))
'1AA231234'
split rsplit 按照指定字符进行分割
>>> a = '123e456e789'
>>> a.split('e')
['123', '456', '789']
>>> a.rsplit('e')
['123', '456', '789']
splitlines 按照行分隔,返回一个包含各行作为元素的列表
>>> a = '''123
456
789
'''
>>> a
'123\n456\n789\n'
>>> a.splitlines()
['123', '456', '789']
find rfind 分别表示从左边、右边开始搜索指定的字符串子串,返回从0开始的下标值,找不到返回-1
>>> a
'123\n456\n789\n'
>>> a.find('a')
-1
>>> a.find('\n')
3
>>> a.rfind('\n')
11
index rindex 功能与上面的find类似,只是找不到的时候返回错误
zfill 指定一个宽度,不足的左边补0
>>> a = 'abcd'
>>> a.zfill(10)
'000000abcd'
upper lower 分别表示转换字母为大 、小 写
join 用指定字符串分隔
>>> a
'abcd'
>>> ' '.join(a)
'a b c d'
>>> '_'.join(a)
'a_b_c_d'
replace 替换指定字符串为子串
>>> a = '123abc123'
>>> a.replace('abc','ABC')
'123ABC123'
swapcase 将字符串的大小写反转,大写变小写,小写变大写
>>> a='abcABC'
>>> a.swapcase()
'ABCabc''
format 格式化字符串,返回格式化后的内容
>>> s = 'i am {0}, age is {1},sex is {2}'
>>> s.format('aaaa',12,'F')
'i am aaaa, age is 12,sex is F'
>>> d = 'i am {name},age is {age}, sex is {sex}'
>>> d.format(name='sss',age=12,sex='F')
'i am sss,age is 12, sex is F'
判断属性:
isnum 是否是数字
isalpha 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
isdecimal 如果 string 只包含十进制数字则返回 True 否则返回 False
istitle 是否是标题(标题的每个单词首字母大写),是返回True
isupper 是否都是大写字母
islower 是否都是小写字母
isdigit 如果 string 只包含数字则返回 True 否则返回 False.
isalnum 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
字符串运算符
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
[] 通过索引获取字符串中字符 a[1] 输出结果 e
[ : ] 截取字符串中的一部分 a[1:4] 输出结果 ell
in 成员运算符 - 如果字符串中包含给定的字符返回 True H in a 输出结果 1
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True M not in a 输出结果 1