• python学习:基础数据类型


    1、数字 int

    python中数字默认用十进制表示,但是也可以用二进制、八进制和十六进制表示。

     >>> 10
     10            --------->默认十进制
    >>> bin(10)
    '0b1010' --------->二进制表示整数时,数值前面要加上一个前缀“0b”
    >>> oct(10)
    '012' --------->八进制表示整数时,数值前面要加上一个前缀“0”
    >>> hex(10)
    '0xa' --------->十六进制表示整数时,数字前面要加上前缀0X或0x

    2、布尔值 bool

         两种值: 

                     真    1     True

                     假    0      False

    3、字符串 str

    3.1、字符串是一个有序的集合,使用引号(‘python’,“python”,'''python''',"""python""")括起来,其实注释也是一个字符串。

    3.2、字符串的索引(下标)是从左边到右,第一个是0。

    3.3、如果字符串中还有特殊字符,比如回车、换行、tab。要想显示原始的字符串,必须在字符串的引号前加上 r,否则这些特殊字符会被转义。

    1 s = 'l	hf'
    2 print(s)     # 输出结果:l    hf
    3 
    4 s = r'l	hf'
    5 print(s)     # 输出结果:l	hf

    另外值得注意的是在某些文件路径赋值给某个字符串变量,也需要加 r 转义,否则会抛出异常。

     1 s = 'C:UsersWHK00101Desktoplog.txt'    #抛出异常
     2 print(s)
     3 
     4 s = r'C:UsersWHK00101Desktoplog.txt'    #正常
     5 print(s)
     6 
     7 s = 'C:/Users/WHK00101/Desktop/log.txt'    #正常
     8 print(s)
     9 
    10 s = 'C:\Users\WHK00101\Desktop\log.txt' #正常
    11 print(s)

    3.4、unicode字符串与r连用必需在r前面,如name=ur'l hf'

    3.5、字符串函数汇总:

    索引:从左到右,下表从0开始

    1 a = 'ABCDEFGHIJK'
    2 print(a[0])  # 输出 A 
    3 print(a[3])  # 输出 D
    4 print(a[5])  # 输出 F
    5 print(a[7])  # 输出 H

    切片:切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)。

     1 a = 'ABCDEFGHIJK'
     2 print(a[0:3])        # 取出ABC,注意从开头开始取0可以默认不写:print(a[:3])  效果一样
     3 print(a[2:5])        # 取出CDE
     4 print(a[:])          # 取出全部字符串,可以取到最后一个元素K,也可以写成:print(a[0:])
     5 print(a[:-1])        # 取出ABCDEFGHIJ,注意:最后一位的下标是-1,倒数第二位是-2,以此类推。但是要满足顾头不顾尾的原则,所以取不到K元素
     6 print(a[:5:2])       # 取出ACE,2是步长,即从位置0开始,每隔2个字符取一个
     7 print(a[-1])         # 取出K
     8 print(a[-2])         # 取出J
     9 print(a[-1:2:-1])    # 取出KJIHGFED
    10 print(a[::-1])       # 取出KJIHGFEDCBA
    11 print(a[-1:-5:-2])   # 取出KI

    移除空白strip、lstrip、rstrip:

    1 str = ' 	  
      feihongtao  	   
       '
    2 print(str.lstrip())  #去掉左边的空白
    3 print(str.rstrip())  #去掉右边的空白
    4 print(str.strip())   #去掉两边的空白

    大小写转换upper、lower、casefold、swapcase、capitalize:

    1 str = 'FeiHongtao'
    2 print(str.upper())  #所有字母大写
    3 print(str.lower())  #所有字母小写
    4 print(str.casefold())   #所有大写转成小写
    5 print(str.swapcase())   #大小写互换
    6 print(str.capitalize()) #首字母大写

    字符填充center、rjust、ljust、zfill

    1 str = 'FeiHongtao'
    2 print(str.center(20,'*'))   #将字符串用指定的字符补充为指定的长度
    3 print(str.rjust(20,'*'))    #在字符串的左边补充字符
    4 print(str.ljust(20,'*'))    #在字符串的右边补充字符
    5 print(str.zfill(20))        #在字符串前面补0

    替换replace

    1 str = 'FeiHongtaoHongtaoHongtao'
    2 print(str.replace('Hong','hong'))  #将Hong全部替换成hong
    3 print(str.replace('Hong','hong',2))  #将前面2个Hong全部替换成hong

    分割 split

    1 str = 'FeiHongtaoHongtaoHongtao'
    2 print(str.split('Hong'))     #将字符串以指定的字符分割,得到一个列表
    3 print(str.split('Hong',2))   #将字符串以指定的字符分割,得到一个列表, 2标识分割几次
    4 l = ['Fei','hong','tao']
    5 print(' '.join(l))   #将一个列表按指定的字符拼接成一个字符串       
    6 print('_'.join(l))   #将一个列表按指定的字符拼接成一个字符串 

    包含 startswith、endswith、index、find

     1 str = 'Feihongtao'
     2 print(str.startswith('Fei'))  #是否以指定的字符串开始
     3 print(str.endswith('Fei'))    #是否以指定的字符串结束
     4 
     5 print(str.index('hong'))      #查找指定字符串在原字符串中的位置,如果找到就返回具体位置,如果没找到则报错
     6 print(str.index('hong', 0, 5))
     7 print(str.rindex('hong'))
     8 
     9 print(str.find('hong'))       #查找指定字符串在原字符串中的位置,如果找到就返回具体位置,如果没找到则返回-1
    10 print(str.find('hong',0,5))
    11 print(str.rfind('hong'))
    12 
    13 # index和find的区别在于:
    14 # index如果找到就返回具体位置,如果没找到则报错
    15 # find如果找到就返回具体位置,如果没找到则返回-1

    判断 isdigit、isalpha

    1 str = 'Feihongtao123'
    2 print(str.isdigit())  #False 是否是数字组成
    3 print(str.isalpha())  #False 是否是字母组成
    4 print(str.isalnum())  #True  是否是字母和数字组成

    计算len、count

    1 str = 'Feihongtao123'
    2 print(len(str))  # 13 计算字符串的长度
    3 print(str.count('o'))  # 2 计算字符或字符串在原字符串中出现的次数
    4 print(str.count('o', 0, 5))  # 1 计算字符或字符串在原字符串中出现的次数(可在指定范围内查找)

    4、int、str、bool三者之间的类型转换

    # int ---> bool
    i = 100
    print(bool(i))   # True  # 非零即True
    i1 = 0
    print(bool(i1))  # False 零即False
    
    # bool ---> int
    t = True
    print(int(t))  # 1  True --> 1
    t = False
    print(int(t))  # 0  False --> 0
    
    # int ---> str
    i1 = 100
    print(str(i1))  # '100'
    
    # str ---> int  # 全部由数字组成的字符串才可以转化成数字
    s1 = '90'
    print(int(s1))  # 90
    
    # str ---> bool
    s1 = '我是空的'
    s2 = ''
    print(bool(s1))  # True 非空即True
    print(bool(s2))  # False
    
    # bool ---> str
    t1 = True
    print(str(True))  # 'True'
  • 相关阅读:
    SP375 QTREE
    「2017 山东一轮集训 Day5」字符串 (后缀自动机, 拓扑排序)
    [SDOI2016]生成魔咒(后缀自动机)
    bzoj3252: 攻略(贪心)
    bzoj2961 共点圆 (CDQ分治, 凸包)
    [CTSC2012]熟悉的文章 (后缀自动机 单调队列)
    bzoj3622: 已经没有什么好害怕的了
    [SDOI2013]泉(容斥)
    [SHOI2012]信用卡凸包(计算几何)
    CF1139D Steps to One (莫比乌斯反演 期望dp)
  • 原文地址:https://www.cnblogs.com/Ryan-Fei/p/11792541.html
Copyright © 2020-2023  润新知