zoukankan      html  css  js  c++  java
  • Python自动化开发课堂笔记【Day02】

    ASCII、Unicode、GBK和UTF-8字符编码的区别联系

    ASCII编码:用来表示英文字符,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。

    Unicode编码:使用至少2个字节来表示字符,可以表示世界上所有的字符,是一个字符集。

    UTF-8:是Unicode字符的实现方式之一(对Unicode的压缩),它使用1-4个字符表示一个符号,根据不同的符号而变化字节长度。

    GBK/GB2312/GB18030:使用两个字节,表示汉字。GBK/GB2312表示简体中文,GB18030表示繁体中文。

    各种进制的表示方式:

    二进制 1 10 11 100 101 110 111 1000 1001 1010 - - - - -
    八进制 1 2 3 4 5 6 7 010 011 012 - - - - -
    十进制 1 2 3 4 5 6 7 8 9 10 - - - - -
    十六进制 1 2 3 4 5 6 7 8 9 A B C D E F

     基本数据类型

    1. 整型(int)

    需要了解如何将十进制整型数据转化为其它进制的数据的方法

    i. 统计将数字转化为二进制后所需要的位数

    age = 8  # 二进制1000
    print(age.bit_length())
    #结果为4

     ii. 将数字转化为十六进制的表示方式

    age = 15
    v = age.to_bytes(10,byteorder='big')
    print(v)  # b'x00x00x00x00x00x00x00x00x00x0f' --> 15的十六进制表示为0f,big为指定从左侧补0,第一个参数10表示用是个字节表示
    v = age.to_bytes(10,byteorder='little')
    print(v)  # b'x0fx00x00x00x00x00x00x00x00x00' --> little为指定从右侧补0

    2. 布尔值(boolean)

    布尔值为False的主要有以下几种情况

    b = 0
    b = ''
    b = []
    b = {}
    b = ()
    b = False

     其他值均可视为True,注意!!布尔值只有0和1,也就是True和False,如果有b=11,只能说它的布尔值表现形式为True,而不是说该值本身为真值,它需要经过布尔函数的处理才能表现出真值的形式

    3. 字符串(string)

    字符串拥有的方法非常之多,近乎涵盖对字符串的任何操作

    str.upper() str.lower() str.splite() str.find() str.strip() str.capitalize() str.center()
    str.startswith() str.endswith() str.format() str.replace() join() str.casefold() str.count()
      1 # name = 'alex' # str类的对象
      2 # 1. capitalize 字符串首字母大写
      3 # 自身不变,会生成一个新的值
      4 # v = name.capitalize() # 自动找到name关联的str类,执行其中的capitalize技能
      5 # print(name)
      6 # print(v)
      7 
      8 # 2. 将所有大小变小写,casefold牛逼,德语...
      9 # name = 'AleX'
     10 # v = name.casefold() # 跟牛逼,德语...
     11 # print(name)
     12 # print(v)
     13 
     14 # 3. 将所有大小变小写
     15 # name = 'AleX'
     16 # v = name.lower()
     17 # print(v)
     18 
     19 # 4. 文本居中
     20 # 参数1: 表示总长度
     21 # 参数2:空白处填充的字符(长度为1)
     22 # name = 'alex'
     23 # v = name.center(20)
     24 # print(v)
     25 # v = name.center(20,'行')
     26 # print(v)
     27 
     28 # 5. 表示传入之在字符串中出现的次数
     29 # 参数1: 要查找的值(子序列)
     30 # 参数2: 起始位置(索引)
     31 # 参数3: 结束位置(索引)
     32 # name = "alexasdfdsafsdfasdfaaaaaaaa"
     33 # v = name.count('a')
     34 # print(v)
     35 # v = name.count('df')
     36 # print(v)
     37 
     38 # v = name.count('df',12)
     39 # print(v)
     40 # v = name.count('df',0,15)
     41 # print(v)
     42 
     43 # 6. 是否以xx结尾
     44 # name = 'alex'
     45 # v1 = name.endswith('ex')
     46 # print(v1)
     47 
     48 # 7. 是否以xx开头
     49 # name = 'alex'
     50 # v2 = name.startswith('al')
     51 # print(v2)
     52 
     53 # 8. encode欠
     54 
     55 # 9. 找到制表符	,进行替换(包含前面的值)
     56 # PS: 
    
     57 # name = "al	e	x
    alex	uu	kkk"
     58 # v = name.expandtabs(20)
     59 # print(v)
     60 
     61 # 10. 找到指定子序列的索引位置:不存在返回-1
     62 # name = 'alex'
     63 # v = name.find('o')
     64 # print(v)
     65 # v = name.index('o')
     66 # print(v)
     67 
     68 # 11.字符串格式化
     69 
     70 # tpl = "我是:%s;年龄:%s;性别:%s"
     71 
     72 # tpl = "我是:{0};年龄:{1};性别:{2}"
     73 # v = tpl.format("李杰",19,'都行')
     74 # print(v)
     75 
     76 # tpl = "我是:{name};年龄:{age};性别:{gender}"
     77 # v = tpl.format(name='李杰',age=19,gender='随意')
     78 # print(v)
     79 
     80 # tpl = "我是:{name};年龄:{age};性别:{gender}"
     81 # v = tpl.format_map({'name':"李杰",'age':19,'gender':'中'})
     82 # print(v)
     83 
     84 
     85 # 12. 是否是数字、汉子.
     86 # name  = 'alex8汉子'
     87 # v = name.isalnum() # 字,数字
     88 # print(v) # True
     89 # v2 = name.isalpha()#
     90 # print(v2)# False
     91 
     92 # 13. 判断是否是数字
     93 # num = '②'
     94 # v1 = num.isdecimal() # '123'
     95 # v2 = num.isdigit()   # '123','②'
     96 # v3 = num.isnumeric() # '123','二','②'
     97 # print(v1,v2,v3)
     98 
     99 
    100 # 14. 是否是表示符
    101 # n = 'name'
    102 # v = n.isidentifier()
    103 # print(v)
    104 
    105 # 15.是否全部是小写
    106 # name = "ALEX"
    107 # v = name.islower()
    108 # print(v)
    109 # v = name.isupper()
    110 # print(v)
    111 
    112 # 16,.全部变大写,
    113 # name = 'alex'
    114 # v = name.upper()  # lower()
    115 # print(v)
    116 
    117 # 17.是否包含隐含的xx
    118 # name = "钓鱼要钓刀鱼,
    刀鱼要到岛上钓"
    119 # v = name.isprintable()
    120 # print(v)
    121 
    122 
    123 # 18.是否全部是空格
    124 # name = '    '
    125 # v = name.isspace()
    126 # print(v)
    127 
    128 
    129 
    130 # 19.元素拼接(元素字符串) *****
    131 # name = 'alex'
    132 
    133 # v = "_".join(name) # 内部循环每个元素
    134 # print(v)
    135 
    136 # name_list = ['海峰','杠娘','李杰','李泉']
    137 # v = "搞".join(name_list)
    138 # print(v)
    139 
    140 # 20. 左右填充
    141 # center,rjust,ljust
    142 # name = 'alex'
    143 # v = name.rjust(20,'*')
    144 # print(v)
    145 
    146 
    147 # 21. 对应关系 + 翻译
    148 # m = str.maketrans('aeiou','12345') # 对应关系
    149 #
    150 # name = "akpsojfasdufasdlkfj8ausdfakjsdfl;kjer09asdf"
    151 # v = name.translate(m)
    152 # print(v)
    153 
    154 # 22. 分割,保留分割的元素
    155 # content = "李泉SB刘康SB刘一"
    156 # v = content.partition('SB') # partition
    157 # print(v)
    158 
    159 # 23. 替换
    160 # content = "李泉SB刘康SB刘浩SB刘一"
    161 # v = content.replace('SB','Love')
    162 # print(v)
    163 # v = content.replace('SB','Love',1)
    164 # print(v)
    165 
    166 # 24,移除空白,
    ,	,自定义
    167 # name = 'alex	'
    168 # v = name.strip() # 空白,
    ,	
    169 # print(v)
    170 
    171 # 25. 大小写转换
    172 # name = "Alex"
    173 # v = name.swapcase()
    174 # print(v)
    175 
    176 # 26. 填充0
    177 # name = "alex"
    178 # v = name.zfill(20)
    179 # print(v)
    180 
    181 # v1 = 'alex'
    182 # v2 = 'eric'
    183 #
    184 # v = v1 + v2 # 执行v1的__add__功能
    185 # print(v)
    186 
    187 
    188 ###### 字符串功能总结:
    189 # name = 'alex'
    190 # name.upper()
    191 # name.lower()
    192 # name.split()
    193 # name.find()
    194 # name.strip()
    195 # name.startswith()
    196 # name.format()
    197 # name.replace()
    198 # "alex".join(["aa",'bb'])
    199 
    200 
    201 ###### 额外功能:
    202 # name = "alex"
    203 # name[0]
    204 # name[0:3]
    205 # name[0:3:2]
    206 # len(name)
    207 # for循环,每个元素是字符
    208 
    209 
    210 # 练习题
    211 # name = "aleX"
    212 # a
    213 # v = name.strip()
    214 # print(v)
    215 # b
    216 # v = name.startswith('al')
    217 # print(v)
    218 # v = name.replace('l','p')
    219 # print(v)
    220 
    221 # v = name.split('l')
    222 # print(v) # 列表
    223 
    224 # **** 转换成字节 ****
    225 # name = "李杰"
    226 # v1 = name.encode(encoding='utf-8') # 字节类型
    227 # print(v1)
    228 # v2 = name.encode(encoding='gbk') # 字节类型
    229 # print(v2)
    View Code

     4. 列表(list)

    lst.append() lst.clear() lst.copy() lst.count() lst.extend()
    lst.index() lst.pop() lst.remove() lst.reverse() lst.sort()
      1 # ## int=xx; str='xxx'  list='xx'
      2 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
      3 # PS:
      4     # name = 'alex'
      5 # 执行功能;
      6 # 1.追加
      7 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
      8 # user_list.append('刘铭')
      9 # print(user_list)
     10 # 2. 清空
     11 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
     12 # user_list.clear()
     13 # print(user_list)
     14 
     15 # 3. 拷贝(浅拷贝)
     16 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
     17 # v = user_list.copy()
     18 # print(v)
     19 # print(user_list)
     20 
     21 # 4. 计数
     22 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
     23 # v = user_list.count('李泉')
     24 # print(v)
     25 
     26 # 5. 扩展原列表
     27 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
     28 # user_list.extend(['郭少龙','郭少霞'])
     29 # print(user_list)
     30 
     31 # 6. 查找元素索引,没有报错
     32 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
     33 # v = user_list.index('李海')
     34 # print(v)
     35 
     36 # 7. 删除并且获取元素 - 索引
     37 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
     38 # v = user_list.pop(1)
     39 # print(v)
     40 # print(user_list)
     41 
     42 # 8. 删除 - 值
     43 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
     44 # user_list.remove('刘一')
     45 # print(user_list)
     46 
     47 # 9. 翻转
     48 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
     49 # user_list.reverse()
     50 # print(user_list)
     51 
     52 # 10. 排序: 欠参数
     53 # nums = [11,22,3,3,9,88]
     54 # print(nums)
     55 # 排序,从小到大
     56 # nums.sort()
     57 # print(nums)
     58 # 从大到小
     59 # nums.sort(reverse=True)
     60 # print(nums)
     61 
     62 ######  额外:
     63 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
     64 # user_list[0]
     65 # user_list[1:5:2]
     66 # del user_list[3]
     67 # for i in user_list:
     68 #     print(i)
     69 # user_list[1] = '姜日天'
     70 # user_list = ['李泉','刘一','李泉','刘康','豆豆',['日天','日地','泰迪'],'小龙']
     71 
     72 
     73 # li = ['eric','alex','tony']
     74 #
     75 # v = len(li)
     76 # print(v)
     77 #
     78 # li.append('seven')
     79 # print(li)
     80 #
     81 # li.insert(0,'Tony')
     82 # print(li)
     83 #
     84 # li[1] = 'Kelly'
     85 #
     86 # li.remove('eric')
     87 # print(list)
     88 #
     89 # v = li.pop(1)
     90 # print(v)
     91 # print(li)
     92 #
     93 # del li[2]
     94 
     95 
     96 # del li[0:2] # 0 =<x < 2
     97 # print(li)
     98 
     99 # li.reverse()
    100 # print(li)
    101 
    102 # for i in li:
    103 #     print(i)
    View Code

     5. 元组(tuple)

    元组作为不可变类型,自身具有的方法比较少,应用的范围也有限制

     1 # user_tuple = ('alex','eric','seven','alex')
     2 # 1. 获取个数
     3 # v = user_tuple.count('alex')
     4 # print(v)
     5 # 2.获取值的第一个索引位置
     6 # v = user_tuple.index('alex')
     7 # print(v)
     8 
     9 ####### 额外:
    10 # user_tuple = ('alex','eric','seven','alex')
    11 # for i in user_tuple:
    12 #     print(i)
    13 
    14 # v = user_tuple[0]
    15 
    16 # v = user_tuple[0:2]
    17 # print(v)
    18 
    19 # user_tuple = ('alex','eric','seven',['陈涛','刘浩','赵芬芬'],'alex')
    20 # user_tuple[0] = 123   x
    21 # user_tuple[3] = [11,22,33] x
    22 # user_tuple[3][1] = '刘一'
    23 # print(user_tuple)
    24 
    25 # li = ['陈涛','刘浩',('alex','eric','seven'),'赵芬芬']
    26 # ****** 元组最后,加逗号 ******
    27 # li = ('alex',)
    28 # print(li)

    6. 字典(dict)

    dic.clear() dic.copy() dic.get() dic.pop() dic.popitem()
    dic.setdefault() dic.update() dic.append()    
     1 # 1. 清空、
     2 # dic = {'k1':'v1','k2':'v2'}
     3 # dic.clear()
     4 # print(dic)
     5 
     6 # 2. 浅拷贝
     7 # dic = {'k1':'v1','k2':'v2'}
     8 # v = dic.copy()
     9 # print(v)
    10 
    11 # 3. 根据key获取指定的value;不存在不报错
    12 # dic = {'k1':'v1','k2':'v2'}
    13 # v = dic.get('k1111',1111)
    14 # print(v)
    15 # v = dic['k1111']
    16 # print(v)
    17 
    18 # 4. 删除并获取对应的value值
    19 # dic = {'k1':'v1','k2':'v2'}
    20 # v = dic.pop('k1')
    21 # print(dic)
    22 # print(v)
    23 
    24 # 5. 随机删除键值对,并获取到删除的键值
    25 # dic = {'k1':'v1','k2':'v2'}
    26 # v = dic.popitem()
    27 # print(dic)
    28 # print(v)
    29 
    30 # k,v = dic.popitem() # ('k2', 'v2')
    31 # print(dic)
    32 # print(k,v)
    33 
    34 # v = dic.popitem() # ('k2', 'v2')
    35 # print(dic)
    36 # print(v[0],v[1])
    37 
    38 # 6. 增加,如果存在则不做操作
    39 # dic = {'k1':'v1','k2':'v2'}
    40 # dic.setdefault('k3','v3')
    41 # print(dic)
    42 # dic.setdefault('k1','1111111')
    43 # print(dic)
    44 # 7. 批量增加或修改
    45 # dic = {'k1':'v1','k2':'v2'}
    46 # dic.update({'k3':'v3','k1':'v24'})
    47 # print(dic)
    48 
    49 
    50 # dic = dict.fromkeys(['k1','k2','k3'],123)
    51 # print(dic)
    52 # dic = dict.fromkeys(['k1','k2','k3'],123)
    53 # dic['k1'] = 'asdfjasldkf'
    54 # print(dic)
    55 
    56 # dic = dict.fromkeys(['k1','k2','k3'],[1,])
    57 # {
    58 #    k1: 123123213, # [1,2]
    59 #    k2: 123123213, # [1,]
    60 #    k3: 123123213, # [1,]
    61 # }
    62 # dic['k1'].append(222)
    63 # print(dic)
    64 # ########## 额外:
    65 # - 字典可以嵌套
    66 # - 字典key: 必须是不可变类型
    67 # dic = {
    68 #     'k1': 'v1',
    69 #     'k2': [1,2,3,],
    70 #     (1,2): 'lllll',
    71 #     1: 'fffffffff',
    72 #     111: 'asdf',
    73 # }
    74 # print(dic)
    75 # key:
    76 #     - 不可变
    77 #     - True,1
    78 
    79 # dic = {'k1':'v1'}
    80 # del dic['k1']
    View Code

     7. 集合(set)

    set.difference() set.symmetric_difference() set.intersection() set.union() set.discard()
    set.update()        
     1 # s1 = {"alex",'eric','tony','李泉','李泉11'}
     2 # s2 = {"alex",'eric','tony','刘一'}
     3 
     4 # 1.s1中存在,s2中不存在
     5 # v = s1.difference(s2)
     6 # print(v)
     7 # #### s1中存在,s2中不存在,然后对s1清空,然后在重新复制
     8 # s1.difference_update(s2)
     9 # print(s1)
    10 
    11 # 2.s2中存在,s1中不存在
    12 # v = s2.difference(s1)
    13 # print(v)
    14 
    15 # 3.s2中存在,s1中不存在
    16 # s1中存在,s2中不存在
    17 # v = s1.symmetric_difference(s2)
    18 # print(v)
    19 # 4. 交集
    20 # v = s1.intersection(s2)
    21 # print(v)
    22 # 5. 并集
    23 # v = s1.union(s2)
    24 # print(v)
    25 
    26 # 6. 移除
    27 # s1 = {"alex",'eric','tony','李泉','李泉11'}
    28 # s1.discard('alex')
    29 # print(s1)
    30 
    31 # s1 = {"alex",'eric','tony','李泉','李泉11'}
    32 # s1.update({'alex','123123','fff'})
    33 # print(s1)
    34 # ##### 额外:
    35 
    36 # s1 = {"alex",'eric','tony','李泉','李泉11'}
    37 # for i in s1:
    38 #     print(i)
    39 
    40 # s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)}
    41 # for i in s1:
    42 #     print(i)

    关于range和enumerate的使用 

     1 # 1. 请输出1-10
     2 # 2.7: 立即生成所有数字
     3 # range(1,11) # 生成 1,23,,4,56.10
     4 
     5 # 3.x: 不会立即生成,只有循环迭代时,才一个一个生成
     6 # for i in range(1,11): #
     7 #     print(i)
     8 
     9 # for i in range(1,11,2): #
    10 #     print(i)
    11 
    12 # for i in range(10,0,-1): #
    13 #     print(i)
    14 
    15 # 1. 3.x 不会立生成,迭代之后才一个一个创建;
    16 """
    17     - 2.7:
    18         range()
    19         xrange()  不会立生成,迭代之后才一个一个创建;
    20     - 3.x
    21         range()  不会立生成,迭代之后才一个一个创建;
    22 """
    23 # 2. range: 三个参数
    24 #
    25 # li = ['eric','alex','tony']
    26 # # range,len,li循环
    27 # for i in range(0,len(li)):
    28 #     ele = li[i]
    29 #     print(ele)
    30 
    31 
    32 # li = ['eric','alex','tony']
    33 # for i in li:
    34 #     print(i)
    35 
    36 # for i in range(0,len(li)):
    37 #     print(i+1,li[i])
    38 
    39 
    40 # enumerate额外生成一列有序的数字
    41 # li = ['eric','alex','tony']
    42 # for i,ele in enumerate(li,1):
    43 #     print(i,ele)
    44 #
    45 # v = input('请输入商品序号:')
    46 # v = int(v)
    47 # item = li[v-1]
    48 # print(item)
  • 相关阅读:
    在线图片压缩
    wiki-editor语法
    Android 4.0.4模拟器安装完全教程(图文)
    Javascript中的void
    守护进程
    jQuery编程的最佳实践
    JavaScript内存优化
    vim编程技巧
    MySQL表的四种分区类型
    SQL中的where条件,在数据库中提取与应用浅析
  • 原文地址:https://www.cnblogs.com/paodanke/p/6834905.html
Copyright © 2011-2022 走看看