繁体   English   中英

如何将 map 用户输入为数字以选择为字符串

[英]How to map user input as number to choice as string

如何在倒数第二行获取我的代码以打印我的选择(如在用户和管理员中)而不是我选择的数字(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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM