【NOTE】Python 3(四)标准数据类型
标准数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Number(数字类型)
Python 3 中数字类型有整型、浮点型和复数型。整型数字在Python 3 中就是 int 类型,可以当做 Long 类型来使用。
字符串转数字
#!/usr/bin/env python # coding=utf-8 number_str = "12345" #字符串 print("number_str =", number_str) print("number_str type is", type(number_str)) number_int = int(number_str) #转换为数字,默认以10进制来转 print("number_int", number_int) print("number_int type is", type(number_int))
结果:
number_str = 12345
number_str type is <class 'str'>
number_int 12345
number_int type is <class 'int'>
String(字符串)
Python 中没有单字符一说,单个字符也被作为字符串处理。
首字母大写
#!/usr/bin/env python str = "shelmean" ret_str = str.capitalize() print(ret_str)
结果:
Shelmean
大写转小写
casefold() 不仅仅是英文字母的大写转小写,像一些其它非英文字母的大小写对应关系也可以。
lower() 仅仅是英文字母大写转小写。
#!/usr/bin/env python str = "ShelMean" ret_str = str.casefold() print(ret_str) ret_str = str.lower() print(ret_str)
结果:
shelmean
shelmean
字符串设置宽度并填充
#!/usr/bin/env python str = "shelmean" ret_str = str.center(20, "*") #第二个参数不传的话,默认是空白字符填充,这里只能是单个字符的字符串 print(ret_str) print(str.ljust(20, '*')) print(str.rjust(20, '*'))
结果:
******shelmean******
shelmean************
************shelmean
子字符串个数统计
#!/usr/bin/env python str = "shelmean" ret = str.count("x") print(ret) ret = str.count("s") print(ret) ret = str.count("e") print(ret) ret = str.count("ea", 4) #从第4位开始统计(第一个字符是第0位) print(ret) ret = str.count("mea", 5, 7) #从第5到第7位中的字符串中统计(字符串操作中,开始和结束的位置是左闭右开的一个区间 [5,7) ) print(ret)
结果:
0 1 2 1 0
以某个字符串开始或结尾
#!/usr/bin/env python str = "shelmean" ret = str.startswith("s") print(ret) ret = str.endswith("an") print(ret)
结果:
True
True
查找字符串并返回第一次查找到的位置
find() 和 index()都可以查找字符串,但是,index()查不到的时候,会报错,find()返回-1
#!/usr/bin/env python str = "shelmean" ret = str.find("e") #从左往右,返回第一个查找到的字符串的开始位置 print(ret) ret = str.find("mean", 4, 7) #左开右闭的区间,所以无法找到 print(ret) ret = str.find("mean", 4, 8) #左开右闭的区间,应该多一位出来 print(ret)
结果:
2 -1 4
占位符
format() 和 format_map()
# #!/usr/bin/env python str = "my nickname is {nickname}, I am a {sex}, age is {age}" print(str) str_ = str.format(nickname="shelmean", sex="boy", age=18) print(str_) _str = "my nickname is {0}, I am a {1}, age is {2}" print(_str) _str_ = _str.format("shelmean", 'boy', 18) print(_str_) print("--------------------------------------------------") str__ = str.format_map({"nickname": "shelmean", "sex": "boy", "age": 18}) print(str__)
书写规范:
从代码中可以看出
1.变量的赋值符号左右带有空格
2.逗号后面带有空格
3.参数中像是键值对的这种,赋值符号左右不留空格如:nickname="shelmean"
4.键值对中的":"后面有空格,如:"age": 18
使用pycharm会有提示。
结果:
my nickname is {nickname}, I am a {sex}, age is {age} my nickname is shelmean, I am a boy, age is 18 my nickname is {0}, I am a {1}, age is {2} my nickname is shelmean, I am a boy, age is 18 -------------------------------------------------- my nickname is shelmean, I am a boy, age is 18
判断字符串中是否只包含 字母和数字
# #!/usr/bin/env python str = "shelmean2rj" ret = str.isalnum() print(ret) str = "shelmean" ret = str.isalnum() print(ret) str = "12345" ret = str.isalnum() print(ret) str = "_shelmean-2*rj" ret = str.isalnum() print(ret)
结果:
True
True
True
False