• 数据类型-数值&字符串


    一、数值

    1.1整型int

    作用:年纪、等级、手机号、身份证号等整型数字相关

    定义:age=10 # 本质age=int(10)

    1.2浮点型float
    作用:身高、薪资、体重等浮点数字相关

    定义:salary=3000.3 #本质salary=float(3000.3)

    二、字符串 

    2.1简介

    作用:名字、性别、地址等描述性信息

    定义:在单引号双引号三引号内,由一串字符组成,name = 'sean'  age = '18'

    可以把任意类型信息转为字符串:

    name = str(int(1))
    print(type(name))

    2.2需掌握的操作

    2.2.1按索引取值(正向取+反向取) :只能取

    msg = 'hello world'
    print(msg[0]) #输出h
    print(msg[-1]) #输出d
    print(msg[5]) #空格也占位置即字符数


    2.2.2切片(顾头不顾尾,步长)

    msg = 'hello world'
    res = msg[0:5:2] # 1 2 3 4 起始位置为0,截止位置为5,步长值为2,共计3个元素。
    print(res)
    print(msg)

    msg = 'hello world'
    res=msg[1:5] #默认步长值为1
    print(res)
    res=msg[1:] #可以省略截至位置及步长值,默认截至位置为终点,步长值为1
    print(res)
    res=msg[:5] #可以省略开始位置及步长值,默认开始位置为开头,步长值为1
    print(res)
    res=msg[::1] #可以省略开始及截止位置,默认开始位置为开头,截至为止为终点,步长值为1
    print(res)

    msg = 'hello world'
    print(id(msg))
    res=msg[:]
    print(id(res))
    print(res)
    print(res is msg) #复制功能,msg与res值相等,且id相等

    msg = 'hello world'
    print(msg[-1:-3:-1]) # 负数表示从右往左倒着取值,步长值也必须是负数。其他功能与正着取值一样。
    print(msg[-1::-1]) # -1 -2
    print(msg[::-1]) # -1 -2

    2.2.3长度len

    msg = 'hello '
    print(len(msg)) #空格也站字符数量

    2.2.4成员运算in和not in

    msg='sean is elegant'
    print('sean' in msg)
    print('sean' not in msg) # not 推荐使用此种类型写法
    print(not 'XX' in msg)

    2.2.5移除空白strip:原理:对左侧和右侧任何符号依次移除。

    name = '   sean****'
    print(name.strip(' '))
    print(name.lstrip('*'))
    print(name.rstrip('*'))

    msg = "#%*hello##**!"
    res = msg.strip("#!*%") # strip一个一个的移除
    print(res)

    msg = "#%*hello##**!"
    res=msg.replace('#!*%','') #将被替换的视为整体,进行替换,
    print(res)


    2.2.6切分split

    name = 's e a n' #默认分隔符为空格
    print(name.split())

    name='root:x:0:0::/root/bin/bash'
    print(name.split(':',1)) #只想拿到顶级目录

    name ='s*e*a*n'
    print(name.split('*',2)) #从左往右依次累计切分


    2.2.7循环

    for x in "hello":
    print(x)

    for i in range(10,20,2): #数值为顾头不顾尾 ,3个元素,开始,终止,及步长值,默认为1.
    print(i)

    2.2.8 大小写切换  

    name = 'Sean'
    print(name.upper())
    print(name.lower())

    captalize(句子起头单子首字母大写),swapcase(大写变小写,小写变大写),title(单词首字母大写)
    msg="hello world sean"
    print(msg.capitalize()) #无元素 句子首个单词的首字母大写

    x="AbCdE"
    print(x.swapcase()) #无元素

    msg="hello world egon" #无元素 每个单词首字母大写
    print(msg.title())

    2.2.9 startswith与endswith判断以什么开始或结尾,真返回True,假返回False

    name='sean'
    print(name.endswith('a'))
    print(name.startswith('s'))

    2.2.10 replace替换(旧字符,新字符,需要被替换第几个字符(不写则全部替换))可替换空格、大写小字母、字母、数字等

    name = 's e an'
    print(name.replace(' ',''))

    msg = "#%*hello##**!"
    res = msg.strip("#!*%") # strip一个一个的移除
    print(res)

    msg = "#%*hello##**!"
    res=msg.replace('#!*%','') #将被替换的视为整体,进行替换,
    print(res)

    2.2.11 join 迭代的对象必须都是字符串,把所有字符串连接起来

    tag='*' #链接符号可以自定义:空格、*、#等
    print(tag.join('sean'))
    print(tag.join(['sean','age','is','18'])) #可迭代对象必须都是字符串

    2.2.12  format格式化输出用法三则:

    res='{} {} {}'.format('egon',18,'male') #无索引顺序,则默认按照由左至右依次输出
    print(res)
    res1='{1} {0} {1}'.format('egon',18,'male') #顺序为:sean为0,18为1,male为2,此时按照索引顺序输出
    print(res1)
    res2='{name} {age} {sex}'.format(sex='male',name='egon',age=18) #有key,则按照key的顺序输出,推荐使用此种方式
    print(res2)

     2.2.13  center,ljust,rjust,zfill

    name="sean"
    print(name.center(10,'*')) # 单词位于中心,左右各填充(10-单词)/2个*
    print(name.ljust(10,'*')) # 字符左侧各填充(10-单词)个*
    print(name.rjust(10,'*')) # 字符右侧各填充(10-单词)个*
    print(name.zfill(10)) # 字符左侧各填充(10-单词)个0,用0填充

    2.2.14  find,rfind,index,rindex,count

    name='egon say hello'
    print(name.find('e',0,2)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引位置,从0开始计数
    # print(name.index('e',2,4)) #同上,但是找不到会报错
    print(name.count('e',1,3)) #顾头不顾尾,如果不指定范围则查找所有,找到返回查找对象的个数
    print(name.count('o')) #顾头不顾尾,如果不指定范围则查找所有,找到返回查找对象的个数

    2.2.15  isdigit:判断字符串是否是由纯数字(整数)组成的

    print('18'.isdigit())
    print('18.3'.isdigit())


    age = input('your age: ').strip() # age="19",strip用于删除用户输入的空格,确保数值为纯数字。
    if age.isdigit():
    age = int(age)
    if age > 18:
    print('too big')
    elif age < 18:
    print('too small')
    else:
    print('right')
    else:
    print("必须输入数字,小垃圾")

    2.2.16  is其他用法

    1)is数字系列
    #在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:uncicode
    #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


    2)is其他
    print('===>')
    name='egon123'
    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成

    print(name.isidentifier())
    print(name.islower())
    print(name.isupper())
    print(name.isspace())
    print(name.istitle())
     




    
    


  • 相关阅读:
    gRPC中protobuff type和C# type原生标量对应表
    ASP.NET MVC Json序列化时区差解决方法
    多项目解决方案使用的配置文件是哪一个?
    理解DDD中Factory和Repository
    在Docker Desktop for Windows中Dokcer容器如何访问宿主机上的服务
    ASP.NET Core日志记录基本知识
    理解微信小程序小例子
    [MODBUSTCP]
    [pahoMQTT库的使用]
    [搭建MQTT服务器及python客户端]
  • 原文地址:https://www.cnblogs.com/datatool/p/13346379.html
Copyright © 2020-2023  润新知