zoukankan      html  css  js  c++  java
  • python初识(二)

    目录:

    • 进制
    • 基本数据类型
      • 整形
      • 布尔值
      • 字符串
      • 列表
      • 元祖
      • 字典
      • 集合
    • range & enumerate

    一、进制

      二进制转换十进制计算:

      十进制:==47

      一个字节公式:==128 64 32 16 8 4 2 1

      二进制: == 0    0   1   0 1 1 1 1

      1、二进制(0b):

         a.表现形式:0、1 --〉11 ==十进制3

         b.python中的应用:    

    十进制:a = 5

    转换:bin(a)

    结果:'0b101' ==〉 cpu处理:00000101

      2、八进制(0o):

         a.表现形式:0、1、2、3、4、5、6、7、8 -->11 ==十进制9

         b.python中的应用:    

    十进制:a = 11
    转换:oct(a)
    结果:'0o13'   ==〉 cpu处理:000001101 

     

      3、十进制 

    a.表现形式:0、1、2、3、4、5、6、7、8、9、10 -->11 ==十进制11

         b.python中的应用:    

    十进制:a = 11 

    结果:11  ==〉 cpu处理:000001101

    注意:其实在python3里所留代码都是转换成十六进制存储的 

      4、十六进制(0x)

         a.表现形式:0、1、2、3、4、5、6、7、8、9、 A、 B、C、D、E、F -->A ==十进制11

         b.python中的应用:    

    十进制:a = 20
    转换:hex(a)
    结果:'0x14' ==〉 cpu处理:000001010


    5、总结:

    a. 硬盘上保存数据:为二进制文件,python3展示的时候为了方便,展示的时候为了方便会显示十六进制

    b. cpu处理读取:01010101010101010101 -> 对应的编码的汉字 --> xx
    c. python3:

    - 转换完成的字符串
    - 以十六进制展示的

    二、  基本数据类型

    1、整形(int)

    没啥好说的,直接上代码,哈哈。

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # Author:Shu Yang Wang
     4 
     5 '''
     6 int 整数类型
     7 '''
     8 
     9 '''
    10 1. 当前整数的二进制表示,最少位数
    11 '''
    12 age = 4  # 二进制100
    13 print(age.bit_length())
    14 #结果为3
    15 
    16 '''
    17 2. 获取当前数据的字符表示
    18 '''
    19 age = 15
    20 v = age.to_bytes(10,byteorder='big')
    21 print('获取当前数据的字符表示big', v)  # b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f'
    22 v = age.to_bytes(10,byteorder='little')
    23 print('获取当前数据的字符表示little', v)  # b'\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    24 '''
    25 ps. 显示为十六进制0f为15, little为从右边补0, big为从左边补0
    26     0f ==> 二进制为 0000 1111 代表一个字节码
    27 '''
    View Code

    2、布尔值(bool)

    代码都不用上,简单吧。

    当传入的对象为空时,为False -->0, 否则为True --> 1

    例如:为False情况,如下:
    v = 0
    v = ''
    v = []
    v = {}
    v = ()
    v = False
    其他值均为True 或者说是 1。

    3、字符串(str)

    a. 常用str类的实例对象(方法)有:


    # name.upper()
    # name.lower()
    # name.split()
    # name.find()
    # name.strip()
    # name.startswith()
    # name.format()
    # name.replace()
    # "shuyang".join(["aa",'bb'])

    b. __add__ 功能, str类的隐藏参数,详细为学习到面向对象,在详细分析目前用途为 v = v1 + v2 实际就是条用__add__参数

    c. 代码实例详解

      1 #!/usr/bin/env python
      2 # -*- coding:utf-8 -*-
      3 # Author:Shu Yang Wang
      4 
      5 '''
      6 字符串内置方法调用
      7 '''
      8 
      9 '''
     10 a. 字符大写变小写,casefold可以转目前所有字符,大写变小写,如:德语
     11 lower()只能是英文的大写便小写。
     12 注意:中文没有大小写
     13 '''
     14 name = 'Alex'
     15 v = name.casefold()
     16 v1 = name.lower()
     17 print('casefold and lower', v, v1)
     18 
     19 '''
     20 b. 首字母大写、全部变大写
     21 '''
     22 name1 = 'alex'  # str类的对象
     23 # capitalize 字符串字母大写
     24 # name1自身不变,capitalize方法会生成一个新的值
     25 v2 = name1.capitalize()
     26 print('首字母大写',name1,v2)
     27 # 全部变大写
     28 name1 = 'alex'
     29 v2 = name1.upper()
     30 print('全部变大写',name1,v2)
     31 
     32 '''
     33 c. 文本居中,默认为空格分隔, 及左右空格
     34 center, rjust,ljust
     35 参数1:表示总长度
     36 参数2: 空白处填充的字符(长度为1)
     37 '''
     38 name2 = 'alex'
     39 v3 = name2.center(20)
     40 print('文本居中', v3)
     41 v3 = name2.center(20,'-')
     42 print('文本居中1', v3)
     43 v3 = name2.center(20,'*')
     44 print('文本居中2', v3)
     45 v3 = name2.center(20,'')
     46 print('文本居中3', v3)
     47 v3 = name2.ljust(20,'*')
     48 print('从左边开始20位,不够补*', v3)
     49 v3 = name2.rjust(20,'-')
     50 print('从右边开始20位,不够补-', v3)
     51 
     52 '''
     53 d. 字符串出现的关键字统计
     54 参数1:要查找的值(子序列)
     55 参数2:起始位置(索引)
     56 参数3:结束位置(索引)
     57 '''
     58 name3 ='fafafadffgfdgdaerwerweqweqeaaaa'
     59 v4 = name.count('a')
     60 print('字符串出现的关键字统计', v4)
     61 v4 = name.count('we',12)
     62 print('字符串出现的关键字统计', v4)
     63 v4 = name.count('we',20)
     64 print('字符串出现的关键字统计', v4)
     65 
     66 '''
     67 e.是否以XX结尾,是否已XX开头
     68 '''
     69 name4 = 'alex'
     70 #以XX结尾
     71 v5 = name.endswith('ex')
     72 print('以XX结尾', v5)
     73 #以XX开头
     74 v5 = name.startswith('ex')
     75 print('以XX开头', v5)
     76 
     77 '''
     78 f. encode 
     79 str = "人生苦短,我用python";
     80 str_utf8 = str.encode("UTF-8")
     81 str_gbk = str.encode("GBK")
     82 
     83 print(str)
     84 
     85 print("UTF-8 编码:", str_utf8)
     86 print("GBK 编码:", str_gbk)
     87 
     88 print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
     89 print("GBK 解码:", str_gbk.decode('GBK','strict'))
     90 '''
     91 
     92 
     93 '''
     94 g. 找到制表符\t,进行替换(包含前面的值)
     95 PS:\n
     96 '''
     97 name6 = 'al\te\tx\nalex\tuu\tkkk'
     98 v7 = name.expandtabs(20)
     99 print('找到制表符/t,进行替换(包含前面的值)',v7)
    100 
    101 
    102 '''
    103 h. 找到指定子序列的索引位置:
    104 find:不存在返回-1
    105 index: 不存在报错
    106 '''
    107 name7 = 'alex'
    108 v8 = name7.find('o')
    109 print('找到指定子序列的索引位置:不存在返回-1',v8)
    110 v8 = name7.index('a')
    111 print('找到指定子序列的索引位置:不存报错',v8)
    112 
    113 '''
    114 i. 字符串格式化
    115 '''
    116 # tp1 = '我是:%s 年龄:%s 性别:%s'
    117 tpl = '我是:{0} 年龄:{1} 性别:{2}'
    118 v9 = tpl.format('舒阳', 19, '')
    119 print('字符串格式化', v9)
    120 
    121 tpl = '我是:{name} 年龄:{age} 性别:{gender}'
    122 v9 = tpl.format(name = '舒阳',age = 19, gender ='')
    123 print('字符串格式化2', v9)
    124 
    125 tpl = '我是:{name} 年龄:{age} 性别:{gender}'
    126 v9 = tpl.format_map({'name':'舒阳','age':19, 'gender':''})
    127 print('字符串格式化2', v9)
    128 
    129 
    130 '''
    131 g. 是否是数字、汉字
    132 '''
    133 name9 = 'alex8汉字'
    134 v10 = name9.isalnum()  # 字,数字, 字母
    135 print('isalnum是否是数字、汉字', v10)
    136 v10 = name9.isalpha()  # 字母
    137 print('isalpha是否是字母', v10)
    138 
    139 '''
    140 k. 判断是否是数字
    141 '''
    142 # num = 123
    143 # num = '二'
    144 num = ''
    145 v11 = num.isdecimal()  # '123'
    146 print('isdecimal判断是否是数字', v11)
    147 v11 = num.isdigit()  # '123', '②'
    148 print('isdigit判断是否是数字', v11)
    149 v11 = num.isnumeric()  # '123','二','②'
    150 print('isnumeric判断是否是数字', v11)
    151 
    152 '''
    153 l. 是否是表式符
    154 '''
    155 n = 'name'
    156 v12 = n.isidentifier()
    157 print('是否是制表符', v12)
    158 
    159 '''
    160 m. 是否全部是小写 or 大写
    161 '''
    162 # 是否全部是小写
    163 name13 = 'alex'
    164 v13 = name13.islower()
    165 print('是否全部是小写', v13)
    166 # 是否全部是大写
    167 name13 = 'ALEX'
    168 v13 = name13.isupper()
    169 print('是否全部是大写', v13)
    170 
    171 '''
    172 n. 是否包含隐含的xx,如:/t /n /r
    173 '''
    174 name14 = "钓鱼要掉刀鱼,\n刀鱼要到岛上掉"
    175 v14 = name14.isprintable()
    176 print('是否包含隐含的xx,如:/t /n /r', v14)
    177 
    178 '''
    179 o. 是否全部是空格
    180 '''
    181 name15 = '      '
    182 v15 = name.isspace()
    183 print('是否全部是空格', v15)
    184 
    185 '''
    186 p. 元素拼接(元素字符串) 五星重要
    187 '''
    188 name16 = 'alex'
    189 v16 = '_'.join(name16)
    190 print('元素拼接(元素字符串)', v16)
    191 # ps. list使用join拼接
    192 name_16_list = ['a', 'b', 'c', 'd']
    193 v16 = ''.join(name_16_list)
    194 print('元素拼接(元素list)', v16)
    195 
    196 '''
    197 q. 对应关系 + 翻译
    198 '''
    199 m = str.maketrans('abcedfg', '1234567')  # 对应关系字典
    200 #print(m) ## {97: 49, 98: 50, 99: 51, 101: 52, 100: 53, 102: 54, 103: 55}
    201 name17 = 'abcedfgfadfafafaagfgwerwrwqrqeoiwr'
    202 v17 = name17.translate(m)
    203 print('对应关系 + 翻译', v17)
    204 
    205 '''
    206 r. 分割,保留分割的元素
    207 只能分割从左数第一个匹配
    208 ('a', 'SB', 'bSBc')
    209 '''
    210 content = 'aSBbSBc'
    211 v18 = content.partition('SB')
    212 print('分割,保留分割的元素', v18)
    213 #分割不保留元素,用spilt
    214 #参数一:关键字
    215 #参数二:从左分割几次,有默认值 -1,全切割
    216 content = 'aSBbSBc'
    217 v18 = content.split('SB', 1)
    218 print('分割不保留元素,用spilt', v18)
    219 
    220 '''
    221 s. 替换
    222 参数1: old_word
    223 参数2: new_word
    224 参数3: 替换个数,从左开始
    225 '''
    226 content1 = 'aSBbSBc'
    227 v19 = content1.replace('SB', 'Love')
    228 print('替换', v19)
    229 v19 = content1.replace('SB', 'Love', 1)
    230 print('替换,替换个数1', v19)
    231 
    232 
    233 '''
    234 t. 移除空白,默认/n/t/r,
    235 参数一:自定义移除str
    236 '''
    237 name20 = 'alex\t'
    238 v20 = name.strip()
    239 print('移除空白', v20)
    240 
    241 
    242 '''
    243 u. 大小写转换
    244 '''
    245 name21 = "Alex"
    246 v21 = name.swapcase()
    247 print('大小写转换', v21)
    248 
    249 '''
    250 v.填充0
    251 '''
    252 name22 = 'Alex'
    253 v = name.zfill(20)
    254 print('填充0', v)
    View Code

    4、列表(list)

    list为可变类型字符与(int,str,list,dict)一样

    切片[::]
    remove删除 --值
    for循环读取
    list的嵌套
    len()长度
    更新

    ps.以上东西已在python初识(一)中的python数据类型初识中,详细介绍,就不重复了。下面我们学点新东西,如下:

    a.代码示例详解

      1 #!/usr/bin/env python
      2 # -*- coding:utf-8 -*-
      3 # Author:Shu Yang Wang
      4 
      5 '''
      6 list 列表,为可变类型字符(int,str,list,dict)
      7 '''
      8 
      9 '''
     10 a. list追加
     11 '''
     12 #建立变量
     13 user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
     14 user_list.append('刘铭')
     15 print('list追加', user_list)
     16 
     17 '''
     18 b.list清空
     19 '''
     20 user_list = ['李泉','刘一','刘康','豆豆','小龙']
     21 user_list.clear()
     22 print('list清空', user_list)
     23 
     24 '''
     25 c.list拷贝(浅拷贝)
     26 '''
     27 user_list = ['李泉','刘一','刘康','豆豆','小龙']
     28 v = user_list.copy()
     29 print('list拷贝(浅拷贝)', v)
     30 
     31 '''
     32 d.list计数
     33 '''
     34 user_list = ['李泉','刘一','刘康','豆豆','小龙','李泉']
     35 v = user_list.count('李泉')
     36 print('list计数', v)
     37 
     38 '''
     39 e. list扩展原列表
     40 '''
     41 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
     42 user_list.extend(['郭少龙','郭少霞'])
     43 print('list扩展原列表', user_list)
     44 
     45 
     46 '''
     47 f. list查找元素索引,有报错
     48 '''
     49 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
     50 #v = user_list.index('李海')  #有报错
     51 print('list查找元素索引,没有报错', v)
     52 
     53 '''
     54 g. list删除并且获取元素 - 索引
     55 '''
     56 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
     57 v = user_list.pop(1)
     58 print('删除并且获取元素的值', v)
     59 print('list删除并且获取元素的列表', user_list)
     60 
     61 '''
     62 f. list删除 - 值
     63 '''
     64 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
     65 user_list.remove('刘一')
     66 print('list删除', user_list)
     67 
     68 '''
     69 g.  list翻转
     70 '''
     71 user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
     72 user_list.reverse()
     73 print('list翻转', user_list)
     74 
     75 '''
     76 h. list排序: 欠参数key=None
     77 '''
     78 nums = [11,22,3,3,9,88]
     79 print('原始list',nums)
     80 # 排序,从小到大
     81 nums.sort()
     82 print('list排序,从小到大',nums)
     83 # 从大到小
     84 nums.sort(reverse=True)
     85 print('从大到小',nums)
     86 
     87 '''
     88 i 插入 
     89 参数1: 索引位置
     90 参数2: 插入的值
     91 '''
     92 li = ['eric','alex','tony']
     93 li.insert(0,'Tony')
     94 print('插入',li)
     95 
     96 '''
     97 j. list删除取值 --索引
     98 '''
     99 li = ['eric','alex','tony']
    100 v = li.pop(1)
    101 print('list删除的值', v)
    102 print('list删除', li)
    103 
    104 '''
    105 k. del多个删除 -- 索引
    106 '''
    107 li = ['eric','alex','tony']
    108 #del li[2]
    109 li[0:2] # 0 =<x < 2
    110 print('list删除', li)
    View Code

    5、元祖(tuple)

      元祖不可被修改的列表,为不可变类型,是目前python基础类型中唯一的不可变类型,它一旦创建,便不能再修改,所以又叫只读列表。

    a.元祖(tuple)嵌套列表(list),子序列不能修改,list可以修改,怎么修改呢?

    简单演示:
    user_tuple = ('alex','eric','seven',['陈涛','刘浩','赵芬芬'],'alex')
    user_tuple[0] = 123 不对,不可变类型
    user_tuple[3] = [11,22,33] 不对,不可变类型
    user_tuple[3][1] = '刘一'
    print(user_tuple)

    b.元组最后,加逗号,因为一个元素被()默认不是元祖(潜规则)

    简单演示:
    li = ('shuyang',)
    print(li)

    c. 代码示例详解

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # Author:Shu Yang Wang
     4 
     5 '''
     6 tuple元祖:元祖不可被修改的列表,为不可变类型
     7 '''
     8 user_tuple = ('alex', 'eric', 'seven', 'alex')
     9 # a、元祖获取个数
    10 v1 = user_tuple.count('alex')
    11 print('元祖获取个数', v1)
    12 # b、元祖获取第一个索引的位置
    13 v2 = user_tuple.index('alex')
    14 print('元祖获取第一个索引的位置', v2)
    View Code

    6、字典(dict)

    a.字典可以嵌套
    b.字典key: 必须是不可变类型,且Ture和int(1)不能同时使用

    简单演示:
    dic = {
    'k1': 'v1',
    'k2': [1,2,3,],
    (1,2): 'lllll',  # 元祖为不可变类型,所以可以,但我尽量不使用这种方式
    1: 'fffffffff',
    111: 'asdf',
    }
    print(dic)

    dic = {'k1':'v1'}
    del dic['k1']

    c.代码示例详解

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # Author:Shu Yang Wang
     4 
     5 '''
     6 dict 字典
     7 '''
     8 '''
     9 a. dict清空
    10 '''
    11 dic = {'k1':'v1','k2':'v2'}
    12 dic.clear()
    13 print('dict清空', dic)
    14 
    15 '''
    16 b.dict浅拷贝
    17 '''
    18 dic = {'k1':'v1','k2':'v2'}
    19 v = dic.copy()
    20 print('dict浅拷贝', v)
    21 
    22 '''
    23 c. dict根据key获取指定的value;不存在不报错
    24 '''
    25 dic = {'k1':'v1','k2':'v2'}
    26 v = dic.get('k1111',1111)
    27 # v = dic['k1111']  # 报错
    28 print('dict根据key获取指定的value;不存在不报错', v)
    29 
    30 '''
    31 d. dict删除并获取对应的value值
    32 '''
    33 dic = {'k1':'v1','k2':'v2'}
    34 v = dic.pop('k1')
    35 print('dict删除并获取对应的value值', v)
    36 print('dict删除后字典', dic)
    37 
    38 '''
    39 e. dict随机删除键值对,并获取到删除的键值
    40 '''
    41 dic = {'k1':'v1','k2':'v2'}
    42 v = dic.popitem()
    43 print('dict删除并获取对应的value值', v)
    44 print('dict删除后字典', dic)
    45 '''
    46 # 花式取值1
    47 k,v = dic.popitem() # ('k2', 'v2')
    48 print(dic)
    49 print(k,v)
    50 
    51 # 花式取值2
    52 v = dic.popitem() # ('k2', 'v2')
    53 print(dic)
    54 print(v[0],v[1])
    55 '''
    56 
    57 '''
    58 f. dict增加默认值,如果存在则不做操作
    59 '''
    60 dic = {'k1':'v1','k2':'v2'}
    61 dic.setdefault('k3','v3')
    62 print('dict增加默认值,不存在,添加', dic)
    63 dic.setdefault('k1','1111111')
    64 print('dict增加默认值,存在,不变', dic)
    65 
    66 '''
    67 g. dict批量增加或修改
    68 '''
    69 dic = {'k1':'v1','k2':'v2'}
    70 dic.update({'k3':'v3','k1':'v24'})
    71 print('dict批量增加或修改', dic)
    72 
    73 '''
    74 h. 批量创建方式
    75 参数1: key值列表
    76 参数2: 所有key默认初始值val值
    77 '''
    78 dic = dict.fromkeys(['k1','k2','k3'],123)
    79 print('dict批量创建方式', dic)
    80 #修改
    81 dic['k1'] = 'asdfjasldkf'
    82 print('dict批量创建方式--修改', dic)
    83 '''
    84 # 注意:
    85 dic用fromkeys创建方法。如果value值为list,因所有key指向value值是同一个
    86 内存地址,所以,修改list中的值时,所有key都会跟着变更。故value值为list,
    87 修改dic的value时,必须整个list重新赋值,获取新的内存地址。
    88 dic = dict.fromkeys(['k1','k2','k3'],[1,])
    89 {
    90    k1: 123123213, # [1,2]
    91    k2: 123123213, # [1,]
    92    k3: 123123213, # [1,]
    93 }
    94 dic['k1'].append(222)
    95 print(dic)
    96 '''
    View Code

    7、集合(set)

    a. for循环迭代读取集合


    s1 = {"alex",'eric','tony','李泉','李泉11'}
    for i in s1:

    print(i)

    b. 集合的嵌套


    s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)}
    for i in s1:

    print(i)

    c. 不是太常用的set类的方法


    isdisjoint     判断交集,是返回False,否返回True
    issubset(x)   判断 集合s 是否是 集合x 子集
    issuperset(x)  判断 集合x 是否是集合s的子集
    pop      随机删除并返回集合s中某个值,注意,因为set是无序的,不支持下标操作,没有所谓的最后一个,pop()移除随机一个元素,这和其他数据结构不同
    remove 将 x 从集合s中移除,若x不存在,会引发错误

    d. 代码示例详解

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # Author:Shu Yang Wang
     4 
     5 '''
     6 set 集合
     7 不可重复的列表,属于可变类型
     8 '''
     9 
    10 '''
    11 a. 创建
    12 s1 = {"alex",'eric','tony','李泉','李泉11'}
    13 s2 = {"alex",'eric','tony','刘一'}
    14 '''
    15 
    16 '''
    17 b. s1中存在,s2中不存在
    18 '''
    19 s1 = {"alex",'eric','tony','李泉','李泉11'}
    20 s2 = {"alex",'eric','tony','刘一'}
    21 v = s1.difference(s2)
    22 print('s1中存在,s2中不存在', v)
    23 
    24 '''
    25 c. s1中存在,s2中不存在
    26 '''
    27 s1 = {"alex",'eric','tony','李泉','李泉11'}
    28 s2 = {"alex",'eric','tony','刘一'}
    29 s1.difference(s2)
    30 print('s1中存在,s2中不存在', s1)
    31 #s1中存在,s2中不存在,然后对s1清空,然后在重新赋值(重要)
    32 s1.difference_update(s2)
    33 print('s1中存在,s2中不存在,然后对s1清空,然后在重新赋值', s1)
    34 
    35 '''
    36 d. s2中存在,s1中不存在,且s1中存在,s2中不存在,对称差集
    37 '''
    38 s1 = {"alex",'eric','tony','李泉','李泉11'}
    39 s2 = {"alex",'eric','tony','刘一'}
    40 v = s1.symmetric_difference(s2)
    41 print('对称差集', v)
    42 # 对称差集,然后对s1清空,然后在重新赋值
    43 s1.symmetric_difference_update(s2)
    44 print('对称差集,然后对s1清空,然后在重新赋值', s1)
    45 
    46 '''
    47 e. 交集
    48 '''
    49 s1 = {"alex",'eric','tony','李泉','李泉11'}
    50 s2 = {"alex",'eric','tony','刘一'}
    51 v = s1.intersection(s2)
    52 print('交集', v)
    53 s1.intersection_update(s2)
    54 print('交集,然后对s1清空,然后在重新赋值', s1)
    55 
    56 '''
    57 f. 并集
    58 '''
    59 s1 = {"alex",'eric','tony','李泉','李泉11'}
    60 s2 = {"alex",'eric','tony','刘一'}
    61 v = s1.union(s2)
    62 print('并集', v)
    63 
    64 '''
    65 g. 移除
    66 '''
    67 s1 = {"alex",'eric','tony','李泉','李泉11'}
    68 s1.discard('alex')
    69 print('移除', s1)
    70 
    71 '''
    72 h. 更新
    73 '''
    74 s1 = {"alex",'eric','tony','李泉','李泉11'}
    75 s1.update({'alex','123123','fff'})
    76 print('更新', s1)
    View Code

    三、range & enumerate

    1、range生成器

    a. python2.7: 立即生成所有数字


    range(1,11) # 生成 1,23,,4,56.10
    range() 立即生成所有数字,在2.7中range()不是生成器
    xrange() 不会立生成,迭代之后才一个一个创建;是生成器

    b. python3.x: 不会立即生成,只有循环迭代时,才一个一个生成


    range() 不会立生成,迭代之后才一个一个创建;是生成器
    for i in range(1,11): #1,2,3,4,5,6,7,8,9,10

    print(i)


    c. range(开始,结束,步长) range(0,3)== 0,1,2, 可简写为range(3),默认从0开始


    参数1: 开始值(int)
    参数2: 结束值(int),默认不去
    参数3: 步长 -1表示倒着数,可用于反转(负数同理)

    d.代码示例详解

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # Author:Shu Yang Wang
     4 
     5 '''
     6 a. 请输出1-10
     7 '''
     8 for i in range(1,11):
     9      print(i)
    10 
    11 '''
    12 b. 取1-10 奇数
    13 '''
    14 for i in range(1,11,2):
    15      print(i)
    16 
    17 '''
    18 c. 取10 - 1 
    19 '''
    20 for i in range(10,0,-1):
    21      print(i)
    22 
    23 '''
    24 d. list花式使用
    25 '''
    26 li = ['eric','alex','tony']
    27 for i in range(0,len(li)):
    28     ele = li[i]
    29     print(ele)
    30 
    31 for i in range(0,len(li)):
    32     print(i + 1, li[i])
    View Code

     

    2、enumerate

    enumerate()额外生成一列有序的数字
    参数1:可迭代对象
    参数2:开始值定制

    a.代码示例详解

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # Author:Shu Yang Wang
     4 
     5 '''
     6 enumerate额外生成一列有序的数字
     7 '''
     8 
     9 '''
    10 使用1:list加序号
    11 '''
    12 li = ['eric','alex','tony']
    13 for i,ele in enumerate(li,1):
    14     print(i, ele)
    15 
    16 v = input('请输入商品序号:')
    17 v = int(v)
    18 item = li[v-1]
    19 print(item)
    View Code

     

  • 相关阅读:
    LeetCode 452. 用最少数量的箭引爆气球
    LeetCode 451. 根据字符出现频率排序
    LeetCode 464. 我能赢吗
    LeetCode 2. 两数相加
    @RendSection{"scripts",require:false}的作用
    js中变量含(参数、数组)作用域传递问题
    Web Api通过Route、RoutePrefix等特性设置路由
    SQLserver中存储图片
    RDLC的部署(无法找到Microsoft.ReportViewer.ProcessingObjectModel.dll文件)
    C# 发送Http协议 模拟 Post Get请求
  • 原文地址:https://www.cnblogs.com/wangshuyang/p/6823395.html
Copyright © 2011-2022 走看看