如何将用户输入作为数字映射到选择作为字符串



我如何在倒数第二行获得代码来打印我的选择(如在用户和管理员中(,而不是我选择的数字(1/2(

def menu2():
print("1. user")
print("2. admin")
menu2()
choice =input("Select role for the user :")
choice=float(choice)
if choice==1:
print(choice)
elif choice==2:
print(choice)
print("User role:", end=",")
print(choice)

还有一种方法可以将最后一行连接到前一行,而不需要逗号。对不起,我有很多问题,我是编程新手,没有人帮我:(

您需要使用int((而不是float((

def menu2():
print("1. user")
print("2. admin")
menu2()
choice =input("Select role for the user :")
choice=int(choice)
role = None
if choice==1:
role = 'user'
print(choice)
elif choice==2:
role = 'admin'
print(choice)
print("User role:", role) 

您可以构建一个dict映射选项,作为用户角色的数字,如下所示。

choices = """
1. user
2. admin
""".strip()
num_to_role = dict(line.split('. ', maxsplit=1)
for line in choices.split('n'))
print(num_to_role)
print()
def menu2():
print(choices)
menu2()
choice =input("Select role for the user: ")
print(choice)
if choice in num_to_role:
print("User role:", num_to_role[choice])
else:
print('Invalid option, choose one of:',
str(list(num_to_role.keys())).replace("'", ""))

播放示例:

{'1': 'user', '2': 'admin'}
1. user
2. admin
Select role for the user: 1
1
User role: user

最新更新