Python数据类型

Posted mingleyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据类型相关的知识,希望对你有一定的参考价值。

数值 int

  • int(x,[base])
    将字符串转换成数值
>>>a = "123"
>>>print(type(a),a)   ##可以得到该类型为str

>>>b = int(a) 
>>>print(type(b),b)   ##可以得到该类型为int,将字符串"123"转换成了数字123

>>>num = "0011"
>>>v = int(num, base = 16)
>>>print(v)           ## 按着16进制来处理
将一个数值按着或base类型的字符串转换成整数,当有base之后,x必须为str.base的取值范围为2~36.
  • bit_lenght
    返回表示该数值时占用的最少位数
>>>bin(37)
'0b100101'
>>>(37).bit_lenght()
6

布尔值 bool

  • 真与假
  • True与False
  • 1 与 0

字符串 str

常有功能:

  • 移除空白

    -lstrip(self, chars = None)

    >>>s = "  rany  "
    >>>s.lstrip()
    >>>print(s)
    rany  ##左边的两个空格没有了,而右边的两个空格还在
    
    >>>s = 'dgsnja'
    >>>s.lstrip(d)
    >>>print(s)
    gsnja  ##表示去掉从左边开始的,括号里的值

    -rstrip(self,chars = None)

    从右边开始,其他同lstrip()

    -strip(self, chars = None)

    去掉两边的,其他同lstrip()

  • 分割

    -partition(self, sep)

    分割成前、中、后是三个部分

    >>> v = 'abcdabcdfhkdfk'
    >>> m = v.partition('d')
    >>> print(m)
    ('abc', 'd', 'abcdfhkdfk')

    -rpartition(self, sep)

    从右边开始,其他与partition()雷同

    -split(self, sep=None, maxsplit=None)

    以什么为基础,最多分割几次

    ('abc', 'd', 'abcdfhkdfk')
    >>> v = "abcabcdabcdefg"
    >>> m = v.split("c",3)
    >>> print(m)
    ['ab', 'ab', 'dab', 'defg'] ##注意:被作为基础的值,将会被遗弃

    -rsplit(self, sep=None, maxsplit=None)

    从右边开始,其他与split()雷同

    -splitlines(self, keepends=False)

    分割,但是只保留行

    >>> v = "I like your eyes\nI love you\nI think you are good"
    >>> m = v.splitlines()
    >>> print(m)
    ['I like your eyes', 'I love you', 'I think you are good']
  • 长度

    可以用len()函数,得到其长度,在Python 2里面会得到其字节长度,而Python 3中会得到其字符长度

    >>> v = "I love you"
    >>> print(len(v))
    10
  • 索引

    >>> v = "I love you"
    >>> print(v[0])  ##通过索引下标可以得到字符里的值,其是从0开始计数
    I
  • 判断 得到的都是bool

    -endswith(self, suffix, start = None, end = None)

    以什么结尾

    >>>test = "I like to play games"
    >>>v = test.endswith("es")
    >>>print(v)
    True

    -startswith(self, suffix, start = None, end = None)

    以什么开始,与endswith雷同

    -isalnum(self)

    判断是否为数值或者字母

    -isalpha(self)

    判断是否为汉字或者字母

    -isdigit(self)

    True: Unicode数字,byte数字(单字节),全角数字(双字节)

    False: 汉字数字 ,罗马数字

    Error: 无

    -isdecimal(self)

    True: Unicode数字,全角数字(双字节)

    False: 罗马数字,汉字数字

    Error: byte数字(单字节)

    -isnumeric(self)

    True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
    False: 无
    Error: byte数字(单字节)

    -isprintable(self)

    判断是否有\t制表符或者\n换行符,如果有就返回False

    -isspace(self)

    判断是否全部为空格

    -istitle(self)

    判断是否为标题,即每一个字母都是大写开头

    -islower(self)

    判断是否全部为小写

    -issupper(self)

    判断是否全部为大写

  • 查找

    -count(self, sub, start = None, end = None)

    查找子序列的个数

    >>>test = "aLexalexr
    >>>v = test.count('ex',5,6)
    >>>print(v)
    1

    -find(self, sub, start = None, end = None)

    寻找子序列位置,如果没有找到,则返回“1”

    >>>test = "L like your hair"
    >>>v = test.find('your')
    7

    -index(self, sub, start = None, end = None)

    查找索引,同find()雷同,但是如果没有找到,则报错

  • 切片

    >>> v = "I love you"
    >>> print(v[0:5])  ##可以取得一定范围里的字符,但是其顾头不顾尾
    I lov
  • 变大小写

    -capitalize(self)

    让该字符串所有单词的首字母变大写

    >>>test = "l like your eyes"
    >>>test.capitalize()
    >>>print(test)
    L Love Your Eyes

    -lower(self)

    让字符串里面所有字母变成小写

    >>>test = "L lIke Your Eyes"
    >>>test.lower()
    >>>print(test)
    l like your eyes

    -casefold(self)

    同lower,但是不同之处在于casefold的功能更强大,适用于更多种类的语言

    >>>test = "L Like yOur eyEs"
    >>>test.casefold
    >>>print(test)
    l like your eyes

    -swapcase(self)

    大小写相互转换

    >>> v = "I Love You"
    >>> m = v.swapcase()
    >>> print(m)
    i lOVE yOU

    -isidentifier(self)

    判断是否为标识符

    >>> v = "False"
    >>> m = v.isidentifier()
    >>> print(m)
    True
  • 填充替换

    -center(self, width, fillchar = None)

    设置总长度,并将内容居中

    >>>test = 'yy'
    >>>v = test.center(6,"*")
    >>>print(v)
    **yy**

    -ljust(self, width, fillchar = None)

    从左边开始填充,其他与center雷同

    -rjust(self, width, fillchar = None)

    从右边开始填充,其他与center雷同

    -zfill(self, width)

    雷同于ljust(),但是只填充0

    >>>test = 'yy'
    >>>v = test.zfill(6,"*")
    >>>print(v)
    0000yy

    -join(self, iterable)

    连接

    >>>test = "loveyou"
    >>>v = '-'.join(test)
    >>>print(v)
    l-o-v-e-y-o-u

    -replace(self, old, new, count=None)

    把某字符转换成指定的字符

    >>> v = "I like you"
    >>> m = v.replace("like", "love")
    >>> print(m)
    I love you
  • 其他

    -expandtabs(self, tabsize = None)

    将tab转换成空格,默认一个tab转换成8个空格

    >>>test = "username\temail\tpassword"
    >>>v = test.expandtabs(3)
    >>>print(v)
    username  temail  tpassword   ##这些单词之间都多了两个空格

    -format(*args, **kwargs)

    格式化

    >>>test = 'I am {name}, age {a}'
    >>>v = test.format(name = "Hermaeus", age = 19)
    >>>print(v)
    I an Hermaeus, age 19

    -translate(self, table, deletechars=None)

    转换,需要提前做一个对应表,最后一个表示删除字符集合

    >>> v = "I like your eyes"
    >>> m = str.maketrans("your", "1234") ##先建立一个对应关系,两个值必须等长
    >>> new_v = v.translate(m)  ##转换
    >>> print(new_v)
    I like 1234 e1es
  • 循环

    可以通过for循环打印字符串

    >>> v = "I love you"
    >>> for i in v:
      print(i)    
    I
    
    l
    o
    v
    e
    
    y
    o
    u

(四)range(start, stop,[ step])

可以通过range()函数得到一个连续的,或者递增/递减的取值范围

>>> for i in range(1,10,2):
    print(i)    
1
3
5
7
9

以上是关于Python数据类型的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

在python 3.6中处理自定义编码时遇到类型错误

在代码片段中包含类型转换

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段