Print without a newline between two strings [duplicate] - python

This question already has answers here:
How to print without a newline or space
(26 answers)
Closed 9 years ago.
I want to print some text beside another text that has been printed before in python
for example
print("Hello")
a="This is a test"
print(a)
What I mean is to print like this "HelloThis is a test" not in next line I know I shoud use print("Hello",a) but I wanted to use seprated print commands!!!!

Use end='' in the first print call:
print("Hello", end='')
a = "This is a test"
print(a)
#HelloThis is a test
Help on print:
print(value, ..., sep=' ', end='\n', file=sys.stdout)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.

If you are using python 2.7 (python tag on question) you can place a comma after the print to not return a new line.
print("hello"),
print("world")
Will print "helloworld" all one one line.
So in your case it will be:
print("Hello"),
print(a)
Or if your using python 3 (python3.x tag on question) use:
print("hello", end='')
print('world')
So in your case it will be:
print("Hello", end='')
print(a)

Related

How to remove the space while printing with newline \n? [duplicate]

This question already has answers here:
Printing each item of a variable on a separate line in Python
(4 answers)
Closed 1 year ago.
Input:
a = input("enter-")
b = input("enter-")
c = input("enter-")
print(a, "\n", b, "\n", c, "\n")
Output:
enter-line1
enter-line2
enter-line3
line1
line2
line3
How to remove the space before line2 and line3?
You can use the argument sep of print. By default, the separator is space:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
>>> print(a, b, c, sep='\n')
line1
line2
line3
The print() function has more arguments than string and looks like this
print(object(s), sep=separator, end=end, file=file, flush=flush)
Default separator is ' ' so space will be added between every element.
To print without spaces, you need to use it like this
print(a,"\n",b,"\n",c,"\n", sep='')
Using the print statement with Python and commas in between will naturally give spaces. For example, if I used print(a,b,c), then the output would be line1 line2 line3. Here, by using print(a,"\n",b,"\n",c,"\n"), you are putting a space after you put a newline. So either use separate print statements or use the "\n" as the separator between the arguments without using commas.

I am trying to print some list containing '\t' and '\n' . But as python is not printing it because it is thinking it as a special character [duplicate]

This question already has answers here:
In Python, is it possible to escape newline characters when printing a string?
(3 answers)
Closed 7 years ago.
I have a delim list . Now I want to print every element in delim list. But print funtion in python is printing everything except character like '\t' , '\n'. I know it is usual . But can I print this like normal characters or strings.
delim=['\t','\n',',',';','(',')','{','}','[',']','#','<','>']
for c in delim:
print c
It is giving output :
it is printing all the list skipping \t and \n
Change them to raw string literals by prefixing a r:
>>> print '\n'
>>> print r'\n'
\n
For your example this would mean:
delim=[r'\t',r'\n',',',';','(',')','{','}','[',']','#','<','>']
for c in delim:
print c
If you just want to print them differently use repr
for c in delim:
print repr(c)
Note: You will also see additional ' at the beginning and end of each string.

How to print on the same line in Python [duplicate]

This question already has answers here:
How can I print multiple things on the same line, one at a time?
(18 answers)
Closed last month.
Is it possible to print text on the same line in Python?
For instance, instead of having
1
2
3
I would have
1 2 3
Thanks in advance!
Assuming this is Python 2...
print '1',
print '2',
print '3'
Will output...
1 2 3
The comma (,) tells Python to not print a new line.
Otherwise, if this is Python 3, use the end argument in the print function.
for i in (1, 2, 3):
print(str(i), end=' ') # change end from '\n' (newline) to a space.
Will output...
1 2 3
Removing the newline character from print function.
Because the print function automatically adds a newline character to the string that is passed, you would need to remove it by using the "end=" at the end of a string.
SAMPLE BELOW:
print('Hello')
print('World')
Result below.
Hello
World
SAMPLE Of "end=" being used to remove the "newline" character.
print('Hello', end= ' ')
print('World')
Result below.
Hello World
By adding the ' ' two single quotation marks you create the space between the two words, Hello and World, (Hello' 'World') - I believe this is called a "blank string".
when putting a separator (comma) your problem is easily fixed. But obviously I'm over four years too late.
print(1, 2, 3)

How to do ghost-like typist in Python

I'm a beginner, how can I do ghost-like typist in console?
EDIT:
I did something like this, just prints a letter per line:
def ghostPrint(sentence):
for letter in sentence:
time.sleep(0.12)
print (letter)
ghostPrint("Hello world...")
This one, just changes letter in the same line:
def ghostPrint(sentence):
for letter in sentence:
time.sleep(0.12)
print (letter, end="\r")
ghostPrint("Hello world...")
And this one, prints Hello World... then closes:
def ghostPrint(sentence):
for letter in sentence:
time.sleep(0.12)
print (letter, end = " ")
ghostPrint("Hello world...")
I am currently using Python 3.5.
In Python 2, a trailing comma after a print statement will suppress the newline (it also adds a space between the arguments to print). So
print var1, var2,
prints the values of var1 and var2 with a space in between, and does not print a trailing newline.
In Python 3, the print function takes two arguments, sep and end. The default values are sep=' ' and end='\n'. Use sep to change what string is used to separate arguments to print, and use end to change what string is printed after everything else.
Use a trailing comma(,) to avoid a newline.
import time
def ghostPrint(sentence):
for letter in sentence:
time.sleep(0.12)
print (letter),
ghostPrint("Hello world...")
In python 3.x using print (letter,end='') will not work I guesses as it print every thing at once.

How can I suppress the newline after a print statement? [duplicate]

This question already has answers here:
How to print without a newline or space
(26 answers)
How can I print multiple things on the same line, one at a time?
(18 answers)
Closed last month.
I read that to suppress the newline after a print statement you can put a comma after the text. The example here looks like Python 2. How can it be done in Python 3?
For example:
for item in [1,2,3,4]:
print(item, " ")
What needs to change so that it prints them on the same line?
The question asks: "How can it be done in Python 3?"
Use this construct with Python 3.x:
for item in [1,2,3,4]:
print(item, " ", end="")
This will generate:
1 2 3 4
See this Python doc for more information:
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
--
Aside:
in addition, the print() function also offers the sep parameter that lets one specify how individual items to be printed should be separated. E.g.,
In [21]: print('this','is', 'a', 'test') # default single space between items
this is a test
In [22]: print('this','is', 'a', 'test', sep="") # no spaces between items
thisisatest
In [22]: print('this','is', 'a', 'test', sep="--*--") # user specified separation
this--*--is--*--a--*--test
Code for Python 3.6.1
print("This first text and " , end="")
print("second text will be on the same line")
print("Unlike this text which will be on a newline")
Output
>>>
This first text and second text will be on the same line
Unlike this text which will be on a newline
print didn't transition from statement to function until Python 3.0. If you're using older Python then you can suppress the newline with a trailing comma like so:
print "Foo %10s bar" % baz,
Because python 3 print() function allows end="" definition, that satisfies the majority of issues.
In my case, I wanted to PrettyPrint and was frustrated that this module wasn't similarly updated. So i made it do what i wanted:
from pprint import PrettyPrinter
class CommaEndingPrettyPrinter(PrettyPrinter):
def pprint(self, object):
self._format(object, self._stream, 0, 0, {}, 0)
# this is where to tell it what you want instead of the default "\n"
self._stream.write(",\n")
def comma_ending_prettyprint(object, stream=None, indent=1, width=80, depth=None):
"""Pretty-print a Python object to a stream [default is sys.stdout] with a comma at the end."""
printer = CommaEndingPrettyPrinter(
stream=stream, indent=indent, width=width, depth=depth)
printer.pprint(object)
Now, when I do:
comma_ending_prettyprint(row, stream=outfile)
I get what I wanted (substitute what you want -- Your Mileage May Vary)
There's some information on printing without newline here.
In Python 3.x we can use ‘end=’ in the print function. This tells it to end the string with a character of our choosing rather than ending with a newline. For example:
print("My 1st String", end=","); print ("My 2nd String.")
This results in:
My 1st String, My 2nd String.

Categories