day03

1. 编码

1. 最早的计算机编码是ASCII, 美国人创建的. 包含了英文字母(大写字母,小写字母) 数字, 标点等特殊字符!@#$%
  128个码位 2**7 在此基础上加了一位 2**8  最前面一位是0
  8位  1个字节(byte)
2. GBK 国标码:  16位 2个字节(双字节字符)
3. unicode 万国码:  32位 4个字节
                 usc-2 16位 2个字节
usc-4 32位 4个字节
ascii: 01100001
gbk: 00000000 01100001
unicode: 00000000 00000000 00000000 01100001
4. utf-8: 英文      8 bit  1个字节
         欧洲文字   16bit   2个字节
          中文      24bit   3个字节
  
  二进制的一位,就叫做 1 bit。
  8 bit => 1byte(1个字节)   1024 byte => 1kb   1024kb => 1mb   1024mb => 1GB   1024GB => 1TB   1024TB => 1PB

2. 基本数据类型概述

int 整数
str 字符串, 存储少量的数据
bool 布尔
list 列表, ["大阳哥","东阳哥"]
tuple 元组. 只读列表, 不能改
dict 字典: 一对一对的存储数据. key:value ["赵阳":"大阳哥","jay":"周杰伦"]
set 集合: 存储不重复的内容

4. int, bool, str

1. int 方法操作:
        bit_length() 求二进制长度
a = 3
print(a.bit_length())   # 二进制长度
   
2. bool: 布尔类型
    1. 你想转换成什么,就用什么把目标包裹起来
        
        # 字符串转换成数字
        s = "128"
        i = int(s)
        print(type(i))
        #数字转换成字符串
        ss = str(i)
        print(type(ss))
        
        # bool类型转换成数字 Trur: 1   False: 0
        b = False
        c = int(b)
        print(c)
        #int 转换成bool   零: False    非零: True
        a = 0
        b = bool(a)
        print(b)

    2. 带空的是Flase, 不带空的True 
        s = ""  # ""空字符串表示False, 非空字符串表示:True
        if s:
            print("哈哈")
        else:
            print("呵呵")

    注意:空的东西都是False, 非空的东西都是True

    # 连空气都不如. 真空, False
    m = None    
    if m :
        print("a")
    else:
        print("b")
3. 字符串(str)
  1. str 索引和切片
        
        索引: 起始下标是0(从左到右),-1(从右到左).
        索引: 正着从0开始编号   倒着从-1开始编号
        s = "我爱你"
        print(s[0])    # 我
        s = "我爱你"
        print(s[-1])    # 你
        
        切片: s[起始位置:结束位置:步长]
        *特点:顾头不顾尾    
        s = "该从何说起"
        print(s[0:2])    # 该从
        print(s[0:3:2])    # 该何

        s = 'alex和wusir经常在一起搞基'
        s1 = s[5:10]
        print(s1)
        s2 = s[0:4]+s[5:10]
        print(s2)
        s3 = s[5:]  # 默认到结尾
        print(s3)
        s4 = s[:10]   # 从头开始
        print(s4)
        s5 = s[:]     # 从头到尾都切出来
        print(s5)
        
        总结: 通过索引获取到的内容, 还是一个字符串
                切片可以对字符串进行截取
                语法 s[起始位置: 结束位置]
                特点:顾头不顾腚(头可以取到,尾取不到)

  

      步长
      语法: s[起始位置:结束位置:步长]
      s = "我是梅西,我很慌"
      s1 = s[1:5:2]    # 从1开始, 到5结束, 每2个取1个
      print(s1)    # 是西
      s2 = s[1::3]
      print(s2)    # 是,慌

      s3 = s[6:2:-1]     # -表示反着, 每1个取1个
      print(s3)    # 很我,西

      s = "这个标点符号很蛋疼"
      s1 = s[7::-2]    # -表示反着, 每2个取1个
      print(s1)    # 蛋号点个    
  2. 字符串的常用操作: 常用方法        
    字符串不可变
     1. upper() # 全部换成大写     
       lower() # 全部换成小写      
       swapcase() # 大小写转换      
       s = "AbCd" 
      
       print(s.upper()) # ABCD
      
       print(s.lower()) # abcd
       
       print(s.swapcase()) # aBcD


     2. strip() # 去掉空格 .strip("xx")也可以去掉左右两端的xx,中间的不行
      
       s = " 我爱 "
      
       print(s.strip()) # 我爱
       s = "**我爱**"
       print(s.strip("*")) # 我爱

     3. replace('a','b',2) # 替换 把a替换成b,替换2个       s = "aelx wusir aelx taibai"
       s1 = s.repalce('alex','taibai',2)  # 把alex替换成sb,替换2个
       print(s1) # sb wusir sb taibai

     4. split() # 字符串切割,用a切割就损失掉a,切边会产生空字符 # 切完放在列表里
       s = "我_爱_你"
       s1 = s.split("_")
       print(s1) # ['我','爱','你']

5. format() # 格式化输出
       print("我叫{},今年{}岁了,喜欢{}".format("sylar",18,"打篮球")) # 我叫sylar,今年18岁,喜欢打篮球
6. startswith() # 判断是否以xxx开头
       s = "从何说起"
       print(s.startswith("从")) # Ture
endswith() # 判断是否以xxx结尾
       s = "abcd"
       print(s.endswith(c)) # False
8. count("a") # 判断a出现的次数,(不能用于字典dict)
       s = "我真的好爱你,你呢?"
       print(s.count('你')) # 2
        
9. find() # 查找索引位置. 找不到返回-1.(只能用于字符串)
       s = "你我他"
       print(s.find("你")) # 0
       s = "你我他"
       print(s.find(她)) # -1
       s = "小明的老婆喜欢别人"
       print(s.find("老婆",3)) # 3(每三个算一个,切片找)
10. index() # 求索引位置(不能用于字典). 注意: 如果找不到索引(index中的内容如果不存在).直接报错
       s = "小明的老婆喜欢别人"
       print(s.index("老婆")) # 3
       print(s.index("我"))  # 找不到,报错
11. isdigit() # 判断字符串是否由数字组成 12. isalpha() # 是否由字母组成, 不包括小数点 13. isalnum() # 是否由字母和数字组成
       s = "abc123"
       print(s.isdigit())
       print(s.isalpha())
       print(s.isdis)
14. len() # 内置函数. 直接使用, 不要点操作(通用求str,list,tuple,dict长度)
       s = "我爱你"
       print(len(s)) # 3

     15. center(width,"fillchar") # 把字符串放在20长度的fillchar填充字符(单字符)中间位置
       s = "我爱你"
       print(s.center(9,"*")) # ***我爱你***

5. 迭代

for 变量 in 可迭代对象:
循环体
else:   #循环完了执行else

# for...else用法:
    # 当迭代对象完成所有迭代后且此时的迭代对象为空时,如果存在else子句则执行else子句,没有则继续执行后续代码;
    # 如果迭代对象因为某种原因(如带有break关键字)提前退出迭代,则else子句不会被执行,程序将会    直接跳过else子句继续执行后续代码

# in有两种⽤法:
    # 1. 在for中. 是把每⼀个元素获取到赋值给前⾯的变量.
        s = "我爱你"
        for i in s:
            print(i) 
    # 2. 不在for中. 判断xxx是否出现在str中.
        s = "我爱你"
        if "" in s:
            print("存在")
原文地址:https://www.cnblogs.com/kangqi452/p/11259042.html