Community post
python 3 snippets: basic I/O
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.
Replies (1)
Congratulations @spearous! You received a personal award!
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!