2

I am wondering how can I print some strings in a for loop in one line without space between each other.

I know concatenating strings without space in one line, but outside of a for loop:

>>> print('hi'+'hi'+'hi')
hihihi

However, I have no idea how to do that in a for loop.

Georgy
  • 9,972
  • 7
  • 57
  • 66
Jay Wong
  • 2,356
  • 4
  • 23
  • 44

3 Answers3

4
s = ""
for i in range(3):
    s += 'Hi'
print(s)
Georgy
  • 9,972
  • 7
  • 57
  • 66
Elena NNN
  • 207
  • 1
  • 6
1

You can achieve that by skipping print and calling directly stdout:

import sys
for i in range(3):
    sys.stdout.write("Hi")
sys.stdout.write("\n")

Output result is HiHiHi. See also this question for a lengthy discussion of the differences between print and stdout.

Community
  • 1
  • 1
aleju
  • 2,336
  • 1
  • 15
  • 10
1

You can use the print function from Python 3 and specify an end string like this:

# this import is only necessary if you are using Python 2
from __future__ import print_function

for i in range(3):
    print('hi', end='')
print()

Alternatively, sys.stdout.write does not add a newline character by default.

timgeb
  • 73,231
  • 20
  • 109
  • 138