欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第三章 数据类型之整型、布尔、字符串

程序员文章站 2022-05-16 10:20:58
3.1 整型(int) 整型的长度 py2中有:int/long 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~922 ......

3.1 整型(int)

  1. 整型的长度

    py2中有:int/long

    • 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647

    • 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807

    • 超出长度之后就会变为long类型。

    py3中有:int (int/long)

  2. 整除

    py2和py3中整除是不一样。

    注意:在python2中使用除法时,只能保留整数位,如果想要保留小数位,可以先导入一个模块。

    from __future__ import division 
    value = 3/2
    print(value)

3.2 布尔(bool)

  1. 布尔值就是用于表示真假。true和false。

  2. 其他类型转换成布尔值为false:

    • 0

    • ""

    • []

    • ()

    • {}

    • set()

    • none

  3. 其他类型转换成布尔值为false:

    • 除了以上其他转换都是true

3.3 字符串(str)

  字符串是写代码中最常见的,python内存中的字符串是按照:unicode 编码存储。对于字符串是不可变。

  字符串自己有很多方法,如:

  1. upper() #全部大写  isupper() #

    v = 'alex'
    v1 = v.upper()
    print(v1)
    v2 = v.isupper() # 判断是否全部是大写
    print(v2)

     

  2. 小写:lower

    v = 'alex'
    v1 = v.lower()
    print(v1)
    v2 = v.islower() # 判断是否全部是小写
    print(v2)
    ​
    ​
    ############ 了解即可
    v = 'ß'
    # 将字符串变小写(更牛逼)
    v1 = v.casefold()
    print(v1) # ss
    v2 = v.lower()
    print(v2)

     

  3. 判断是否是数字: isdecimal

    v = '1'
    # v = '二'
    # v = '②'
    v1 = v.isdigit()  # '1'-> true; '二'-> false; '②' --> true
    v2 = v.isdecimal() # '1'-> true; '二'-> false; '②' --> false
    v3 = v.isnumeric() # '1'-> true; '二'-> true; '②' --> true
    print(v1,v2,v3)
    # 以后推荐用 isdecimal 判断是否是 10进制的数。
    ​
    # ############## 应用 ##############
    ​
    v = ['alex','eric','tony']
    ​
    for i in v:
        print(i)
    ​
    num = input('请输入序号:')
    if num.isdecimal():
        num = int(num)
        print(v[num])
    else:
        print('你输入的不是数字')

     

  4. strip() #去除两边空格 +\t+\n + 指定字符串

    .lstrip() #去除左边空格

    .rstrip()#去除右边空格

    v1 = "alex "
    print(v1.strip())
    ​
    v2 = "alex\t"
    print(v2.strip())
    ​
    v3 = "alex\n"
    print(v3.strip())
    ​
    v1 = "alexa"
    print(v1.strip('al'))

     

  5. replace("被替换的字符/子序列","要替换为的内容") .

    replace("被替换的字符/子序列","要替换为的内容",几次).

    # 示例一
    a = "abc23"
    b = a.replace("ab","12")
    print(b)    # 12c23
    ​
    # 示例二
    a = "abc23abab"
    b = a.replace("ab","12",2)
    print(b)    # 12c2312ab

     

  6. split('根据什么东西进行分割') #从左往右分割

    split('根据什么东西进行分割', 几次) #从左往右分割

    rsplit('根据什么东西进行分割') #从右往左分割

    rsplit('根据什么东西进行分割', 几次) #从右往左分割

    partition('3') # 将指定字符串分为三分:前面,自己,后面

    # 示例一
    a = "abc23abab"
    b = a.split("b")
    print(b)    #['a', 'c23a', 'a', ''] 
    ​
    # 示例二
    a = "abc23abab"
    b = a.split("b",2)
    print(b)    # ['a', 'c23a', 'ab']
    ​
    # 示例三
    a = "abc23abab"
    b = a.rsplit("b")
    print(b)    # ['a', 'c23a', 'a', '']
    ​
    # 示例三
    a = "abc23abab"
    b = a.rsplit("b",2)
    print(b)    # ['abc23a', 'a', '']
    ​
    v1 = v.partition('3') # 将指定字符串分为三分:前面,自己,后面
    print(v1)

     

  7. startswith() # 判断是否以什么开头

    endswith() #判断是否以什么结尾

    # 示例一
    a = "abc23abab"
    b = a.startswith("a")
    print(b)    # true
    ​
    # 示例二
    a = "abc23abab"
    b = a.endswith("b")
    print(b)    # true

     

  8. encode() # 指定的编码格式编码字符串

    name = '李杰' # 解释器读取到内存后,按照unicode编码存储:8个字节。
    v1 = name.encode('utf-8')
    print(v1)
    v2 = name.encode('gbk') # b'\xe6\x9d\x8e\xe6\x9d\xb0'   b为字节
    print(v2)              # b'\xc0\xee\xbd\xdc'

     

  9. format format_map # 字符串格式化的功能。

    基本语法是通过 {}: 来代替以前的 %

    format 函数可以接受不限个参数,位置可以不按顺序。

    a = "{} {}".format("hello", "world")   # 不设置指定位置,按默认顺序
    print(a)    # 'hello world'
     
    a = "{0} {1}".format("hello", "world")  # 设置指定位置
    print(a)    # 'hello world'
     
    a = "{1} {0} {1}".format("hello", "world")  # 设置指定位置
    print(a)    # 'world hello world'
    ​
    v= '我是{0},谢谢谢 {1}'.format('alex',19)
    print(v)
    v= '我是{x1},谢谢谢 {xx}'.format_map({'x1':'alex','xx':19})
    print(v)
    ​
    # v1 = "我是{0},年龄{1}".format('alex',19)
    v1 = "我是{0},年龄{1}".format(*('alex',19,))
    print(v1)
    ​
    # v2 = "我是{name},年龄{age}".format(name='alex',age=18)
    v2 = "我是{name},年龄{age}".format(**{'name':'alex','age':18})
    print(v2)

     

  10. join() # 将序列中的元素以指定的字符连接生成一个新的字符串。

    name = 'abcd' # a_b_c_d
    result = "+".join(name) # 循环每个元素,并在元素和元素之间加入连接符。
    print(result)   # a+b+c+d

     

  11. center() 该方法返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。

    str = 'runoob'
    str.center(20, '*')
    '*******runoob*******'
    str.center(20)
    '       runoob       '

     

  12. rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。

    str = "this is string example....wow!!!"
    print (str.rjust(50, '*'))
    # ******************this is string example....wow!!!

     

  13. count 计算子序列出现的次数

    v = 'aealeax'
    v1 = v.count('ea')
    print(v1)

     

  14. find,找索引位置(从左到右找到第一个),存在则返回索引位置,不存在则返回 -1 index, 找索引位置(从左到右找到第一个),存在则返回索引位置,不存报错

    v = 'alexex'
    index = v.find('u')
    print(index