python 3 snippets: basic I/O

in python •  6 years ago 

Intro

Here I summarize the basic I/O snippet in python 3, so to be used later. A major difference is raw_input() is removed in python3 and there is some change in print() function as well.

input()

The basic input() to get an integer input looks like this:

list_of_input = int(input("please give an integer:"))

SInce the default type python gets from the input is a string, we should use int() to convert it into the desired data type. Now we shall assemble out some snippets to tackle more sophisticated input.

  • several integers input in a line and are separated by spaces
    example input:

1 2 3 4

print ("Type integers in one line,  separated by a space:\n")

while True:
  try:
    list_of_input = map(lambda x:int(x), input().split()) 

# or convert it into a list 
#   list_of_input = list(map(lambda x:int(x), input().split()))

# or put directly into a list
#  list_of_input = [a[0] for a in input().split()]

  except ValueError as err:
    print(err)
    continue
  except EOFError:
#   print("End of input")
#   break
    continue
  • several integers in several lines and are each followed by EOF:

example input

1
2
3
4

import sys
while True:
  try:
    list_of_input = list(x[0] for x in sys.stdin)

  except ValueError as err:
    print(err)
    continue
  except EOFError:
#   print("End of input")
#   break
    continue
  • to decide an input character is a letter or a number: if it is a number then return the number in int type, if it is a letter, return the letter in string type.
def return_char_in_int_or_string(x):
    if (ord(x)<90):
        return(ord(x))
    return(x)

print()

Usually, print() is pretty straightforward. The only difference with python 2.x is now print needs "()" to include the content.

print("number1= %d , number2=%d"  % (number1, number2) )

The prototype of print() in python 3.x is:

print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

so to output without a newline, one could do:

print("*",end="")

to specify the ending character (the above example is null, which means no newline after the output)

However, in python 2.x, the old trick was:

print x,

No newline will be created due to the extra "," at the end. However, there will be an extra space at the end of the output though.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @spearous! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!