跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 实现 switch-case 问题请教
未分類
17 1 月 2020

Python 实现 switch-case 问题请教

Python 实现 switch-case 问题请教

資深大佬 : viiii 12

都知道 python 没有 switch-case 语句,通常要实现类似功能的时候,通过 dict 实现

那么,如果遇到下列情况,用 python 该怎么实现比较好呢?

switch (var){     case 1,5,9,19:  # 取值为多个无规律的数字         break;     case 3,21,50:         break;     case default:      break; } 

大佬有話說 (9)

  • 資深大佬 : mzotw2babm

    用个列表?
    if i in [1, 5, 9, 19]:
    break
    else if i in [3, 21, 50]:
    break
    else
    break

  • 資深大佬 : mzotw2babm

    else if –> elif
    好久不写,写错了- –

  • 資深大佬 : elmagnificogg

    集合 in 操作啊

  • 資深大佬 : gzfrankie

    用 if ( x==1) && (x==2
    Else if (x==3)
    else if
    的格式。

    python 编译器对这个其实是有优化的,会优化成 switch 对应的汇编。详见 pep3103 和 pep275

  • 資深大佬 : 0bit

    “` python
    if var in {1, 5, 9, 19}:
    pass
    elif var in {3, 21, 50}:
    pass
    else:
    pass
    “`

    注意一点,in 后面是 set,会更快。

  • 資深大佬 : 0bit

    @mzotw2babm 不应该写 break,没有循环

  • 資深大佬 : mzotw2babm

    @0bit 嗯嗯在下错了,好久没写了,也没仔细考虑,直接套了主的格式

  • 主 資深大佬 : viiii

    @gzfrankie 知识点+1, 多谢

  • 主 資深大佬 : viiii

    @mzotw2babm 用 in + list 是个好办法, 之前老是往 dict 上面想,钻牛角尖了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具