【问题标题】:How to compare user input to an array to increase efficency如何将用户输入与数组进行比较以提高效率
【发布时间】:2019-12-29 23:33:35
【问题描述】:

我正在尝试提高某些工作代码的效率或减少所需的循环数。有没有办法使用数组或列表来验证用户输入?

到目前为止,我已经设法让代码与 for-else-loop 一起工作,但它看起来很麻烦而且不是很pythonic。我找不到任何涉及将数组与用户输入进行比较的答案。代码应检查用户输入是否与有效骰子的正确面数匹配。 (所以他们不能放 3 面)

def check(die):
    if die == 100 or die == 20 or die == 12 or die == 10 or die == 8 or die == 6 or die == 4:
        legal = True
    else:
        legal = False
    return legal

【问题讨论】:

    标签: arrays for-loop python-3.7 dice coding-efficiency


    【解决方案1】:

    您可以将所有这些常量值插入到一个数组中,然后遍历该数组以检查这些值是否合法

    【讨论】:

    • 喜欢使用 for 循环进行迭代?编辑:NVm 这是一个愚蠢的问题。我想我现在明白了。
    【解决方案2】:

    试试这个:

    def check(die,List_Of_Values):
        if die in List_Of_Values:
            legal = True
        else:
            legal = False
        return legal
    List_Of_Values=[100,20,12,10,8,6,4]
    

    【讨论】:

      【解决方案3】:

      是的,但如果你这样做,你可以进一步简化它:

      # Declare as global variable somewhere...
      List_Of_Values=[100,20,12,10,8,6,4]
      
      
      # Sometime later
      input = get_input()
      if input in List_Of_Values:
        print("Legal")
      else:
        print("Not legal")
      

      不需要额外的功能。

      【讨论】:

      • 这是有道理的。感谢您的回答!
      猜你喜欢
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      相关资源
      最近更新 更多