Maneki Autumn
Maneki Autumn

Reputation: 69

How can I write a string inside of an input?

I'm having a problem of printing a string inside an input. I made a for loop for automatic numbering based on how many elements that the user wants to input.

list = []
n = int(input("How many elements you want to input: "))
for i in range(0, n):
   element = int(input(i+1))
   if n == element:
      print("hello")
      break
list.append(element)

For example, I inputted 3 in the number of elements. I want to make my program output be like this:

  1. input
  2. input
  3. input

(input is the user will type once the number is shown)

But my program looks like:

1input

2input

3input

I just want to work up with the design, but I don't know how to do it.

Upvotes: 0

Views: 245

Answers (5)

Ram
Ram

Reputation: 4789

You are close. Convert i+1 to a string and concatenate a . to it and accept input.

Note: Do not use list as a variable name. It is a Python reserved word.

lst = []
n = int(input("How many elements you want to input: \n"))
for i in range(n):
   element = int((input(str(i+1) + '. ')))
   if n == element:
      print("hello")
      break
lst.append(element)

How many elements you want to input: 
5
1. 1
2. 6
3. 7
4. 4
5. 6

Upvotes: 1

Gaston
Gaston

Reputation: 225

n = int(input("How many elements you want to input: "))
for i in range(0, n):
      print(str(i+1) + ". " + str(n))

This should do.

I used the same code shape as yours, and that way it is easier for you to understand.

Upvotes: 0

Daweo
Daweo

Reputation: 36838

What you need is called string formatting, and you might use .format by replacing

element = int(input(i+1))

using

element = int(input("{}. ".format(i+1)))

or using so-called f-strings (this requires Python 3.6 or newer):

element = int(input(f"{i+1}. "))

If you want to know more, I suggest reading realpython's guide.

Upvotes: 3

Piotr Nowakowski
Piotr Nowakowski

Reputation: 376

You have to edit the input in the loop to something like this:

element = int(input(str(i+1) + ". "))

Upvotes: 1

ductTapeIsMagic
ductTapeIsMagic

Reputation: 131

Try: input(str(i+1)+'. ')

This should append a point and a space to your Text. It converts the number of the input to a String, at which you can append another String, e.g. '. '.

Upvotes: 1

Related Questions