需求:

  显示一系列商品,根据序号选择商品

li = ["手机","电脑","电视"]

#函数enumerate在for循环遍历的时候,会默认自动生成一个以0开始递增的索引排序,后面接数字1就从1开始,这样输出就像字典,之后使用比较方便
for key,i in enumerate(li,1):
    print(key,i)
inp = input("请输入商品:")

#input接受的输入全是字符串,即使输入数字1,那也是字符串"1"
inp_num = int(inp)

#这里输入来取值,并非是根据上面enumerate函数生成的序号来取,而是根据li列表的索引来取值,下面inp_num减1,那么得到的序号就和索引值一样了
print(li[inp_num-1])

 

另外补充:

range和xrange的区别:

  range(1,10)用来获取1到9的数字,在py3中,直接print不会输出,必须在for循环里才会创建,一次循环创建一个,而在py2里可以直接全部print出来,而py2.7的xrange也只能在for循环里创建输出,但是py3里没有xrange

  range函数里再加第三个参数,那就是步长,默认为1,就是依次增加1,range(1,10)等同于range(1,10,1),从1开始,每次增加1;如果想要10到1倒着排序输出,就该range(10,0,-1),每次增加-1,也就是依次减1

  for i in range(0,len(a))获取列表a所有的索引值,建议len别写在for里面,这样会使代码重复执行。