需要知道的是,两个for循环嵌套的时候,都是里面的for循环结束以后才会开始外面一层for循环
情况一:
a = ['a','b']
b = ['1','2']
c = [] #因为c在所有循环外面,所以每次循环到append的时候都会把添加元素
for i in a:
print(i)
for n in b:
c.append(n)
print(c)
#打印结果
a
['1', '2']
b
['1', '2', '1', '2']
情况二:
a = ['a','b']
b = ['1','2']
for i in a:
print(i)
c = [] #因为c在第一个for循环里面,所以外面的for循环进行第二次循环的时候就会给c 重新赋值空列表
for n in b:
c.append(n)
print(c)
#打印结果
a
['1', '2']
b
['1', '2']
情况二的补充:
a = ['a','b']b = ['1','2']for i in a: print(i) c = [] print(c) for n in b: c.append(n) print(c)#打印结果,从结果可以明显看出c会被重新赋值为空列表a[]['1', '2']b[]['1', '2']
补充:
#列表可以拼接为字符串a = ["我","是","神仙"]q = "".join(a)#打印结果:我是神仙
案例
# 要求:
# 1:页面显示 序号 + 商品名称 + 商品价格,如:
# 1 电脑 1999
# 2 鼠标 10
# 2:用户输入选择的商品序号,然后打印商品名称及商品价格
# 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
# 4:用户输入Q或者q,退出程序。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]
for index in range(len(goods)):
a = goods[index]
# print(type(index)) #索引位置是整型
d = "{} {} {}".format(index+1, a["name"], a["price"])
print(d)
while True:
n = input("请输入商品序号:")
if n.upper() == "Q":
break
if n.isdecimal():
n = int(n)
if 0 < n < 5:
nm = n - 1
cg = goods[nm]
print(cg["name"], cg["price"])
else:
print("商品号错误")