zoukankan      html  css  js  c++  java
  • 数据类型基础知识

    一.什么是数据

    比如 X = 10,10是我们要存储的数据

    数据可以是符号、文字、数字、语音、图像、视频等

    数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。

    在计算机系统中,数据以二进制信息单元0,1的形式表示。

    二.为何数据要分不同的类型

    数据是用来表示状态的,不同的状态应该由不同的数据来表示。

    三.数据类型

    数字(int,float,complex)

    作用:年纪,年级,等级,身份证号,QQ号等数字相关

    长整形

      在python2中(python3中没有长整形的概念):      

     >>> num=2L

     >>> type(num)
     <type 'long'>

    复数  

      >>> x=1-2j

     print(type(x))#<class 'complex'>

    字符串(Python 没有单独的字符类型,一个字符就是长度为1的字符串)

    索引值以 0 为开始值,-1 为从末尾的开始位置

    字符串的截取:

    #!/usr/bin/python3 
    str = 'aleXnn' 
    print (str)          # 输出字符串
    print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
    print (str[0])       # 输出字符串第一个字符
    print (str[2:5])     # 输出从第三个开始到第五个的字符
    print (str[2:])      # 输出从第三个开始的后的所有字符
    print (str * 2)      # 输出字符串两次
    print (str + "TEST") # 连接字符串

    注意:

    • 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
    • 2、字符串可以用+运算符连接在一起,用*运算符重复。
    • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
    • 4、Python中的字符串不能改变。

    列表(List)

    列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

    列表是写在方括号([])之间、用逗号分隔开的元素列表。

    和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

    #!/usr/bin/python3
     
    list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
    tinylist = [123, 'aleXnn']
     
    print (list)            # 输出完整列表
    print (list[0])         # 输出列表第一个元素
    print (list[1:3])       # 从第二个开始输出到第三个元素
    print (list[2:])        # 输出从第三个元素开始的所有元素
    print (tinylist * 2)    # 输出两次列表
    print (list + tinylist) # 连接列表

     字符串的常见内置方法:

    #strip
    name = '*egon**'
    print(name.strip('*'))
    print(name.lstrip('*'))
    print(name.rstrip('*'))
    
    #startswith,endswtith
    name ='alex_SB'
    print(name.endswith('SB'))
    print(name.startswith('alex'))
    
    #replace
    name='alex say:i have one tesla,my name is alex'
    print(name.replace('alex','SB',1))
    
    #format的三种用法
    res='{} {} {}'.format('egon',18,'male')
    res1='{1} {0} {1}'.format('egon',18,'male')
    res2='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
    print('------------')
    
    #find,refind,index,reindex,count
    name='egon say hello'
    print(name.find('o',1,3))#顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
    #print(name.index('e',2,4))#同上,但是找不到会报错
    print(name.count('e',1,3))#顾头不顾尾,如果找不到指定范围则查找所有
    
    #split
    name='root:x:0: 0::/root:/bin/bash'
    print(name.split())#默认分隔符为空格
    name='C:/a/b/c/d.txt'#只想拿到顶级目录
    print(name.split('/',3))
    
    name='a|b|c'
    print(name.rsplit('|',1))#从右边开始切分
    
    #join
    tag=' '
    print()
    print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串
    
    #center,ljust,rjust,zfill
    name = 'egon'
    print(name.center(30,'-'))
    print(name.ljust(30,'*'))
    print(name.rjust(30,'*'))
    print(name.zfill(50))#用0填充
    
    #expandtabs
    name='egon	hello'
    print(name)
    print(name.expandtabs(1))
    
    #lower,upper
    name='egon'
    print(name.lower())
    
    #captalize,swapcase,title
    print(name.capitalize())#首字母大写
    print('-------------------')
    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='IV'#罗马数字
    
    #isdigt:bytes,unicode
    print(num1.isdigit())#True
    print(num2.isdigit())#True
    print(num3.isdigit())#False
    print(num4.isdigit())#False
    
    #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(num4.isnumeric())#True
    
    
    #三者不能判断浮点数
    num5='4.3'
    print(num5.isdigit())
    print(num5.isdecimal())
    print(num5.isnumeric())
    
    #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())

    元组

      定义:与列表类似,[ ]改为()

      特性:可存放多个值;元素不可变;按照从左到右的顺序定义元组的元素,下标从0开始顺序访问,有序

      创建元组:

      L = (1,2,3,4,5,6)

      元组常用操作:

      索引,切片,循环,长度,包含

    字典

    列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

    键(key)必须使用不可变类型。

    在同一个字典中,键(key)必须是唯一的。

    #!/usr/bin/python3
     
    dict = {}
    dict['one'] = "1 - 菜鸟教程"
    dict[2]     = "2 - 菜鸟工具"
     
    tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
     
     
    print (dict['one'])       # 输出键为 'one' 的值
    print (dict[2])           # 输出键为 2 的值
    print (tinydict)          # 输出完整的字典
    print (tinydict.keys())   # 输出所有键
    print (tinydict.values()) # 输出所有值
    View Code

       特性:可存放多个值;可修改指定key 对应的值,可变;无序

      创建字典:

    1 dic = {'name':'宋江','age':30,'hobbies':'gilrs','salary':50000}

    集合

          定义:由不同的元素组成,集合中是一组排列的可hash的值,可以作为字典的key

          特性:集合的目的是将不同的值存放到一起,不同的集合间用来作关系运算,不用纠结集合中单个值

       创建集合:

      set_ac = {'alex','egon','age','salary'}

     

  • 相关阅读:
    Server 对象
    Response 对象
    bzoj 5252: [2018多省省队联测]林克卡特树
    bzoj 2167: 公交车站
    bzoj 5315: [Jsoi2018]防御网络
    bzoj 5319: [Jsoi2018]军训列队
    bzoj 4161: Shlw loves matrixI
    bzoj 4942: [Noi2017]整数
    bzoj 2648: SJY摆棋子
    kd-tree 小结
  • 原文地址:https://www.cnblogs.com/sxh-myblogs/p/7197901.html
Copyright © 2011-2022 走看看