一个简单的循环代码,但是有一个bug;第24行代码是用来判断,输入的num是否在shelf列表中的循环判断,我在后面加了一个else,想做到如果判断num不在shelf列表中的输出一句报错,但是结果却每个num值都会跳出这个else,求教是什么问题呢?
先if不在shelf列表中,打印你的报错,然后再else在shelf列表中的
你确定输入的num在shelf中吗?
我试了一下,好像没有问题,只是不建议使用find直接用等号就好
shelf=[]
for i in range(0,5):
goods=input('请输入需要入库的商品,每次仅可输入一件: \n ')
shelf . append(goods)
for item in shelf:
print (item )
Lst=[]
while True:
num=input( '请输入需要购买的商品')
for item in shelf:
if item == num:
Lst . append(item)
break
else:
print( '无效参数,请重新输入' )
break
if num=='退出' :
break
请输入需要入库的商品,每次仅可输入一件:
sp1
请输入需要入库的商品,每次仅可输入一件:
sp2
请输入需要入库的商品,每次仅可输入一件:
、sp3
请输入需要入库的商品,每次仅可输入一件:
sp4
请输入需要入库的商品,每次仅可输入一件:
sp5
sp1
sp2
sp3
sp4
pp5
请输入需要购买的商品sp1
请输人需要购买的商品退出
PS D:\>
if item.find(num) == -1:
print('无效参数,请重新输入')
break
else:
lst.append(item)
break
我试出问题了,可能是python机制问题,试下下面的代码:
shelf=[]
for i in range(0,5):
goods=input('请输入需要入库的商品,每次仅可输入一件: \n ')
shelf . append(goods)
for item in shelf:
print (item )
Lst=[]
while True:
num=input( '请输入需要购买的商品')
flag=False
for item in shelf:
if flag:
continue;
if item == num:
Lst . append(item)
flag=True
continue
else:
continue
if flag==False:
print('无效参数,请重新输入')
if num=='退出':
break