Ниже приведен пример кода проекта сообщества, который я претерпеваю.Альтернативная техника для Python «Если ... elif ... else», чтобы перебрать более 1500 опций
cat1 = 'Engr, Bricklayer, Attendant'
cat2 = 'Programmer, Artist, Engr, Servant'
cat3 = 'Programmer, Typist'
amount = float(input("Enter amount: "))
choice = input("Select Beneficiary: ")
print("-----------------------------------")
if choice == cat1:
print("Name: Engr\nShare: 1/6 (1 cikin 6)\nBenefits: N" + str((amount/6) * 1))
print("-----------------------------------")
print("Name: Bricklayer\nShare: 1/2 (3 cikin 6)\nBenefits: N" + str((amount/6) * 3))
print("-----------------------------------")
print("Name: Attendant\nShare: 1/3 (2 ciin 6)\nBenefits: N" + str((amount/6) * 2))
print("-----------------------------------")
print("Jimilla: N" + str(sum([(amount/6) * 1, (amount/6) * 3, (amount/6) * 2])))
elif choice == cat2:
print("Name: Programmer\nShare: 1/8 (3 cikin 24)\nBenefits: N" + str((amount/24) * 3))
print("-----------------------------------")
print("Name: Artist\nShare: 1/6 (4 cikin 24)\nBenefits: N" + str((amount/24) * 4))
print("-----------------------------------")
print("Name: Engr\nShare: 1/6 (4 cikin 24)\nBenefits: N" + str((amount/24) * 4))
print("-----------------------------------")
print("Name: Servant\nShare: Ragowa (13 cikin 24)\nBenefits: N" + str((amount/24) * 13))
print("-----------------------------------")
print("Jimilla: N" + str(sum([(amount/24)*3,(amount/24)*4,(amount/24)*4,(amount/24)*13])))
Ниже выводится после получения значений от пользователя:
Enter amount: 2540000
Select Beneficiary: Engr, Bricklayer, Attendant
-----------------------------------
Name: Engr
Share: 1/6 (1 cikin 6)
Benefits: N423333.3333333333
-----------------------------------
Name: Bricklayer
Share: 1/2 (3 cikin 6)
Benefits: N1270000.0
-----------------------------------
Name: Attendant
Share: 1/3 (2 ciin 6)
Benefits: N846666.6666666666
-----------------------------------
Jimilla: N2540000.0
>>>
Как вы можете видеть, я использую, если ... Элиф ... ELSE оператор управления для перемещения по элементам в категориях, определенных в верхней части кода. Я должен создать около 1500 различных категорий с комбинацией различных элементов/бенефициаров, имеющих право на разные акции. Есть ли какой-либо метод, который я могу использовать для циклического использования опций вместо использования If ... elif ... else?
Я новичок в Python. Вывод кода выше - это то, что я хочу, но используя If ... elif ... else, чтобы проверить ввод пользователя в отношении 1500 категорий, будет немного однообразным или, скорее, беспокойным.
Мне нужна ваша помощь, пожалуйста.
словарь - хороший вариант. И сделайте уникальность в своих значениях печати и сделайте ее формой функции. –
Может ли http://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python быть полезным? – fredtantini
Создайте словарь функций, создавая строки для печати. –