Python数据类型
一、数字
1.INT(整型) 即整数,如5
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
2.LONG(长整型) 长整数
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了
3.FLOAT(浮点型) 带有小数的数字
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号
使用type()查看变量类型
4.数字运算
>>> 2 + 4
6
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5
>>> 2 ** 3
8
>>> 15 % 6
3
>>> 15 // 6
2
二、字符串
用引号括起的都是字符串,可以是单引号或者双引号
“hello world”
1.使用反斜杠(\)转义特殊字符
>>> s = "yes,he doesn\'t"
>>> print(s,type(s),len(s))
yes,he doesn't <class 'str'> 14
2.字符串前面添加一个r,表示原始字符串
>>> print('c:\some\name')
c:\some
ame
>>> print(r'c:\some\name')
c:\some\name
>>>
3.字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复:
>>> print('str'+'ing','my'*3)
string mymymy
4.索引
>>> a="hello world"
>>> print(a[0],a[3])
h l
>>> print(a[-1],a[-3])
d r
5.切片
>>> name = "yoyoua"
>>> name[2:5]
'you'
>>> name[2:]
'youa'
6.字符串格式化
>>> name="yoyoua"
>>> print("I am %s" % name)
字符串%s;整数%d;浮点数%f
I am yoyoua
7.移除空格
>>> name = " yoyoua ".strip()
>>> name
'yoyoua'
.lstrip() 移除左边的空格,.rstrip()移除右边的空格,strip()移除两边的空格
8.使用换行符合制表符
>>>print("languages:\n\tpython\n\tjava")
languages:
python
java
三、字符串的方法
1.capitalize(self) 首字母变大写
name = "yoyoua" a = name.capitalize() print(a) Yoyoua
2.center(self, width, fillchar=None) 内容居中,width:总长度;fillchar:空白处填充内容,默认无
name = "yoyoua" a = name.center(10,"*") print(a) ***yoyoua***
3.count(self, sub, start=None, end=None) 子序列个数
name = "yoyoua" a = name.count("y") print(a) 2
4.endswith(self, suffix, start=None, end=None) 是否以 xxx 结束
name = "yoyoua" a = name.endswith("a") print(a) True
5.expandtabs(self, tabsize=None) 将tab转换成空格,默认一个tab转换成8个空格
name = "y\toyoua" a = name.expandtabs() print(a) print(len(a)) y oyoua 13
6.find(self, sub, start=None, end=None) 寻找子序列位置,如果没找到,返回 -1
name = "yoyoua" a = name.find("u") print(a) 4
7.format(*args, **kwargs) 字符串格式化
name = "yoyoua {0} as {1}" result = name.format("he","yaoguo") print(result) name = "yoyoua {name} as {id}" result = name.format(name="he",id="yaoguo") print(result) yoyoua he as yaoguo yoyoua he as yaoguo
8.index(self, sub, start=None, end=None) 子序列位置,如果没找到,报错
name = "yoyoua" a = name.index("a") print(a) 5
9.isalnum(self) 是否是字母和数字
name = "yoyoua" a = name.isalnum() print(a) True
10.isalpha(self) 是否是字母
name = "yoyoua" a = name.isalpha() print(a) True
11.isdigit(self) 是否是数字
name = "yoyoua" a = name.isdigit() print(a) False
12.islower(self) 是否小写
name = "yoyoua" a = name.islower() print(a) True
13.isspace(self) 是否是空格
name = "yoyoua" a = name.isspace() print(a) False
14.istitle(self) 是否为标题
name = "yoyoua" a = name.istitle() print(a) False
15.join(self, iterable) 连接
name = "yoyoua" a = name.join("bb") print(a) byoyouab
16.lower(self) 变小写
name = "Yoyoua" a = name.lower() print(a)
17.lstrip(self, chars=None) 移除左侧空白
name = " yoyoua" a = name.lstrip() print(a) yoyoua
18.partition(self, sep) 分割,前,中,后三部分
name = "yoyoua" a = name.partition("o") print(a)
('y', 'o', 'youa')
19.replace(self, old, new, count=None) 替换
name = "yoyoua" a = name.replace("o","n") print(a) ynynua
20.rfind(self, sub, start=None, end=None) 从右侧开始查找
name = "yoyoua" a = name.rfind("o") print(a) 3
21.ljust(self, width, fillchar=None) 内容左对齐,右侧填充
22.split(self, sep=None, maxsplit=None) 分割, maxsplit最多分割几次
name = " yoyoua " a = name.split("o") print(a) [' y', 'y', 'ua ']
23.splitlines(self, keepends=False) 根据换行分割
name = """ ak bb cc""" result = name.splitlines() print(result) ['', 'ak', 'bb', 'cc']
24.startswith(self, prefix, start=None, end=None) 是否起始
name = "yoyoua" a = name.startswith("y") print(a) True
25.swapcase(self) 大写变小写,小写变大写
name = "yOyoua" a = name.swapcase() print(a) YoYOUA
26.translate(self, table, deletechars=None) 转换,需要先做一个对应表,最后一个表示删除字符集合
intab = "aeiou" outtab = "12345" trantab = maketrans(intab,outtab) str = "this is string example...wow!!!" str.translate(trantab,'xm')
27.zfill(self, width) 方法返回指定长度的字符串,原字符串右对齐,前面填充0
name = "yoyoua" a = name.zfill(9) print(a) 0yoyoua
28.title() 单词首字母大写
name = "li yoyo" print(name.title()) Li Yoyo
29.upper() 所有字母变大写
name = "li yoyo" print(name.upper()) LI YOYO