# 5. User Input

Getting inputs from a user is accomplished through the `user()` function. When we use the `user()` function, we can supply a prompt to give the user a hint of what to type to give us the input we are asking for. The program below asks the user to type in something (anything) and it simply echoes that input back out. You may view `input()` as the opposite of `print()` in the sense that `input()` is asking for something `from` the terminal and `print()` is displaying something `to` the terminal.

```1user_input = input('Type in something: ')
2print(user_input)
```

Everything you get back from `input()` is a string. Let’s write a program to ask the user to give us two numbers, add them, and return the result back.

```1num_1 = input('num 1: ')
2num_2 = input('num 2: ')
3result = num_1 + num_2
4
5print(f'{num_1} + {num_2} = {result}')
```

If the user entered 1 and 1 again for `num_1` and `num_2`, correspondingly, then the result should be 2, however, you will see that, instead, the program prints out 11 and not 2. Why is this happening? Because what we get back from `input()` are strings and so `num_1 + num_2` is not math addition but becomes string concatenation. We have to modify our code to convert the inputs to integers before adding them so that we get mathematical addition (and not string concatenation).

```1num_1 = input('num 1: ')
2num_2 = input('num 2: ')
3
4num_1 = int(num_1)
5num_2 = int(num_2)
6result = num_1 + num_2
7
8print(f'{num_1} + {num_2} = {result}')
```

## 5.1. Exercise, Math Calculators

Let’s create some math calculator programs.

• Write a program that asks the user for 2 numbers, print the subtraction result of those 2 numbers.

• Write a program that asks the user for 2 numbers, print the multiplication result of those 2 numbers.

• Write a program that asks the user for 2 numbers, print the divison result of those 2 numbers.

Solution.

Subtraction

```1num_1 = int(input('num 1: '))
2num_2 = int(input('num 2: '))
3result = num_1 - num_2
4
5print(f'{num_1} - {num_2} = {result}')
```

Multiplication

```1num_1 = int(input('num 1: '))
2num_2 = int(input('num 2: '))
3result = num_1 * num_2
4
5print(f'{num_1} x {num_2} = {result}')
```

Division

```1num_1 = int(input('num 1: '))
2num_2 = int(input('num 2: '))
3result = num_1 / num_2
4
5print(f'{num_1} / {num_2} = {result}')
```

## 5.2. Exercise, Shape Calculators

Let’s create some shape calculator programs.

• Write a program to ask the user for the side of square. Use the side the compute the perimeter and area of the square. Print the results to the user.

• Write a program to ask the user for the width and length of a rectangle. Use the width and length to compute the perimeter and area of the rectangle. Print the results to the user.

• Write a program to ask the user for the radius of a circle. Use the radius to compute the circumference and area of the circle. Print the results to the user.

Solution.

Square

```1side = int(input('side: '))
2
3perimeter = 4 * side
4area = side * side
5
6print(f'perimeter = {perimeter}, area = {area}')
```

Rectangle

```1width = int(input('width: '))
2length = int(input('length: '))
3
4perimeter = 2 * width + 2 * length
5area = width * length
6
7print(f'perimeter = {perimeter}, area = {area}')
```

Circle

```1radius = int(input('radius: '))
2
3circumference = 2 * 3.1415 * radius