<p>这里有两个解决方案。你知道吗</p>
<p>第一个不是那么严格。它将允许用户为itemtype输入任何值,但不允许为itemcost输入任何值</p>
<pre><code>a={}
n=4
while (n>0):
itemtype = input("enter the item type-b,m,t,d,c:")
itemcost = input("enter the item cost:")
while(True):
try:
itemcost = float(itemcost)
break;
except ValueError:
print ("Sorry, please enter a valid cost.")
itemcost = input("enter the item cost:")
if itemtype.lower() in "b m t d c".split():
a[itemtype] = a.get(itemtype,list())+[itemcost]
n-=1
print (a)
</code></pre>
<p>第二个表单对用户输入都是严格的,并且会一直提示,直到用户输入期望值</p>
<pre><code>a={}
n=4
while (n>0):
itemtype = input("enter the item type-b,m,t,d,c:")
##user enters a wrong value
while(itemtype.lower() not in "b m t d c".split() ):
print ("Sorry, please enter a valid item.")
itemtype = input("enter the item type-b,m,t,d,c:")
itemcost = input("enter the item cost:")
##user enters a wrong value
while(True):
try:
itemcost = float(itemcost)
break;
except ValueError:
print ("Sorry, please enter a valid cost.")
itemcost = input("enter the item cost:")
a[itemtype] = a.get(itemtype,list())+[itemcost]
n-=1
print (a)
</code></pre>