我相信这是做你正在寻找的。请注意,这可能不是你想要存储的个人状态(一defaultdict
可能会更有意义)的方式,但希望这是有道理的,从概念的角度来看:
def comparisons(value):
"""Only change here is using x <= y < z syntax."""
if value < 5:
status = 'nill'
total = 0
elif 5 <= value < 8:
status = 'valid'
total = 1
elif 8 <= value < 12:
status = 'superb'
total = 5
else:
status = 'over-qualified'
total = 10
# Here we return the status and the total for each item
# This may not be what you want, so this can be adjusted
return status, total
# Create a list that will contain your 15 items
items = ['Engineering', 'Carpentry']
# Create a container to hold the results.
# Note that we don't use different variables names each time -
# instead, we create an entry in a dictionary corresponding to
# our 'items' values.
results = {}
# Now we iterate through each item in our items list, running
# our function and storing the results. Note that this is a guess
# as to how you want to handle 'status' - a more useful solution
# could be to use a nested dictionary where each item has a dictionary
# with two sub-fields: 'status' and 'total'.
for item in items:
status, total = comparisons(int(raw_input('{0}: '.format(item))))
results[item] = [status, total]
# Print out each item
print '\nIndividual items:'
for item, values in results.iteritems():
print item, values
# Example of how you could sum the totals
print '\nTotal score:'
print sum((results[x][1] for x in results))
输出:
Engineering: 10
Carpentry: 5
Individual items:
Engineering ['superb', 5]
Carpentry ['valid', 1]
Total scores:
6
每次不要更改名称。改用字典或列表。 –
@miguel请为您的代码使用正确的格式(缩进)。它是Python,缩进很重要。 – informatik01