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?













10















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?










share|edit




























    10















    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?










    share|edit


























      10












      10








      10








      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?










      share|edit
















      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






      share|edit















      share|edit













      share|edit




      share|edit








      edited 8 hours ago







      Granny Aching

















      asked 9 hours ago









      Granny AchingGranny Aching

      43712




      43712






















          4 Answers
          4






          active

          oldest

          votes


















          11














          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.






          share|improve 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 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






          • 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












          • @wizzwizz4 Yep. At least in CPython, magic methods on C types show up as slot wrappers.

            – Solomon Ucko
            3 hours ago



















          10














          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.






          share|improve this answer


















          • 1





            I know why I was getting a tuple. My question is why were the n displayed.

            – 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 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


















          1














          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. :)






          share|improve this answer






























            0














            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'





            share|improve this answer

























            • I know why I was getting a tuple. My question is why were the n displayed.

              – Granny Aching
              9 hours ago






            • 2





              Because printing a tuple calls repr on its elements.

              – Daniel Roseman
              9 hours ago










            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
            );



            );













            draft saved

            draft discarded


















            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









            11














            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.






            share|improve 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 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






            • 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












            • @wizzwizz4 Yep. At least in CPython, magic methods on C types show up as slot wrappers.

              – Solomon Ucko
              3 hours ago
















            11














            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.






            share|improve 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 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






            • 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












            • @wizzwizz4 Yep. At least in CPython, magic methods on C types show up as slot wrappers.

              – Solomon Ucko
              3 hours ago














            11












            11








            11







            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.






            share|improve 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.







            share|improve this answer














            share|improve this answer



            share|improve 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 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






            • 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












            • @wizzwizz4 Yep. At least in CPython, magic methods on C types show up as slot 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











            • 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






            • 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












            • @wizzwizz4 Yep. At least in CPython, magic methods on C types show up as slot 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














            10














            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.






            share|improve this answer


















            • 1





              I know why I was getting a tuple. My question is why were the n displayed.

              – 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 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















            10














            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.






            share|improve this answer


















            • 1





              I know why I was getting a tuple. My question is why were the n displayed.

              – 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 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













            10












            10








            10







            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.






            share|improve this answer













            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.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 9 hours ago









            interjayinterjay

            84.8k16203215




            84.8k16203215







            • 1





              I know why I was getting a tuple. My question is why were the n displayed.

              – 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 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












            • 1





              I know why I was getting a tuple. My question is why were the n displayed.

              – 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 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







            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











            1














            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. :)






            share|improve this answer



























              1














              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. :)






              share|improve this answer

























                1












                1








                1







                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. :)






                share|improve this answer













                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. :)







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 9 hours ago









                Nestor SokilNestor Sokil

                705620




                705620





















                    0














                    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'





                    share|improve this answer

























                    • I know why I was getting a tuple. My question is why were the n displayed.

                      – Granny Aching
                      9 hours ago






                    • 2





                      Because printing a tuple calls repr on its elements.

                      – Daniel Roseman
                      9 hours ago















                    0














                    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'





                    share|improve this answer

























                    • I know why I was getting a tuple. My question is why were the n displayed.

                      – Granny Aching
                      9 hours ago






                    • 2





                      Because printing a tuple calls repr on its elements.

                      – Daniel Roseman
                      9 hours ago













                    0












                    0








                    0







                    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'





                    share|improve this answer















                    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'






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 9 hours ago

























                    answered 9 hours ago









                    sanoojsanooj

                    176210




                    176210












                    • I know why I was getting a tuple. My question is why were the n displayed.

                      – Granny Aching
                      9 hours ago






                    • 2





                      Because printing a tuple calls repr on 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






                    • 2





                      Because printing a tuple calls repr on 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

















                    draft saved

                    draft discarded
















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    How to create a command for the “strange m” symbol in latex? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)How do you make your own symbol when Detexify fails?Writing bold small caps with mathpazo packageplus-minus symbol with parenthesis around the minus signGreek character in Beamer document titleHow to create dashed right arrow over symbol?Currency symbol: Turkish LiraDouble prec as a single symbol?Plus Sign Too Big; How to Call adfbullet?Is there a TeX macro for three-legged pi?How do I get my integral-like symbol to align like the integral?How to selectively substitute a letter with another symbol representing the same letterHow do I generate a less than symbol and vertical bar that are the same height?

                    Category:Tremithousa Media in category "Tremithousa"Navigation menuUpload media34° 49′ 02.7″ N, 32° 26′ 37.32″ EOpenStreetMapGoogle EarthProximityramaReasonatorScholiaStatisticsWikiShootMe

                    Dokschytsy (Steed) Kwelen | NawigatsjuunBelarus: Vitebsk Region, citypopulation.de