python - Python中C类型Switch语句实现的困惑

标签 python

我正在尝试使用字典在Python中实现switch语句,但我遇到了一个问题。

以下是我正在尝试的:

print "Enter value of i"
i=eval(raw_input())

j=0
def switch(i):
    print "Hello\n"
    return {True: 'gauw',
            i==1: a(10),
            i==2: a(20),
            }[True]
def a(t):
    global j
    j=t
switch(i)
print j

输出:

输入 i 的值

1

20

但我期望输出为 10。所以,这里的主要问题是,它正在执行 i==1i==2 的两个语句。另外,我不能在这里使用 break

那么如何获得想要的输出呢?

最佳答案

你会让自己变得复杂吗?如果只是switch的实现,就用if和elif。

def switch(i):
    if i==1:
        a(10)
    elif i==2: #Even if here wil work, instead of elif
        a(20)
    else:
        return 'gauw'()

会成功的

关于python - Python中C类型Switch语句实现的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377153/

相关文章:

python - 混合 defaultdict(dict 和 int)

python - 在 ipython 中添加换行符

python - 创建定义以替换 Python 句子中的单词

python - 使用 lxml 解析段落标记的子项时缺少子项

python - 我无法在 Linux 上安装 Anaconda

Python:在数据框中按小时选择行

python - 如何使用从另一个变量确定的颜色绘制 3d 散点图?

python - 如何在python中减去两个列表

当缺少用户用户输入时,Python 索引超出范围

python正则表达式匹配 "ab"或 "ba"单词