zoukankan      html  css  js  c++  java
  • 基本数据类型

    一,编码

      1.最早计算机编码为ASCII,美国人创造的,128个码位,2**7,在此基础上加了一位,2**8,包含英文字母(大小写),数字,标点等特殊字符,首位0

       一个ASCII码为8位,一个字节.

      2.GBK  国标码,16位,2个字节(双字节字符)

      3.unicod  万国码, ucs-2 16位,2个字节; ucs-4 32位,4个字节,utf-8 

      4. utf-8  英文:8 bit  1个字节;欧州文字:16bit  2个字节; 中文: 24bit  3个字节

      5.单位换算:8bit = 1byte  1024byte = 1kb  1024kb = 1mb  1024mb = 1gb

            1024gb = 1tb  1024tb = 1pb

    二,基本数据类型

     1,

      1> int ==> 整数. 主要用来进行数学运算

      2>str ==> 字符串串, 可以保存少量量数据并进⾏行行相应的操作

      3> bool==>判断真假, True, False

      4>list==> 存储大量量数据.用[ ]表示

      5> tuple=> 元组, 不可以发生改变 用( )表示

      6>dict==> 字典, 保存键值对, 一样可以保存大量量数据

      7>set==> 集合, 保存大量量数据. 不可以重复. 其实就是不保存value的dict

       2,整数(int)    

      在python3中所有的整数都是int类型. 但在python2中如果数据量量比较⼤大. 会使⽤用long类型.   在python3中不存在long类型

     3,布尔值(bool)  

      取值只有True, False. bool值没有操作.    

      转换问题:

            str => int       int(str)

           int => str       str(int)

           int => bool    bool(int).  0是False 非0是True

           bool=>int      int(bool)   True是1, False是0

           str => bool    bool(str)  空字符串串是False,  不空是True

           bool => str    str(bool)  把bool值转换成相应的"值" 

     4,字符串(str)

           把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串. 

      1> 索引. 索引就是下标. 切记, 下标从0开始时从左向右,从-1开始时从右向左 

      0123456 7 8

      s1 = "python牛B"

      print(s1[0]) # 获取第0个

      print(s1[1])

      print(s1[2])

      print(s1[3])

      print(s1[4])

      print(s1[5])

      print(s1[6])

      print(s1[7])

      print(s1[8])

      # print(s1[9])    # 没有9, 越界了了. 会报错

      print(s1[-1])   # -1 表示倒数.

      print(s1[-2])   # 倒数第二个

     2> 切片, 我们可以使用下标来截取部分字符串的内容

        语法: str[start: end]

          规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

      s2 = "python⽜牛B"
      print(s2[0:3]) # 从0获取到3. 不不包含3. 结果: pyt

      print(s2[6:8]) # 结果牛

      print(s2[6:9]) # ⼤大是8. 但根据顾头不不顾腚, 想要取到8必须给9

      print(s2[6:10]) # 如果右边已经过了了大值. 相当于获取到后

      print(s2[4:]) # 如果想获取到后. 那么后一个值可以不不给.

      print(s2[-1:-5]) # 从-1 获取到 -5 这样是获取不不到任何结果的. 从-1向右数. 你怎么数        也数不到-5

      print(s2[-5:-1]) # 牛b, 取到数据了了. 但是. 顾头不不顾腚. 怎么取后⼀一个呢?

      print(s2[-5:]) # 什什么都不不写就是后了了

      print(s2[:-1]) # 这个是取到倒数第一个

      print(s2[:]) # 原样输出

     3>跳着截取

      # 跳着取, 步长

      print(s2[1:5:2]) # 从第一个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=> ytho => yh     print(s2[:5:2]) # 从头开始到第五个. 每两个取一个

      print(s2[4::2]) # 从4开始取到后. 每两个取一个

      print(s2[-5::2]) # 从-5取到后.每两个取一个

      print(s2[-1:-5]) # -1:-5什什么都没有. 因为是从左往右获取的.

      print(s2[-1:-5:-1]) # 步长是-1. 这时就从右往左取值了

      print(s2[-5::-3]) # 从倒数第5个开始. 到开始. 每3个取一个, 结果oy

      步长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1 切片语法:

      str[start:end:step]

      start: 起始位置

      end: 结束位置

      step:步长

     5.字符串的相关操作方法 

      字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的

      1>大小写转换

      

    s1.capitalize()
     print(s1)   # 输出发现并没有任何的变化. 因为这里的字符串本身是不会发生改变的. 需要我们 重新获取 
    ret1 = s1.capitalize()
     print(ret1) #大小写相互转换

      

    ret = s1.lower()    # 全部转换成小写
     print(ret
      ret = s1.upper()     # 全部转换成大写
     print(ret)

       2> 每个被特殊字符隔开的字母首字母大写:

    s3 = "alex eggon,taibai*yinwang_麻花藤"
     ret = s3.title()       # Alex Eggon,Taibai*Yinwang_麻花藤
     print(ret) 
    # 中文也算是特殊字符
     s4 = "alex老男孩wusir"     # Alex老男孩Wusir
     print(s4.title())
    

     3>去空格 

    s7 = "   alex wusir   haha "
     ret = s7.strip()    # 去掉左右两端的空格
     print(ret)
     ret = s7.lstrip()   # 去掉左边空格
     print(ret)
     ret = s7.rstrip()   # 去掉右边空格
     print(ret) 

      4>字符串替换

     

    s8 = "sylar_alex_taibai_wusir_eggon"
     ret = s8.replace('alex', '金角大王')    # 把alex替换成金角大王
     print(s8)   # sylar_alex_taibai_wusir_eggon 切记, 字符串是不可变对象. 所有操作都 是产生新字符串返回
     print(ret)  # sylar_金角大王_taibai_wusir_eggon
     ret = s8.replace('i', 'SB', 2)     # 把i替换成SB, 替换2个
     print(ret)  # sylar_alex_taSBbaSB_wusir_eggon 

      5>字符串切割

    s9 = "alex,wusir,sylar,taibai,eggon"
     lst = s9.split(",")     # 字符串串切割, 根据,进行切割
     print(lst) 

       6>格式化输出

      

    # 格式化输出
     s12 = "我叫%s, 今年%d岁了了, 我喜欢%s" % ('sylar', 18, '周杰伦')  # 之前的写法
     print(s12)
     s12 = "我叫{}, 今年年{}岁了了, 我喜欢{}".format("周杰伦", 28, "周润发")    # 按位置格式化
     print(s12)
     s12 = "我叫{0}, 今年年{2}岁了了, 我喜欢{1}".format("周杰伦", "周润发", 28)     # 指定位置
     print(s12)
     s12 = "我叫{name}, 今年年{age}岁了了, 我喜欢{singer}".format(name="周杰伦", singer="周润 发", age=28)     # 指定关键字
     print(s12)

       7>查找

    s13 = "我叫sylar, 我喜欢python, java, c等编程语言." 
    ret1 = s13.startswith("sylar")   # 判断是否以sylar开头 
    print(ret1) 
    ret2 = s13.startswith("我叫sylar")    # 判断是否以我叫sylar开头 print(ret2)
    ret3 = s13.endswith("语⾔言")   # 是否以'语⾔言'结尾 
    print(ret3) ret4 = s13.endswith("语⾔言.")  # 是否以'语言.'结尾 print(ret4)
    ret7 = s13.count("a")   # 查找"a"出现的次数 
    print(ret7)
    ret5 = s13.find("sylar")    # 查找'sylar'出现的位置 
    print(ret5)
    ret6 = s13.find("tory")     # 查找'tory'的位置, 如果没有返回-1 print(ret6)
    ret7 = s13.find("a", 8, 22)  # 切⽚片找 
    print(ret7)
    ret8 = s13.index("sylar")   # 求索引位置. 注意. 如果找不不到索引. 程序会报错 
    print(ret8) 

       8>条件判断

    # 条件判断 
    s14 = "123.16" 
    s15 = "abc" 
    s16 = "_abc!@" # 是否由字母和数字组成
    print(s14.isalnum()) 
    print(s15.isalnum()) 
    print(s16.isalnum()) # 是否由字母组成 
    print(s14.isalpha()) 
    print(s15.isalpha())
    print(s16.isalpha()) # 是否由数字组成, 不包括小数点 
    print(s14.isdigit()) 
    print(s14.isdecimal()) 
    print(s14.isnumeric())  # 这个比较牛B. 中文都识别. 
    print(s15.isdigit()) 
    print(s16.isdigit())

       9>计算字符串长度

    s18 = "我是你的眼, 我也是a" 
    ret = len(s18)  # 计算字符串的长度 
    print(ret) 

      注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行 了

       10>迭代

      我们可以使用for循环来便利(获取)字符串中的每一个字符            

      语法:        for 变量 in 可迭代对象:

       可迭代对象: 可以一个一个往外取值的对象 

    s19 = "大家好, 我是VUE, 前端的小朋友们. 你们好么?" # 用while循环 index = 0 
    while index < len(s19):
        print(s19[index])   # 利利⽤用索引切⽚片来完成字符的查找
        index = index + 1# for循环, 把s19中的每一个字符拿出来赋值给前面c
    for c in s19:
        print(c)
    '''    in有两种⽤用法:
            1. 在for中. 是把每⼀一个元素获取到赋值给前⾯面的变量量.
            2. 不不在for中. 判断xxx是否出现在str中. '''
    print('VUE' in s19)

      

  • 相关阅读:
    codeforces 707D-(DFS+bitset)
    codeforces Educational Codeforces Round 16-E(DP)
    codeforces 597C (树状数组+DP)
    codeforces #round363 div2.C-Vacations (DP)
    Codeforces Round #365 (Div. 2)-D Mishka and Interesting sum(树状数组)
    codeforces round367 div2.C (DP)
    June Challenge 2018 Division 2
    Codeforces Round #487 (Div. 2)
    Educational Codeforces Round 45 (Rated for Div. 2)
    [Offer收割]编程练习赛63
  • 原文地址:https://www.cnblogs.com/panda-pandeyong/p/9266076.html
Copyright © 2011-2022 走看看