zoukankan      html  css  js  c++  java
  • 数据类型-数值&字符串

    一、数值

    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())
     




    
    


  • 相关阅读:
    Linux 下的类似Windows下Everything的搜索工具
    windows和linux环境下制作U盘启动盘
    程序调试手段之gdb, vxworks shell
    LeetCode 1021. Remove Outermost Parentheses (删除最外层的括号)
    LeetCode 1047. Remove All Adjacent Duplicates In String (删除字符串中的所有相邻重复项)
    LeetCode 844. Backspace String Compare (比较含退格的字符串)
    LeetCode 860. Lemonade Change (柠檬水找零)
    LeetCode 1221. Split a String in Balanced Strings (分割平衡字符串)
    LeetCode 1046. Last Stone Weight (最后一块石头的重量 )
    LeetCode 746. Min Cost Climbing Stairs (使用最小花费爬楼梯)
  • 原文地址:https://www.cnblogs.com/datatool/p/13346379.html
Copyright © 2011-2022 走看看