python displays `n` instead of breaking a lineCalling an external command in PythonWhat are metaclasses in Python?Finding the index of an item given a list containing it in PythonDifference between append vs. extend list methods in PythonHow can I safely create a nested directory in Python?How can I remove a trailing newline in Python?Does Python have a ternary conditional operator?Python join: why is it string.join(list) instead of list.join(string)?How to read a file line-by-line into a list?Does Python have a string 'contains' substring method?
Error in master's thesis, I do not know what to do
Center page as a whole without centering each element individually
Why do Radio Buttons not fill the entire outer circle?
What is the purpose of using a decision tree?
Connection Between Knot Theory and Number Theory
How do I lift the insulation blower into the attic?
Weird lines in Microsoft Word
How can a new country break out from a developed country without war?
Started in 1987 vs. Starting in 1987
Is this saw blade faulty?
Why can't I get pgrep output right to variable on bash script?
Extract substring according to regexp with sed or grep
Why is implicit conversion not ambiguous for non-primitive types?
How to get directions in deep space?
Why didn't Voldemort know what Grindelwald looked like?
Could a welfare state co-exist with mega corporations?
Is divisi notation needed for brass or woodwind in an orchestra?
What 1968 Moog synthesizer was used in the Movie Apollo 11?
How to preserve electronics (computers, ipads, phones) for hundreds of years?
Strange behavior in TikZ draw command
When is the exact date for EOL of Ubuntu 14.04 LTS?
Are hand made posters acceptable in Academia?
Travelling in US for more than 90 days
Reasons for having MCU pin-states default to pull-up/down out of reset
python displays `n` instead of breaking a line
Calling an external command in PythonWhat are metaclasses in Python?Finding the index of an item given a list containing it in PythonDifference between append vs. extend list methods in PythonHow can I safely create a nested directory in Python?How can I remove a trailing newline in Python?Does Python have a ternary conditional operator?Python join: why is it string.join(list) instead of list.join(string)?How to read a file line-by-line into a list?Does Python have a string 'contains' substring method?
I wrote a function to create the VALUES part of a SQL query:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
),
When I call this function and print the result, I get is:
query_values:
('n("801",n"printer",n"barcode printer")n,nn("844",n"laptop",n"windows")n,nn("997",n"printer",n"barcode printer")n',)
All in one line. Instead of breaking the line, the n are displayed.
Originally I had one n, but then I inserted multiple, just to see if they would get displayed.
The second problem was that there are parentheses around the entire thing, which I didn't want.
I was puzzling over the two issues, and I figured the solution for the second one:
I had a comma at the end of the function. The comma caused the function to return a tuple, instead of a single string.
I removed the comma:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
)
and that fixed both problems. The output was now:
query_values:
("801",
"printer",
"barcode printer")
,
("844",
"laptop",
"windows")
,
("997",
"printer",
"barcode printer")
I put the comma back, and the n were displayed. I removed the comma, and I have multiple lines again.
I have removed extraneous n, so now I get what I wanted:
query_values:
("801","printer","barcode printer"),
("844","laptop","windows"),
("997","printer","barcode printer")
So, my code works correctly, but I'm totally confused about the n characters displayed in the old version of the code. Why was that happening?
UPDATE:
A couple answers to this question focused on why I was getting a tuple. That's not my question. Why are /n displayed?
python python-3.x list-comprehension newline
add a comment |
I wrote a function to create the VALUES part of a SQL query:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
),
When I call this function and print the result, I get is:
query_values:
('n("801",n"printer",n"barcode printer")n,nn("844",n"laptop",n"windows")n,nn("997",n"printer",n"barcode printer")n',)
All in one line. Instead of breaking the line, the n are displayed.
Originally I had one n, but then I inserted multiple, just to see if they would get displayed.
The second problem was that there are parentheses around the entire thing, which I didn't want.
I was puzzling over the two issues, and I figured the solution for the second one:
I had a comma at the end of the function. The comma caused the function to return a tuple, instead of a single string.
I removed the comma:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
)
and that fixed both problems. The output was now:
query_values:
("801",
"printer",
"barcode printer")
,
("844",
"laptop",
"windows")
,
("997",
"printer",
"barcode printer")
I put the comma back, and the n were displayed. I removed the comma, and I have multiple lines again.
I have removed extraneous n, so now I get what I wanted:
query_values:
("801","printer","barcode printer"),
("844","laptop","windows"),
("997","printer","barcode printer")
So, my code works correctly, but I'm totally confused about the n characters displayed in the old version of the code. Why was that happening?
UPDATE:
A couple answers to this question focused on why I was getting a tuple. That's not my question. Why are /n displayed?
python python-3.x list-comprehension newline
add a comment |
I wrote a function to create the VALUES part of a SQL query:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
),
When I call this function and print the result, I get is:
query_values:
('n("801",n"printer",n"barcode printer")n,nn("844",n"laptop",n"windows")n,nn("997",n"printer",n"barcode printer")n',)
All in one line. Instead of breaking the line, the n are displayed.
Originally I had one n, but then I inserted multiple, just to see if they would get displayed.
The second problem was that there are parentheses around the entire thing, which I didn't want.
I was puzzling over the two issues, and I figured the solution for the second one:
I had a comma at the end of the function. The comma caused the function to return a tuple, instead of a single string.
I removed the comma:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
)
and that fixed both problems. The output was now:
query_values:
("801",
"printer",
"barcode printer")
,
("844",
"laptop",
"windows")
,
("997",
"printer",
"barcode printer")
I put the comma back, and the n were displayed. I removed the comma, and I have multiple lines again.
I have removed extraneous n, so now I get what I wanted:
query_values:
("801","printer","barcode printer"),
("844","laptop","windows"),
("997","printer","barcode printer")
So, my code works correctly, but I'm totally confused about the n characters displayed in the old version of the code. Why was that happening?
UPDATE:
A couple answers to this question focused on why I was getting a tuple. That's not my question. Why are /n displayed?
python python-3.x list-comprehension newline
I wrote a function to create the VALUES part of a SQL query:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
),
When I call this function and print the result, I get is:
query_values:
('n("801",n"printer",n"barcode printer")n,nn("844",n"laptop",n"windows")n,nn("997",n"printer",n"barcode printer")n',)
All in one line. Instead of breaking the line, the n are displayed.
Originally I had one n, but then I inserted multiple, just to see if they would get displayed.
The second problem was that there are parentheses around the entire thing, which I didn't want.
I was puzzling over the two issues, and I figured the solution for the second one:
I had a comma at the end of the function. The comma caused the function to return a tuple, instead of a single string.
I removed the comma:
def query_values(data_iterator):
return ',n'.join('n()n'.format(',n'.join('""'.format(value) for value in data_row)
) for data_row in data_iterator
)
and that fixed both problems. The output was now:
query_values:
("801",
"printer",
"barcode printer")
,
("844",
"laptop",
"windows")
,
("997",
"printer",
"barcode printer")
I put the comma back, and the n were displayed. I removed the comma, and I have multiple lines again.
I have removed extraneous n, so now I get what I wanted:
query_values:
("801","printer","barcode printer"),
("844","laptop","windows"),
("997","printer","barcode printer")
So, my code works correctly, but I'm totally confused about the n characters displayed in the old version of the code. Why was that happening?
UPDATE:
A couple answers to this question focused on why I was getting a tuple. That's not my question. Why are /n displayed?
python python-3.x list-comprehension newline
python python-3.x list-comprehension newline
edited 8 hours ago
Granny Aching
asked 9 hours ago
Granny AchingGranny Aching
43712
43712
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
It seems that this is the behavior of tuples. When a tuple is printed, print calls __repr()__ on each element. The same is also true for lists.
I tried this:
tup = "xxxnxx",
lst =["xxxnxx"]
for t in tup,lst:
print('t :', t)
for s in t:
print('element:',s)
print(' repr:',s.__repr__())
print('---')
and the output is:
t : ('xxxnxx',)
element: xxx
xx
repr: 'xxxnxx'
---
t : ['xxxnxx']
element: xxx
xx
repr: 'xxxnxx'
---
So, the same behavior for both tuples and lists.
When we have a string, calling __repr__() doesn't expand n characters, and puts quotes around it:
s = "xxxnxx"
print('s :', s)
print('s.__repr__():', s.__repr__())
outputs:
s : xxx
xx
s.__repr__(): 'xxxnxx'
This tuple behavior was mentioned in comments by running.t, interjay and Daniel Roseman, but not in answers, that's why I'm posting this answer.
More precisely,tuple's__repr__(which is used if__str__is not defined) calls__repr__on its elements.
– Solomon Ucko
4 hours ago
Are you saying tuples don't have__str__defined? For a tuplet, I triedt.__str__(), and I get the same ast.__repr__(). I don't know how to check whether__str__()is undefined, or defined to be the same as__repr__
– Granny Aching
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
1
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type'sstruct. For Python types there is a visible difference.
– wizzwizz4
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up asslot wrappers.
– Solomon Ucko
3 hours ago
|
show 1 more comment
Writing return something, is the same as return (something,): It returns a tuple containing one element. When you print this, it will show the outer parentheses for the tuple, and the string inside will be printed as its source code representation, i.e. with escape codes and inside quotes.
However, return something simply returns that value, which can then be printed normally.
1
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
6
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
5
@GrannyAching Printing a tuple callsrepron the elements inside.reprgives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.
– interjay
8 hours ago
add a comment |
It seems that's the behavior for tuples in Python.
You can test this with a simpler case like so:
>>> print ("xxxnnx",)
('xxxnnx',)
Seems like Python helps you with debugging and escapes all the command sequences in strings when printing, so that strings appear the same way they were defined.
It did confuse you though, funny case. :)
add a comment |
A tuple can be denoted with or without parenthesis, its the comma decides the type.
>>> t = 1, 'a', 'abc'
>>> type(t)
<type 'tuple'>
>>> t
(1, 'a', 'abc')
>>>
In the above case, you added a trailing comma after the string and python interpreted it as a tuple.
Check this link.
>>> t= 'a',
>>> type(t)
<type 'tuple'>
>>> t
('a',)
>>> t = 'a'
>>> type(t)
<type 'str'>
>>> t
'a'
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
2
Because printing a tuple callsrepron its elements.
– Daniel Roseman
9 hours ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55243089%2fpython-displays-n-instead-of-breaking-a-line%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
It seems that this is the behavior of tuples. When a tuple is printed, print calls __repr()__ on each element. The same is also true for lists.
I tried this:
tup = "xxxnxx",
lst =["xxxnxx"]
for t in tup,lst:
print('t :', t)
for s in t:
print('element:',s)
print(' repr:',s.__repr__())
print('---')
and the output is:
t : ('xxxnxx',)
element: xxx
xx
repr: 'xxxnxx'
---
t : ['xxxnxx']
element: xxx
xx
repr: 'xxxnxx'
---
So, the same behavior for both tuples and lists.
When we have a string, calling __repr__() doesn't expand n characters, and puts quotes around it:
s = "xxxnxx"
print('s :', s)
print('s.__repr__():', s.__repr__())
outputs:
s : xxx
xx
s.__repr__(): 'xxxnxx'
This tuple behavior was mentioned in comments by running.t, interjay and Daniel Roseman, but not in answers, that's why I'm posting this answer.
More precisely,tuple's__repr__(which is used if__str__is not defined) calls__repr__on its elements.
– Solomon Ucko
4 hours ago
Are you saying tuples don't have__str__defined? For a tuplet, I triedt.__str__(), and I get the same ast.__repr__(). I don't know how to check whether__str__()is undefined, or defined to be the same as__repr__
– Granny Aching
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
1
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type'sstruct. For Python types there is a visible difference.
– wizzwizz4
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up asslot wrappers.
– Solomon Ucko
3 hours ago
|
show 1 more comment
It seems that this is the behavior of tuples. When a tuple is printed, print calls __repr()__ on each element. The same is also true for lists.
I tried this:
tup = "xxxnxx",
lst =["xxxnxx"]
for t in tup,lst:
print('t :', t)
for s in t:
print('element:',s)
print(' repr:',s.__repr__())
print('---')
and the output is:
t : ('xxxnxx',)
element: xxx
xx
repr: 'xxxnxx'
---
t : ['xxxnxx']
element: xxx
xx
repr: 'xxxnxx'
---
So, the same behavior for both tuples and lists.
When we have a string, calling __repr__() doesn't expand n characters, and puts quotes around it:
s = "xxxnxx"
print('s :', s)
print('s.__repr__():', s.__repr__())
outputs:
s : xxx
xx
s.__repr__(): 'xxxnxx'
This tuple behavior was mentioned in comments by running.t, interjay and Daniel Roseman, but not in answers, that's why I'm posting this answer.
More precisely,tuple's__repr__(which is used if__str__is not defined) calls__repr__on its elements.
– Solomon Ucko
4 hours ago
Are you saying tuples don't have__str__defined? For a tuplet, I triedt.__str__(), and I get the same ast.__repr__(). I don't know how to check whether__str__()is undefined, or defined to be the same as__repr__
– Granny Aching
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
1
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type'sstruct. For Python types there is a visible difference.
– wizzwizz4
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up asslot wrappers.
– Solomon Ucko
3 hours ago
|
show 1 more comment
It seems that this is the behavior of tuples. When a tuple is printed, print calls __repr()__ on each element. The same is also true for lists.
I tried this:
tup = "xxxnxx",
lst =["xxxnxx"]
for t in tup,lst:
print('t :', t)
for s in t:
print('element:',s)
print(' repr:',s.__repr__())
print('---')
and the output is:
t : ('xxxnxx',)
element: xxx
xx
repr: 'xxxnxx'
---
t : ['xxxnxx']
element: xxx
xx
repr: 'xxxnxx'
---
So, the same behavior for both tuples and lists.
When we have a string, calling __repr__() doesn't expand n characters, and puts quotes around it:
s = "xxxnxx"
print('s :', s)
print('s.__repr__():', s.__repr__())
outputs:
s : xxx
xx
s.__repr__(): 'xxxnxx'
This tuple behavior was mentioned in comments by running.t, interjay and Daniel Roseman, but not in answers, that's why I'm posting this answer.
It seems that this is the behavior of tuples. When a tuple is printed, print calls __repr()__ on each element. The same is also true for lists.
I tried this:
tup = "xxxnxx",
lst =["xxxnxx"]
for t in tup,lst:
print('t :', t)
for s in t:
print('element:',s)
print(' repr:',s.__repr__())
print('---')
and the output is:
t : ('xxxnxx',)
element: xxx
xx
repr: 'xxxnxx'
---
t : ['xxxnxx']
element: xxx
xx
repr: 'xxxnxx'
---
So, the same behavior for both tuples and lists.
When we have a string, calling __repr__() doesn't expand n characters, and puts quotes around it:
s = "xxxnxx"
print('s :', s)
print('s.__repr__():', s.__repr__())
outputs:
s : xxx
xx
s.__repr__(): 'xxxnxx'
This tuple behavior was mentioned in comments by running.t, interjay and Daniel Roseman, but not in answers, that's why I'm posting this answer.
edited 3 hours ago
answered 7 hours ago
Granny AchingGranny Aching
43712
43712
More precisely,tuple's__repr__(which is used if__str__is not defined) calls__repr__on its elements.
– Solomon Ucko
4 hours ago
Are you saying tuples don't have__str__defined? For a tuplet, I triedt.__str__(), and I get the same ast.__repr__(). I don't know how to check whether__str__()is undefined, or defined to be the same as__repr__
– Granny Aching
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
1
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type'sstruct. For Python types there is a visible difference.
– wizzwizz4
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up asslot wrappers.
– Solomon Ucko
3 hours ago
|
show 1 more comment
More precisely,tuple's__repr__(which is used if__str__is not defined) calls__repr__on its elements.
– Solomon Ucko
4 hours ago
Are you saying tuples don't have__str__defined? For a tuplet, I triedt.__str__(), and I get the same ast.__repr__(). I don't know how to check whether__str__()is undefined, or defined to be the same as__repr__
– Granny Aching
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
1
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type'sstruct. For Python types there is a visible difference.
– wizzwizz4
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up asslot wrappers.
– Solomon Ucko
3 hours ago
More precisely,
tuple's __repr__ (which is used if __str__ is not defined) calls __repr__ on its elements.– Solomon Ucko
4 hours ago
More precisely,
tuple's __repr__ (which is used if __str__ is not defined) calls __repr__ on its elements.– Solomon Ucko
4 hours ago
Are you saying tuples don't have
__str__ defined? For a tuple t, I tried t.__str__(), and I get the same as t.__repr__(). I don't know how to check whether __str__() is undefined, or defined to be the same as __repr__– Granny Aching
3 hours ago
Are you saying tuples don't have
__str__ defined? For a tuple t, I tried t.__str__(), and I get the same as t.__repr__(). I don't know how to check whether __str__() is undefined, or defined to be the same as __repr__– Granny Aching
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
It is marked as undefined in the C code. I don't think the difference is externally visible, however.
– Solomon Ucko
3 hours ago
1
1
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type's
struct. For Python types there is a visible difference.– wizzwizz4
3 hours ago
@SolomonUcko There's no visible difference for C types, because you can't actually look up the true attributes in the type's
struct. For Python types there is a visible difference.– wizzwizz4
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up as
slot wrappers.– Solomon Ucko
3 hours ago
@wizzwizz4 Yep. At least in CPython, magic methods on C types show up as
slot wrappers.– Solomon Ucko
3 hours ago
|
show 1 more comment
Writing return something, is the same as return (something,): It returns a tuple containing one element. When you print this, it will show the outer parentheses for the tuple, and the string inside will be printed as its source code representation, i.e. with escape codes and inside quotes.
However, return something simply returns that value, which can then be printed normally.
1
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
6
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
5
@GrannyAching Printing a tuple callsrepron the elements inside.reprgives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.
– interjay
8 hours ago
add a comment |
Writing return something, is the same as return (something,): It returns a tuple containing one element. When you print this, it will show the outer parentheses for the tuple, and the string inside will be printed as its source code representation, i.e. with escape codes and inside quotes.
However, return something simply returns that value, which can then be printed normally.
1
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
6
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
5
@GrannyAching Printing a tuple callsrepron the elements inside.reprgives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.
– interjay
8 hours ago
add a comment |
Writing return something, is the same as return (something,): It returns a tuple containing one element. When you print this, it will show the outer parentheses for the tuple, and the string inside will be printed as its source code representation, i.e. with escape codes and inside quotes.
However, return something simply returns that value, which can then be printed normally.
Writing return something, is the same as return (something,): It returns a tuple containing one element. When you print this, it will show the outer parentheses for the tuple, and the string inside will be printed as its source code representation, i.e. with escape codes and inside quotes.
However, return something simply returns that value, which can then be printed normally.
answered 9 hours ago
interjayinterjay
84.8k16203215
84.8k16203215
1
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
6
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
5
@GrannyAching Printing a tuple callsrepron the elements inside.reprgives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.
– interjay
8 hours ago
add a comment |
1
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
6
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
5
@GrannyAching Printing a tuple callsrepron the elements inside.reprgives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.
– interjay
8 hours ago
1
1
I know why I was getting a tuple. My question is why were the
n displayed.– Granny Aching
9 hours ago
I know why I was getting a tuple. My question is why were the
n displayed.– Granny Aching
9 hours ago
6
6
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
@GrannyAching: and you have an answer to your question here. n is displayed because you print tuple of string instead of single string and in case of printing tuples this is the default behaviour.
– running.t
9 hours ago
5
5
@GrannyAching Printing a tuple calls
repr on the elements inside. repr gives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.– interjay
8 hours ago
@GrannyAching Printing a tuple calls
repr on the elements inside. repr gives a representation of the object which is usually similar to how it's displayed in the source code, so for strings will contain quotes and escape codes.– interjay
8 hours ago
add a comment |
It seems that's the behavior for tuples in Python.
You can test this with a simpler case like so:
>>> print ("xxxnnx",)
('xxxnnx',)
Seems like Python helps you with debugging and escapes all the command sequences in strings when printing, so that strings appear the same way they were defined.
It did confuse you though, funny case. :)
add a comment |
It seems that's the behavior for tuples in Python.
You can test this with a simpler case like so:
>>> print ("xxxnnx",)
('xxxnnx',)
Seems like Python helps you with debugging and escapes all the command sequences in strings when printing, so that strings appear the same way they were defined.
It did confuse you though, funny case. :)
add a comment |
It seems that's the behavior for tuples in Python.
You can test this with a simpler case like so:
>>> print ("xxxnnx",)
('xxxnnx',)
Seems like Python helps you with debugging and escapes all the command sequences in strings when printing, so that strings appear the same way they were defined.
It did confuse you though, funny case. :)
It seems that's the behavior for tuples in Python.
You can test this with a simpler case like so:
>>> print ("xxxnnx",)
('xxxnnx',)
Seems like Python helps you with debugging and escapes all the command sequences in strings when printing, so that strings appear the same way they were defined.
It did confuse you though, funny case. :)
answered 9 hours ago
Nestor SokilNestor Sokil
705620
705620
add a comment |
add a comment |
A tuple can be denoted with or without parenthesis, its the comma decides the type.
>>> t = 1, 'a', 'abc'
>>> type(t)
<type 'tuple'>
>>> t
(1, 'a', 'abc')
>>>
In the above case, you added a trailing comma after the string and python interpreted it as a tuple.
Check this link.
>>> t= 'a',
>>> type(t)
<type 'tuple'>
>>> t
('a',)
>>> t = 'a'
>>> type(t)
<type 'str'>
>>> t
'a'
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
2
Because printing a tuple callsrepron its elements.
– Daniel Roseman
9 hours ago
add a comment |
A tuple can be denoted with or without parenthesis, its the comma decides the type.
>>> t = 1, 'a', 'abc'
>>> type(t)
<type 'tuple'>
>>> t
(1, 'a', 'abc')
>>>
In the above case, you added a trailing comma after the string and python interpreted it as a tuple.
Check this link.
>>> t= 'a',
>>> type(t)
<type 'tuple'>
>>> t
('a',)
>>> t = 'a'
>>> type(t)
<type 'str'>
>>> t
'a'
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
2
Because printing a tuple callsrepron its elements.
– Daniel Roseman
9 hours ago
add a comment |
A tuple can be denoted with or without parenthesis, its the comma decides the type.
>>> t = 1, 'a', 'abc'
>>> type(t)
<type 'tuple'>
>>> t
(1, 'a', 'abc')
>>>
In the above case, you added a trailing comma after the string and python interpreted it as a tuple.
Check this link.
>>> t= 'a',
>>> type(t)
<type 'tuple'>
>>> t
('a',)
>>> t = 'a'
>>> type(t)
<type 'str'>
>>> t
'a'
A tuple can be denoted with or without parenthesis, its the comma decides the type.
>>> t = 1, 'a', 'abc'
>>> type(t)
<type 'tuple'>
>>> t
(1, 'a', 'abc')
>>>
In the above case, you added a trailing comma after the string and python interpreted it as a tuple.
Check this link.
>>> t= 'a',
>>> type(t)
<type 'tuple'>
>>> t
('a',)
>>> t = 'a'
>>> type(t)
<type 'str'>
>>> t
'a'
edited 9 hours ago
answered 9 hours ago
sanoojsanooj
176210
176210
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
2
Because printing a tuple callsrepron its elements.
– Daniel Roseman
9 hours ago
add a comment |
I know why I was getting a tuple. My question is why were thendisplayed.
– Granny Aching
9 hours ago
2
Because printing a tuple callsrepron its elements.
– Daniel Roseman
9 hours ago
I know why I was getting a tuple. My question is why were the
n displayed.– Granny Aching
9 hours ago
I know why I was getting a tuple. My question is why were the
n displayed.– Granny Aching
9 hours ago
2
2
Because printing a tuple calls
repr on its elements.– Daniel Roseman
9 hours ago
Because printing a tuple calls
repr on its elements.– Daniel Roseman
9 hours ago
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55243089%2fpython-displays-n-instead-of-breaking-a-line%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown