Skip to content Skip to sidebar Skip to footer

Why Is There A Blank Line Between My Print And Raw_input Lines?

I've been searching like crazy and I haven't found out why my code prints an extra empty line inbetween my raw_input and print lines. This is what it looks like: print '-----------

Solution 1:

As much as I'm not a Canopy fan I think that the conclusion that its a Canopy bug is unfair. I think its an issue when using raw_input involving the inclusion of IPython within an IDE. Why?

My test code was:

print"Error if there is an extra line before 1"print"Error if there is an extra line before 2"
guess = raw_input("This line should follow directly")

I tested the code in a number of environments (Python 2.7):

  • Canopy: fail
  • Spyder with IPython window: fail
  • IPython in Jupyter QtConsole: fail

  • ipython: good
  • python: good
  • Spyder using a Python console.

So, I conclude that IPython, in a non-terminal environment is generating an extra linefeed for some reason before a raw_input(). Note that this still applies with Python 3.5 using input.

enter image description here

Solution 2:

EDIT The conclusion from the discussion in the comments is it's a bug in Canopy IDE.

The code you're showing us is not the code you're running.

Your output is this:

Available Letters:abcdefghijklmnopqrstuwxyz.

Which is supposed to be printed by this (note the dot added on the end):

print"Available Letters: "  + getAvailableLetters(lettersGuessed) + "."

But getAvailableLetters also adds a dot on the end of its return value.

defgetAvailableLetters(lettersGuessed):
    import string
    str = string.ascii_lowercase
    for char in lettersGuessed:
        if char instr:
            str = str.replace(char, "") 
    returnstr + '.'

So the output should be this:

Available Letters:abcdefghijklmnopqrstuwxyz..

My conclusion is the code you're showing us and the code you're running cannot be the same. I would suggest pasting the code somewhere for us to examine fully. Github Gist will do.

Post a Comment for "Why Is There A Blank Line Between My Print And Raw_input Lines?"