zoukankan      html  css  js  c++  java
  • Python 基础【第十篇】内置类型

     

    一、integral 类型

    Python提供了两种integral类型,即int(整数)与bool(布尔值)。

    1.1.整数

    整数的相关运算符、函数、数据类型转换

    1.1.1、整数的运算符 前面已经讲到了这里就不多复述了

    1.1.2、int相关方法

    pow(x,y)

    计算x的y次幂和x**y相同

    例:

    >>> pow(2,3)
    
    8

    pow(x,y,z)

    x**y%z 的另一种写法

    例:

    >>> pow(16,20,12)
    
    4

    abs(x)

    x 求的绝对值

    例:

    >>> abs(-1)
    
    1

    divmod(x,y)

    以二元组的形式输出x除以y所得的商和余数

    例:

    >>> divmod(12,5)
    
    (2, 2)

    round(x,n)

    返回浮点数x四舍五入后的整数,当指定n时返回小数点后n位

    例:

    >>> round(1.3333)
    
    1
    
    >>> round(1.3333,2)
    
    1.33

    cmp(x,y)

    对比x,y 如果x > y 返回 1,如果x < y 返回 -1 如果 x =y 返回0

    >>> cmp(12,11)
    
    1
    
    >>> cmp(12,13)
    
    -1
    
    >>> cmp(12,12)
    
    0

    1.1.3、整数类型转换

    int(i)

    将i转换为整数,

    如果转换失败则返回ValueError

    如果数据类型不知道转换到整数则返回异常 TypeError

    如果i为小数则返回整数部分

    例:

    >>> int(123)
    123
    >>> int(string)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base
    
    >>> int(3.56)
    3

    bin(i)

    将i转换为二进制

    例:

    >>> bin(10)
    '0b1010'

    oct(i)

    将i转换为八进制

    例:

    >>> oct(10)
    '012'

    hex(i)

    将i转换为16进制

    例:

    >>> hex(10)
    
    '0xa'

    int(‘s’,base)

    将s按照base基数值进行转换,base为2 - 36之间的整数

    比如

    base为2 那么就将2进制字符串转换为10进制

    base为8那么就将8进制字符串转换为10进制

    base为16那么就将16进制字符串转换为10进制

    例:

    >>> int('0b1010',2)
    10
    >>> int('0o12',8)
    10
    >>> int('0x14',16)
    20

    1.1.4、整数逻辑操作符

    clip_image010

    1.2.布尔

    布尔值包含True(真) 和 False(非真) 两种状态,在布尔表达式中 0 和 False 都表示 False 其他任意整数和True都表示True

    在整数表达式中 False表示0 、True表示1

    根据上述的描述有个很有意思的事情 布尔值和数字能够做运算

    例如:

    >>> False - 1
    
    -1
    
    >>> 1 + True
    
    2

    上面分别表示 “0 – 1” 和 “1 + 1”

    二、浮点型

    浮点型,即带有小数的数字

    int转换成浮点:

    float(number)

    例:

    >>> float(1)
    
    1.0

    精确小数点:

    ‘%0.2f’%numbe

    上面的2为保留几位小数点f代表浮点数 上面表示将number小数点精确到2位

    例:

    >>> '%0.2f'%3.2312323
    
    '3.23'

    三、字符串

    3.1.字符串分片与步距

    一个字符串可以分割为n(大小由字符串长度而定)个片 可以用 “[]” 来提取分片,字符串的索引位置正序从0开始 倒序从-1开始 也就是第一位是[0] 最后一位是[-1] 相应的 第二位和倒数第二位分别为 [1] 和 [-2]

    分片操作的语法格式:

    s[start]  //提起 ‘start’ 位置的元素

    s[start:end]  //提取 ‘start’ 和 ‘end’ 之间的元素

    s[start:end:step]  //提取 ‘start’ 和 ‘end’ 之间的元素 每隔 ‘step’ 打印一次

    例如:

    >>> 'string test'[3]
    
    'i'
    
    >>> 'string test'[1:4]
    
    'tri'
    
    >>> 'string test'[0:3:2]
    
    'sr'

    3.2.字符串追加连接

    字符串追加连接符 “+”

    例如:

    >>> print ("this is string"+"string2")
    
    this is stringstring2

    3.3.字符串复制

    字符串复制 s*n s为要复制的字符串 *为复制操作 n为复制次数

    例如:

    >>> s = 'string'*5
    
    >>> print (s)
    
    stringstringstringstringstring

    3.4.字符串转义

    字符串转义符 “” 反斜杠

    例如:

    //转义前
    
    >>> print ("this is "string"")
    
    File "<stdin>", line 1
    
    print ("this is "string"")
    
    ^
    
    SyntaxError: invalid syntax
    
    //转义后
    
    >>> print ("this is "string"")
    
    this is "string"

    3.5.字符串内置方法

    内置方法

    用法

    举例

    string.capitalize()

    字符串首字母大写

    >>> string = 'hello'
    
    >>> string.capitalize()
    
    'Hello'

    string.center(20,’-’)

    总长度为20个字符居中显示string两边填充- (如果不指定填充符则默认 填充空格)

    >>> string = 'hello'
    
    >>> string.center(20)
    
    ' hello '
    
    >>> string.center(20,'-')
    
    '-------hello--------'

    string. ljust(30,’-‘)

    总长度为20个字符居中显示string两边填充- (如果不指定填充符则默认 填充空格)

    >>> string = 'hello word'
    
    >>> string.ljust(30,'-')
    
    'hello word--------------------'

    string.count(s,start,end)

    统计s在string中从下标start开始的个数找到end位为止 (下标位可以自己指定 如不指定则默认从0开始 到最后一位结束)

    >>> string = 'welcome python gogogo'
    
    >>> string.count('o')
    
    5
    
    >>> string.count('o',6)
    
    4
    
    >>> string.count('o',4,6)
    
    1

    string.endswith(‘s’)

    判断字符串是否以s结尾 如果是则返回True 否则返回False

    >>> string = 'hello word'
    
    >>> string.endswith('h')
    
    False
    
    >>> string.endswith('d')
    
    True

    string.startswith('s')

    判断字符串是否以s开头如果是则返回True 否则返回False

    >>> string = 'hello word'
    
    >>> string.startswith('hell')
    
    True
    
    >>> string.startswith('w')
    
    False

    string.expandtabs(tabsize)

    将table转换为空格 空格个数为tabsize,tabsize不指定默认8个空格

    >>> string = 'hello word'
    
    >>> string.expandtabs()
    
    'hello word'
    
    >>> string.expandtabs(1)
    
    'hello word'
    
    >>> string.expandtabs(0)
    
    'helloword'

    string.find(‘s’,start,end)

    查找字符串s的下标位存在返回下标 不存在返回-1 start、end 查找的开始位和结束位(不指定start默认起始0 不指定end则结束位为最后一位)

    (注:find只打印第一个匹配值的下标 如果不指定start则每次都是匹配第一个匹配的值)

    >>> string = 'let gogogo'
    
    >>> string.find('g')
    
    4
    
    >>> string.find('g',7)
    
    8
    
    >>> string.find('g',5)
    
    6
    
    >>> string.find('g',7,9)
    
    8

    string.format()

    格式化字符串将值动态传入字符串

    (注:下标是有序的必须根据下标位来对应相应的值 变量无序根据变量名匹配)

    format通过下标、变量两种方式传值

    下标:
    
    >>> string = 'My name is {0} , age {1}'
    
    >>> string.format('Alan',25)
    
    'My name is Alan , age 25'
    
    变量:
    
    >>> string = 'My name is {n} , age {a}'
    
    >>> string.format(n='Alan',a=25)
    
    'My name is Alan , age 25'

    ‘string’.join()

    使用string将join()内的字符串连接

    >>> lists = ['1','2','3']
    
    >>> '-'.join(lists)
    
    '1-2-3'

    string.lower()

    字符串变小写

    >>> string = 'Hello'
    
    >>> string.upper()
    
    'HELLO'

    string.upper()

    字符串变大写

    >>> string = 'Hello'
    
    >>> string.lower()
    
    'hello'

    string.swapcase()

    大写变小写小写变大写

    >>> string = 'Hello'
    
    >>> string.swapcase()
    
    'hELLO'

    string.replace(string1,string2)

    字符串替换

    将string1 替换为 string2

    >>> string = 'Hello lisa'
    
    >>> string.replace('lisa','Alan')
    
    'Hello Alan'

    string.split(’s’)

    字符串分割 s为分隔符 分割结果以列表形式返回

    >>> string = 'hellowordpythongogogo'
    
    >>> string.split('o')
    
    ['hell', 'w', 'rdpyth', 'ng', 'g', 'g', '']

    string.index(’s’)

    返回s在string中的下标位 如果不存在则返回 -1

    注:多个匹配字符串只返回第一个

    >>> string = 'hello'
    
    >>> string.index('e')
    
    1
    
    >>> string.index('l')
    
    2

    string.isalnum()

    判断string是否为字符串或者字母 是返回True 否返回 Flase

    >>> string = 'hello'
    
    >>> string.isalnum()
    
    True
    
    >>> string = '-'
    
    >>> string.isalnum()
    
    False

     

    3.6.字符集编码

    解码编码:

    clip_image012

    如上图所示 UTF-8和GBK 不能直接转换 必须从一种编码格式(比如 UTF-8)解码为Unicode然后再从Unicode编码成另一种编码格式(比如 GBK)

    编码和解码分别通过encode decode 两种方法实现

    编码:

    string.encode

    解码:

    string.decode

    string.decode(‘原编码’) 将原编码类型的字符串解码为unicode

    >>> string = ''
    
    >>> string.decode('utf-8')
    
    u'u65e0'

    (注:上面起始位的u为unicode编码的标示)

    string.encode(‘要编码成的编码’)

    >>> string = ''

    //先将utf-8的字符串解码 然后编码为gbk

    >>> string.decode('utf-8').encode('gbk')
    
    'xcexde' 
  • 相关阅读:
    Kotlin 数据类与密封类
    Kotlin 扩展
    Kotlin 接口
    Kotlin 继承
    Kotlin 类和对象
    Kotlin 循环控制
    Kotlin 条件控制
    Kotlin 基础语法
    freemarker的简单入门程序
    json数据格式的简单案例
  • 原文地址:https://www.cnblogs.com/Alanpy/p/5059292.html
Copyright © 2011-2022 走看看