Input and output
We shall discuss in this exercise, Inputs and outputs. How to print data to the screen and read data from the console.
Later: print/write data into a file
Input
To take input from the user, we use the input(prompt)
function. The prompt
is a string, a message we to the user, as instructions.
Note
The value from the input()
is always a string, so we have to cast it to the desired type.
Refer to
Exercise 4 ( Arithmetic Operators) - Casting
, where we discussed in brief, casting.
Example
# prompt user for the user's first name
first_name = input("Enter first name: ")
# first name as we require is already a string
# so no need to cast
print("First Name:", first_name)
# print(f"First Name: {first_name}")
Output
The print()
function is used to output information on the screen or write into files. This is the print function in full,
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Parts of the print function
*objects:
these are comma-separated objects we want to display or output. The*
indicates there is more than one object.Eg: print('I am', 34, 'years old')
. So we display three objects.sep=' ':
By default, all the objects'I am', 34 and 'years old'
are separated by a single space. We could change it to any character we desire, passingsep=desired_character
.Eg: print('I am', 34, 'years old', sep=":)")
and the output,I am:)34:)years old
. Try it yourself and see.end='\n':
By default,print
adds a newline after the output.Eg: print('I am', 34, 'years old', end=";")
. This ends everyprint
statement with a;
.file=sys.stdout:
We see, always that, our output is displayed (sent) to the screen, which is the standard output.file
is set tosys.stdout
by default.sys.stdout
is a file and as such we pass could any other file. So if we want to output data into another file, then we change the default value offile
to the name of the file object of interest.flush=False:
By default doesn't forcibly flush the buffer to the screen, and its False. Change to True to do otherwise.
Example 1
# example 1
# all of these strings appear on the different lines
# because, by default, end='\n'
print("hello")
print("world")
# we make end='' - an empty string
print('John', end='')
# the next object after this print would be on the same
# line as this
print(' Doe')
# so when we set, `end=' - GVR\n'` , then the object
# will end with
# the string, ` - GVR` then add a newline.
print('Hello world', end=' - GVR\n')
# print() - without any object would print a newline instead
Example 2
Let us write a simple program that takes the name, age and weight of the user then we display the values to the screen.
# A simple program that takes the name, age and weight
# of the user then display the values to the screen
current_year = 2020
first_name = input('Enter your first name: ')
last_name = input('Enter your last name: ')
age = int(input('Enter our age: '))
# we can write the above line separately as below
# str_age = input('Enter our age: ') # age is a string
# age = int(str_age) # we convert the age to an integer
weight = float(input('Enter our weight in kg: '))
print("First Name:", first_name)
print("Last Name:", last_name)
print("Age:", age, " - year of Birth:", current_year - age)
# I am subtracting the age, int, from
# current_year, an int, to get the year of birth
# If we didn't cast the age, then we'd get an error
# Try it and see
Practicals
- write a program that finds the Sum and the average of five numbers, by asking the user to enter then as floats. Display all the inputs, the Sum and the average. [Use descriptive outputs]
Summary
- Use
input(prompt)
to take input from the std.in,prompt
is the message we pass across to the user, as a guide. - Use
print(objects)
to display comma-separated objects to the screen. - We have to cast the value of an input to the desired value since, by default, it is a string.