数字
- int
将字符串转换为数字
a = "123"
print(type(a),a)
b = int(a)
print(type(b),b)
int默认将字符传内部的数字当作10进制,如不是10进制需要base参数定义,如:
num = "f"
v = int(num, base=16)
print(v)
# 结果 15
- .bit_lenght()
当前数字的二进制,至少用n位表示。
age = '10001'
a = int(age,base=2)
print(a,a.bit_length())
# 结果 17 5
字符串
- str
将内容转换成字符串
age = 17
print(type(str(age)))
# 结果 <class 'str'>
- .capitalize() 将首字母大写。
- .upper() 将首字母大写。
- .casefold() 所有变小写,可转换的更多。
- .lower() 所有变小写。
- .center() 左右填充。
# 第一个参数左右填充一共多少字符。 第二个参数是空白位置填充,默认为空格。
print(name.center(20,'-'))
- .count() 统计某字符串出现的次数,可以指定起始位置和结束位置(索引值)
- .endswith() 查找是否以某字符串结尾,返回(True/False)
- .startwith() 查找是否以某字符串开头,返回(True/False)
- .expandtabs()
此方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
从头开始数,数到第一个\t正好为8个空格,不足则补空格,如果还有\t,接着从第一个\t数到第二个\t仍然为8个空格,以此类推直到最后一个\t结束。
举例:
#!/usr/bin/env python
#-*- encoding:utf-8 -*-
S = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"
v = S.expandtabs(20)
print(v)
'''
结果
username email password
laiying ying@q.com 123
laiying ying@q.com 123
laiying ying@q.com 123
'''
注:如果字符串长度超出定义长度,则排版可能会出现问题。
- .find() 查找字符串所在的索引位置,只找第一个位置,可以指定起止位置,如查找不到值为 -1 。
- .format() 格式化,将字符串中的占位符替换为指定的值。
- .format_map() 格式化,将字符串中的占位符替换为指定的值。
name = 'i am {name}, {accept}'
print(name.format(name='roy',accept='haha!'))
name = 'i am {0}, {1}'
print(name.format('roy','haha!'))
name = 'i am {name}, {accept}'
print(name.format_map({'name':'roy','accept':'haha!'}))
# 结果 i am roy, haha!
- .index() 查找字符串所在的索引位置,如果找不到会报错。 可以被.find()代替。
- .isalnum() 判断字符串内只包含数字或字母或汉子。返回(True / False)。
- .isalpha() 判断字符串内只包含字母或汉子。返回(True / False)。
- .isdigit() 如果字符串只包含数字则返回 True 否则返回 False (可以判断一些特殊形式的数字)。
- .isdecimal() 检查字符串内是否只包含十进制字符。这种方法只存在于unicode对象。
- .isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
- .isprintable() 是否存在不可显示的字符 \t \n。
- .isspace() 是否全是空格
- .isdentifier() 判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法。
- .istitle() 是否为标题。检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
- .title() 转换为标题。
- .islower() 判断是否全是小写字母。
- .lower() 全部转换小写。
- .isupper() 判断是否全是大写字母。
- .upper() 全部转换大写。
- .join() 拼接。将字符串中的每一个元素按照指定分隔符进行拼接
print('-'.join('ROY'))
# 结果 R-O-Y
- .ljust() 左填充字符
- .rjust() 右填充字符
num = "13688880000"
print(num.ljust(15,"*"))
print(num.rjust(15,"*"))
print(num[:3].ljust(7,"*")+num[-4:])
''' 结果
13688880000****
****13688880000
136****0000
'''
- .zfile() 填充0,适用二进制填充~
num = '1001'
print(num.zfill(8))
# 结果 00001001
- .strip() 用于移除字符串头尾指定的字符(默认为空格、换行、制表符)或字符序列。 指定字符序列是以“最长公共子序列”规则匹配。
- .lstrip() 左移除
- .rstrip() 右移除
- .maketrans() 对应关系替换,用于简单加密?
- .translate() 与maketrans方法配合使用
num = '1001'
encrypt = str.maketrans('1234567890','abcdefgijk')
print(num.translate(encrypt))
# 结果 akka
- .partition() 用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的“元组”,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
- .rparttion() 右向左分割
domain = "www.baidu.com"
print(domain.partition("."))
# 结果 ('www', '.', 'baidu.com')
- .split() 通过指定分隔符对字符串进行切分为“列表”,不保留分割符。如果参数 num 有指定值,代表分割几次。
- .rsplit() 从右向左
- .splitlines() 包含分隔符的分割方法
str1 = "Line1\n\tLine2 \nLine3 Line4"
print(str1.split())
print(str1.split(' ', 1))
print(str1.splitlines())
''' 结果 ['Line1', 'Line2', 'Line3', 'Line4'] ['Line1\n\tLine2', '\nLine3 Line4']
['Line1', '\tLine2 ', 'Line3 Line4']
'''
- .swapcase() 大小写互换
- .replace() 修改字符串的值(并不是真正意义的修改,而是在内存中重新生成了一份新的)