03-Python数字与字符串的方法

数字

  - 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()         修改字符串的值(并不是真正意义的修改,而是在内存中重新生成了一份新的)

 

posted @ 2019-02-13 17:53  Im_Roy  阅读(576)  评论(0编辑  收藏  举报