【问题标题】:Print distinct numbers in python 3 [closed]在python 3中打印不同的数字[关闭]
【发布时间】:2018-04-06 16:02:20
【问题描述】:

我有以下代码来打印(不同的数字),但我试图在处理之前检查输入,应该是只有一个空格的十位数字。 我试了又试,还是不明白:

def main():
    list1 = input("Enter ten numbers: ").split()
    set1 = set(list1)
    print(set1)
    list2 = list(set1)
    string = string.join(list2)
    print("The distinct numbers are: " + str(string))

main()

【问题讨论】:

  • “在处理之前检查输入”是什么意思?
  • "十位数字只有一个空格":split 将删除任何位置的空格。然后检查长度以及它们是否是数字。
  • @chrisz 我的意思是如果用户输入错误的值,请尝试捕获

标签: python python-3.x


【解决方案1】:

使用字符串中内置的isnumeric() 方法的更简单的版本。另外,我在input 周围放了一个循环,以便用户可以在数据错误的情况下轻松重试:

def main():
    while(True):
        numbers = input("Enter ten space-separated numbers: ").split()
        if len(numbers) != 10 or not all(n.isnumeric() for n in numbers):
            print("Wrong input, please retry")
            continue
        numbers = ' '.join(set(numbers))
        print("The distinct numbers are:", numbers)
        break # or return numbers if you need the data

main()

【讨论】:

    【解决方案2】:

    你的意思是检查是否输入了十个数字?

    import re
    
    def check_input(input_string):
         compare_to = '\s'.join(10*['\d+'])
         if re.match(compare_to[:-1], input_string):
               return True
         return False
    

    这是一个regular expression,它检查输入字符串是否等于指定的输入格式。这个专门检查是否在\s之间添加了10组至少1个数字[\d+]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 2015-08-14
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多