代码之家  ›  专栏  ›  技术社区  ›  manOnTheMoon

对于循环-我只能输入1个整数

  •  0
  • manOnTheMoon  · 技术社区  · 2 年前

    我无法输入多个整数。我应该能够指定多少,然后像这样输入。。。

    How many integers? 3
    Please enter an integer 1: 5
    Please enter an integer 2: 2
    Please enter an integer 3: 6
    Using a for loop
    5
    2
    6
    

    然而,我只需要整数1(在连续循环中)

    代码如下:-

    #!/usr/bin/env python2
    
    import sys
    
    target_int = raw_input("How many integers?")
    
    try:
      target_int = int(target_int)
    except ValueError:
      sys.exit("You must enter an integer")
    
    ints = list()
    
    count = 0
    
    while count < target_int:
     new_int = raw_input("Please enter integer {0}:".format(count + 1))
     isint = False
     try:
       new_int = int(new_int)
    
     except:
       print("You must enter an integer")
    
     if isint == True:
         ints.append(new_int)
         count += 1
    
    print("Using a for loop")
    for value in ints:
      print(str(value))
    ~                   
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   theherk    2 年前

    你的主要问题是,你没有设置 isint .但你无论如何都不应该,因为你已经在 try 块因此,如果你达到了这个代码,它必然是一个 int .2其他一些小事情是,我在运行Python 3,因为它是14年前发布的,所以 raw_input input ,养成用 [] 而不是 list() .它有时更快,但从不慢下来。

    以下是工作代码:

    import sys
    
    target_int = input("How many integers?")
    
    try:
        target_int = int(target_int)
    except ValueError:
        sys.exit("You must enter an integer")
    
    ints = []
    
    count = 0
    
    while count < target_int:
        new_int = input("Please enter integer {0}:".format(count + 1))
        try:
            new_int = int(new_int)
        except ValueError:
            print("You must enter an integer")
            continue # so it doesn't try to append
    
        # No need to check isint. It is.
        ints.append(new_int)
        count += 1
    
    print("Using a for loop")
    for value in ints:
        print(str(value))
    

    另一个小的改进是避免 count 总之,因为它总是 ints 已经

    import sys
    
    target_int = input("How many integers?")
    
    try:
        target_int = int(target_int)
    except ValueError:
        sys.exit("You must enter an integer")
    
    ints = []
    
    while len(ints) < target_int:
        new_int = input("Please enter integer {0}:".format(len(ints) + 1))
        try:
            ints.append(int(new_int))
        except ValueError:
            print("You must enter an integer")
    
    
    print("Using a for loop")
    for value in ints:
        print(str(value))