coolair
V2EX  ›  问与答

请问下 Python 中两个 if 段有同样的语句怎么写更优雅?

  •  
  •   coolair · Apr 26, 2018 · 3431 views
    This topic created in 3029 days ago, the information mentioned may be changed or developed.

    例如:

    if a:
        do_something_a()
        print '1'
        print '2'
    if b:
        do_something_b()
        c, d = test_c()
        if c and d:
            print '1'
            print '2'
    

    上面 print 那一段如果很长的话就重复很多了,怎么写更好?

    9 replies    2018-04-26 13:37:18 +08:00
    kifile
        1
    kifile  
       Apr 26, 2018
    print 抽成一个单独的方法就好了呀
    vegito2002
        2
    vegito2002  
       Apr 26, 2018 via iPad
    if a do a
    if b do b
    if a or (b and test_c[0] and test_c[1]) do printprint
    Akikiki
        3
    Akikiki  
       Apr 26, 2018 via Android
    加个 flag=False
    if 判断完之后
    如果 flag 为 True 再 print
    Akikiki
        4
    Akikiki  
       Apr 26, 2018 via Android
    @Akikiki 一楼的更好一点。
    kamen
        5
    kamen  
       Apr 26, 2018 via Android
    IDE 点几下就抽出一个函数了
    xiaoheijw
        6
    xiaoheijw  
       Apr 26, 2018
    @kamen 还有这种操作?
    wwqgtxx
        7
    wwqgtxx  
       Apr 26, 2018 via iPhone
    @xiaoheijw pycharm 大法好
    cominghome
        8
    cominghome  
       Apr 26, 2018
    我也想问,比如有很多判断用户输入的(可能有十几种选择,进行不同的操作),这样一个个 if 判断感觉有点蠢,目前想到的办法是把可能的输入与对应的操作抽象一下,然后写到字典里面去判断。除此以外还有什么魔法吗?
    rogwan
        9
    rogwan  
       Apr 26, 2018
    Python 没有 switch case,Python 官方推荐用字典映射来实现条件切换。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3123 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 12:45 · PVG 20:45 · LAX 05:45 · JFK 08:45
    ♥ Do have faith in what you're doing.