I want to take input of how many inputs the user is going to give next and collect those inputs in a single line. For eg. if user enters '3' next he has to give 3 inputs like '4' '5' '6' on the same line.

N = int(input())
result = 0
randomlist = []

for number in range(N):
    K = int(input())

    for number2 in range(K):
         a = int(input())
    
         if number2 != K - 1:#Ignore these on below
              result += a - 1

         else:
              result += a
              randomlist.append(result)
              result = 0
              break

for num in range(N):
b = randomlist[num]
print(b)

Now I want the input for K and a (also looped inputs of a) to be on the same line. I have enclosed the whole code for the program here. Please give me a solution on how to get input in the same line with a space in between instead of hitting enter and giving inputs

1

There are 1 answers

0
itprorh66 On BEST ANSWER

Based on what I read from your question, you are trying to request input from the user and the desired format of the input is a series of numbers (both integers and floats) separated by spaces. I see a couple of ways to accomplish this:

  • Use a single input statement to request the series of numbers including the count,
  • Just ask the user for a list of numbers separated by spaces and infer the count.

To perform these operations you can do one of the following:

#Request User to provide a count followed by the numbers
def getInputwithCount():
    # Return a list Numbers entered by User
    while True:
        resp = input("Enter a count followed by a series of numbers: ").split(' ')
        if len(resp) != int(resp[0]) + 1:
            print("Your Input is incorrect, try again")
        else:
            break
    rslt = []
    for v in resp[1:]:
        try:
            rslt.append(int(v))
        except:
            rslt.append(float(v))
    return rslt  

or for the simpler solution just ask for the numbers as follows:

def getInput():
    # Return the list of numbers entered by the user
    resp = input("Enter a series of numbers: ").split(' ')
    rslt = []
    for v in resp:
        try:
            rslt.append(int(v))
        except:
            rslt.append(float(v))
    return rslt