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 '''
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)
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)
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)
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 '''
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)
三、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])
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)