• 数值与字符串类型


    Python3 中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。

    • 不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
    • 可变数据(两个):List(列表)、Dictionary(字典)。

    一、数字类型

     数字类型包括:int(整型)、float(浮点数)、complex(复数)、bool(布尔值)。

    注:python2中还有一个长整型,python3已经没有了。

    #a=10
    #b=10.0
    #c=True
    #d=1+2j
    #print(type(a))
    #print(type(b))
    #print(type(c))
    #print(type(d))

    运行结果如下:

    <class 'int'>
    <class 'float'>
    <class 'bool'>
    <class 'complex'>

     数值取整的三种方法:向下取整int,四舍五入round,向上取整ceil

    import math
    a=2.23 b=6.66 print(int(a),int(b)) #2,6 print(round(a),round(b)) #2,7 print(math.ceil(a),math.ceil(b)) #3,7

    二、String 字符串类型:

      在单引号双引号三引号内,输入一串字符即构成一个字符串。例如,name='张三' 这样name这个变量就是字符串类型。单引号,双引号使用起来没有区别,三引号一般用于多行注释。
      字符串有很多常用的方法,经常使用的如下:

    1、去除空格:
    str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格
    str.lstrip():删除字符串左边的指定字符,括号的写入指定字符,默认为空格
    str.rstrip():删除字符串右边指定字符,默认为空格
    '''
    str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格
    str.lstrip():删除字符串左边的指定字符,括号的写入指定字符,默认为空格
    str.rstrip():删除字符串右边指定字符,默认为空格
    
    '''
    >>> a="    abc    "
    >>> b = a.strip()    # b='abc'
    >>> b = a.lstrip()       # b = 'abc     '
    >>>b = a.rstrip()        #b =  '          abc'
    View Cod
    2、字符串的连接
    “+”连接两个字符串,这个方法比较耗费资源,连接两个字符串就要开辟一次内存空间。。如果是n个字符串相连 那么会开辟n-1次内存。
    str.join() 方法用于指定一个字符连接另外一个字符串。
    #“+”
    >>> a='hello'
    >>> b='world'
    >>> print(a+b)
    helloworld
    
    #“str.join()”
    >>> a='H'
    >>> b='world'
    >>> c=a.join(b)
    >>> c
    'wHoHrHlHd'
    View Code

     3、字符串的大小写转换

    使用str.upper() str.lower()
    
    
    >>> str1='abc'
    >>> str2='FGH'
    >>> print(str1.upper())
    ABC
    >>> print(str2.lower())
    fgh
    View Code
    
    

     4、字符串的格式化:‘%’和format

     1 #'%'表示占位符号,和C语言的类似。后面可带一个参数,表示该位置将用什么类型来取代,常用的有如下:
     2 
     3 %b    二进制整数  %d    十进制整数  %i    十进制整数
     4 
     5 %o    八进制整数  %x    十六进制整数  %c    单个字符
     6 
     7 %s    字符串    %r    字符串 (生成的字符串会带单引号)
     8 
     9 %e    浮点数字(科学计数法)   %E    浮点数字(科学计数法,用E代替e)
    10 
    11 %f    浮点数字(用小数点符号)       %g  浮点数字(根据值的大小采用%e或%f)
    12 
    13 %p    指针(用十六进制打印值的内存地址)   %n    存储输出字符的数量放进参数列表的下一个变量中
    14 
    15 例如:
    16 name='zs'
    17 age=18
    18 print('My name is %s,age is %d'%(name,age)) #My name is zs,age is 18
    19 
    20 可以用如下的方式,对格式进行进一步的控制:
    21 
    22 %[(name)][flags][width].[precision]typecode
    23 (name)为命名
    24 flags可以有+,-,' '或0。+表示右对齐,而且显示正负号。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。
    25 width表示显示宽度  precision表示小数点后精度
    26 
    27 例如:
    28 print('%+8.3f'%3.1415926)     #'  +3.142'   注意前面有空格
    29 print('%08.3f'%3.1415926)     #’0003.142‘
    30 
    31 #2、format的用法
    32 三种调用方法如下:
    33 >>> res1='{} {} {}'.format('egon',18,'male')
    34 >>> res2='{1} {0} {1}'.format('egon',18,'male')
    35 >>> res3='{name} {age}{sex}'.format(sex='male',name='egon',age=18)
    36 >>> res1
    37 'egon 18 male'
    38 >>> res2
    39 '18 egon 18'
    40 >>> res3
    41 'egon 18 male 
    42 
    43 同样format也有更加具体的控制格式:
    44 
    45    :                填充                 对齐          宽度    ,                  .          类型
    46 引导符号    想填充的字符    <左 >右 ^居中          数字分割符    浮点数精度   cf
    47 
    48 
    49 例如:
    50 print('{:*^30,.2f}'.format(3.1415926))    # *************3.14*************
    View Code

     5、split 的用法:

    默认分隔符为空格。同时也可以指定切片的次数和切片方向。具体可以看下面示例

    >>> name='root:x:0:0::/root:/bin/bash'
    >>> print(name.split(':'))
    ['root', 'x', '0', '0', '', '/root', '/bin/bash']
    
    >>> name='C:/a/b/c/d.txt'
    >>> print(name.split('/',1))
    ['C:', 'a/b/c/d.txt']
    
    >>> name='C:/a/b/c/d.txt'
    >>> print(name.rsplit('/',1))
    ['C:/a/b/c', 'd.txt']
    View Code

     6、replace的用法:

    默认是替换全部匹配的地方,可以自己手动指定替换次数。
    >>> shuaige='Panan:"Panan is the most hansome person in the world."'
    >>> print(shuaige.replace('Panan','Dashu',1))
    Dashu:"Panan is the most hansome person in the world."
    
    >>> print(shuaige.replace('Panan','Dashu',))
    Dashu:"Dashu is the most hansome person in the world."
    View Code

    7、isdigit的用法:

    age=input('>>: ')
    print(age.isdigit())

    8.其他方法:

    #1、find,rfind,index,rindex,count
    #2、center,ljust,rjust,zfill
    #3、expandtabs
    #4、captalize,swapcase,title
    #5、is数字系列
    #6、is其他 
    #find,rfind,index,rindex,count
    name='egon say hello'
    print(name.find('o',1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
    # print(name.index('e',2,4)) #同上,但是找不到会报错
    print(name.count('e',1,3)) #顾头不顾尾,如果不指定范围则查找所有
    
    #center,ljust,rjust,zfill
    name='hello'
    print(name.center(30,'-'))
    #------------hello-------------
    print(name.ljust(30,'*'))   
    #hello*************************
    print(name.rjust(30,'*'))      #*************************hello
    print(name.zfill(10)) #用0填充
    #00000hello
    
    
    #expandtabs
    #默认‘	’等于八个空格,参数可以自己指定个数
    name='egon	hello'
    print(name)
    print(name.expandtabs(1))
    
    #captalize,swapcase,title
    print(name.capitalize()) #首字母大写
    print(name.swapcase()) #大小写翻转
    msg='egon say hi'
    print(msg.title()) #每个单词的首字母大写
    
    #is数字系列
    #在python3中
    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='' #中文数字
    num4='' #罗马数字
    #在python3中
    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='' #中文数字
    num4='' #罗马数字
    
    #isdigt:bytes,unicode
    print(num1.isdigit()) #True
    print(num2.isdigit()) #True
    print(num3.isdigit()) #False
    print(num4.isdigit()) #False
    
    #isdecimal
    #Python isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
    #bytes类型无isdecimal方法
    print(num2.isdecimal()) #True
    print(num3.isdecimal()) #False
    print(num4.isdecimal()) #False
    
    #isnumberic:unicode,中文数字,罗马数字
    #bytes类型无isnumberic方法
    print(num2.isnumeric()) #True
    print(num3.isnumeric()) #True
    print(num4.isnumeric()) #True
    
    #三者不能判断浮点数
    num5='4.3'
    print(num5.isdigit())
    print(num5.isdecimal())
    print(num5.isnumeric())
    '''
    总结:
        最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
        如果要判断中文数字或罗马数字,则需要用到isnumeric
    '''
    
    #is其他
    name='egon123'
    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成
    print(name.isidentifier()) #字符串里面只要是符合变量的规则返回TRUE
    print(name.islower())    #包含字母,并且只有全部是小写才返回TRUE
    print(name.isupper())   
    print(name.isspace())   #检查是否只有空格
    print(name.istitle())   #检查所有单词首字母是否大写
    View Code

      

  • 相关阅读:
    ftp
    vmware虚拟机如何安装ubuntu14.10系统
    第1章 初识java----Java简介
    fiddler
    Program Files 与Program Files (x86)
    跟我一起认识axure(三)
    React-FlipOver-Counter(日历翻页)
    vue2-vux-fitness-project
    cloud-music
    跟我一起认识axure(二)
  • 原文地址:https://www.cnblogs.com/linshuhui/p/8947556.html
Copyright © 2020-2023  润新知