【问题标题】:how to write if-elseif conditions in short forms using python?如何使用 python 以简短形式编写 if-elseif 条件?
【发布时间】:2019-11-05 23:56:15
【问题描述】:

一般的 if-else 条件语句 如果我给定的输入是字母(A-Z)。所以我的输出应该代表(0-25) 例如:如果我的输入是“A”,那么它应该返回 0 如果我的输入是“B”,它应该很快返回 1.... 如果我的输入是“Z”,它应该返回 25。

if key=='a':
    return 0
elseif key=='b':
    return 1
elseif key=='c':
    return 2
elseif key=='d':
    return 3
elseif key=='e':
    return 4

但我想知道有没有其他方法可以在 python3 中编写此代码? 1 或 2 行代码即可。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

您似乎指的是Ternary 运算符。

'true' if True else 'false'

以防万一,而不是使用多个 if、elif 条件,您可以将数据保存在 python 字典中并根据输入映射键、值。

alphaNum = {'a': 0, 'b':1, 'c':2, 'd':3}

user_input = input('Enter an alphabet: ')

if user_input in alphaNum.keys():
    print(alphaNum[user_input])

【讨论】:

  • 是否可以反过来,如果我的输入是 1 它应该返回 A
  • 是的,有可能。您需要将用户输入与字典中的值映射并返回相应的键。 for alpha, num in alphaNum.items(): if num == 3: print(alpha)
  • 如果不需要,请不要使用对keys 方法的调用。 if user_input in alphaNum.keys(): 可以写成if user_input in alphaNum:。当然根据Style Guide for Python CodealphaNum应该改名为alpha_num
【解决方案2】:

你也可以在字典中定义你的值,然后按键返回

def example(key):
    tmp_dict = {'a':0,
                'b':1,
                'c':2,
                'd':3,
                'e':5}
    return tmp_dict[key]

print (example('a'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2015-06-16
    • 1970-01-01
    • 2022-07-20
    • 2011-02-17
    • 2014-11-04
    • 1970-01-01
    相关资源
    最近更新 更多