【问题标题】:choose variable via input (python)通过输入选择变量(python)
【发布时间】:2021-09-26 11:08:19
【问题描述】:

我想通过输入选择变量

a=1
b=2
c=3

x=input("a/b/c")

现在的想法是计算是 7 乘以 1,因此解决方案是:7

solution=7*a

print(solution)

但是 python 将输入识别为字符串而不是变量。怎么改?

【问题讨论】:

    标签: python variables input types


    【解决方案1】:

    您需要创建一个“查找表”,将字符映射到数字。

    lookup = {'a':1,'b':2,'c':3}
    x=input("a/b/c: ")
    value = lookup.get(x)
    if value is None:
        print('invalid input')
    else:
        print(f'Solution is {7 * value}')
    

    【讨论】:

      【解决方案2】:

      你可以像这样把一个字符串变成一个变量。

      a = 1
      b = 2
      c = 3
      
      x = input("a/b/c: ")
      x = locals()[x]
      
      solution = 7 * x
      print(solution)
      

      【讨论】:

      • 好答案。但是,如果您不对字符串和检索到的值使用相同的变量,那就更清楚了。
      • @alexis 原来的值后来不使用了,所以没有理由保留它并为本质上相同的值使用两个名称。我认为在这种情况下,对原件进行遮蔽是合适的。
      • 我了解您来自哪里,并且我自己有时也做过类似的事情。但是在这里,对于这个问题的 OP 和其他读者(即相对初学者)来说,它更有可能混淆/误导。
      【解决方案3】:

      试试这个:

      a,b,c = 1,2,3
      while True:
          try:
              x = input("a/b/c: ")
              print(f'solution = {7 * locals()[x]}')
              break
          except KeyError:
              print('Try again')
      

      【讨论】:

        猜你喜欢
        • 2013-03-16
        • 2019-02-24
        • 1970-01-01
        • 2016-06-16
        • 1970-01-01
        • 2013-04-22
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多