3.11 Lab: Smallest Number

Write a program whose inputs are three integers, and whose output is the smallest of the three values.

If the input is:

7
15
3

The output is: 3

This is the code I have come up with:

num1 = input()
num2 = input()
num3 = input()

if (num1 < num2):
    if (num1 < num3):
        smallest_num = num1
elif (num2 < num1):
    if (num2 < num3):
        smallest_num = num2
else:
    smallest_num = num3
print(smallest_num)

This code works for that input, however if you input "29, 6, 17" it returned no output with an error

NameError: name 'smallest_num' is not defined".

I have dinked around quite a bit and tried adding smallest_num = min(num1, num2, num3) however nothing has yielded a passing output.

7

2 Answers

The issue is that input() returns a string. So when you compare your variables, you're doing string comparisons instead of numerical comparisons. So, you need to convert your input to integers.

num1 = int(input("Enter num1: "))
num2 = int(input("Enter num2: "))
num3 = int(input("Enter num3: "))

print(min(num1, num2, num3))
0

This should work. I use C++, but it also looks like you didn't define smallest_num as a variable which could be the only problem.

if (num1 < num2 and num1 < num3):
    small = num1
elif (num2 < num1 and num2 < num3): 
    small = num2
else:
    small = num3
print(small)
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Chloe Bennett

Chloe Bennett

Culture, Media & Entertainment Columnist

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.

Share this article
Twitter Facebook Pinterest