53 Python Exercises and Questions for Beginners

In this post, I’m going to list a bunch of Python exercises and questions for beginners. If you’re starting out with Python, this post is a good way to test your knowledge and learn new things. You may also want to check out my Python Tutorial for Beginners on YouTube and Python 3 Cheat Sheet.

NOTE: This post is a work in progress and I’ll regularly add new questions to the list. So, be sure to come back for new coding exercises.  If you enjoy this post, please spread the love by share it with others.

Let’s get started!



  1. What is an expression?
  2. What is a syntax error?
  3. What is PEP8?
  4. What does a linter do?
  5. What is the result of this expression: “*” * 10
  6. What is CPython?
  7. How is CPython different from Jython?
  8. How is CPython different from IronPython?

Primitive Types

  1. What is a variable?
  2. What are the primitive built-in types in Python?
  3. When should we use “”” (tripe quotes) to define strings?
  4. Assuming (name = “John Smith”), what does name[1] return?
  5. What about name[-2]?
  6. What about name[1:-1]?
  7. How to get the length of name?
  8. What are the escape sequences in Python?
  9. What is the result of f“{2+2}+{10%3}”?
  10. Given (name = “john smith”), what will name.title() return?
  11. What does name.strip() do?
  12. What will name.find(“Smith”) return?
  13. What will be the value of name after we call name.replace(“j”, “k”)?
  14. How can we check to see if name contains “John”?
  15. What are the 3 types of numbers in Python?

Control Flow

  1. What is the difference between 10 / 3 and 10 // 3?
  2. What is the result of 10 ** 3?
  3. Given (x = 1), what will be the value of after we run (x += 2)?
  4. How can we round a number?
  5. What is the result of float(1)?
  6. What is the result of bool(“False”)?
  7. What are the falsy values in Python?
  8. What is the result of 10 == “10”?
  9. What is the result of “bag” > “apple”?
  10. What is the result of not(True or False)?
  11. Under what circumstances does the expression 18 <= age < 65 evaluate to True?
  12. What does range(1, 10, 2) return?
  13. Name 3 iterable objects in Python.


  1. What is the difference between a parameter and an argument?
  2. All functions in Python by default return …?
  3. What are keyword arguments and when should we use them?
  4. How can we make a parameter of a function optional?
  5. What happens when we prefix a parameter with an asterisk (*)?
  6. What about two asterisks (**)?
  7. What is scope?
  8. What is the difference between local and global variables?
  9. Why is using the global statement a bad practice?

Coding Exercises

  1. Write a function that returns the maximum of two numbers.
  2. Write a function called fizz_buzz that takes a number.
    1. If the number is divisible by 3, it should return “Fizz”.
    2. If it is divisible by 5, it should return “Buzz”.
    3. If it is divisible by both 3 and 5, it should return “FizzBuzz”.
    4. Otherwise, it should return the same number.
  3. Write a function for checking the speed of drivers. This function should have one parameter: speed.
    1. If speed is less than 70, it should print “Ok”.
    2. Otherwise, for every 5km above the speed limit (70), it should give the driver one demerit point and print the total number of demerit points. For example, if the speed is 80, it should print: “Points: 2”.
    3. If the driver gets more than 12 points, the function should print: “License suspended”
  4. Write a function called showNumbers that takes a parameter called limit. It should print all the numbers between 0 and limit with a label to identify the even and odd numbers. For example, if the limit is 3, it should print:
    • 0 EVEN
    • 1 ODD
    • 2 EVEN
    • 3 ODD
  5. Write a function that returns the sum of multiples of 3 and 5 between 0 and limit (parameter). For example, if limit is 20, it should return the sum of 3, 5, 6, 9, 10, 12, 15, 18, 20.
  6. Write a function called show_stars(rows)If rows is 5, it should print the following:
    • *
    • **
    • ***
    • ****
    • *****
  7. Write a function that prints all the prime numbers between 0 and limit where limit is a parameter.


Want to learn all the Python skills you need? Check out my Complete Python Course for Beginners.

Hi! My name is Mosh Hamedani. Over the last three years, I’ve taught over 1M students how to code or how to become a better coder through my online courses and YouTube channel. I’ve been working as a software engineer for the past 18 years and I love to share my knowledge with you. It’s my mission to make coding accessible to everyone.
Tags: ,

19 responses to “53 Python Exercises and Questions for Beginners”

  1. Manish says:

    Instead of Python 3 Cheat Sheet its spelled out Python 3 Chat Sheet in the hyperlink on3rd line.

  2. Hey Mosh. Could you please provide the answers to the practical questions?

  3. Nishath says:

    How should I enroll with this online course and get started to learn python..

  4. please provide the answer sheet

  5. Shailesh says:

    hey mosh your tutorials are awesome…. Can you please provide tutorials on Django ?

  6. Michael Caefm says:

    I want to check my answers. Please provide the answer sheet!

  7. Julián Varela says:

    I’m breaking my head with this exercise:
    5. Write a function that returns the sum of multiples of 3 and 5 between 0 and limit (parameter). For example, if limit is 20, it should return the sum of 3, 5, 6, 9, 10, 12, 15, 18, 20.

    I’ve wrote this code:

    def sum_of_multiples(limit):
    result = 0
    limit += 1
    for x in [3, 5]:
    for y in range(1, limit):
    if x*y <= limit:
    result += x*y
    return result

    The problem is that I can't figure out how to eliminate de duplicates of the multiples of 3 and 5, like 15 or 30. Please help!

  8. Mecandris says:

    Here is the code:
    2. FizzBuzz
    def FizzBuzz(number):
    if number % 3 == number % 5:
    return ‘FizzBuzz’
    elif number % 5 ==0:
    return ‘Buzz’
    elif number % 3 == 0:
    return ‘Fizz’
    return number

    number = int(input(‘>’))
    drink = FizzBuzz(number)

    3. Speed, License, Points
    def lic_suspension (speed):
    suspension_pt = 0
    while suspension_pt != 12:
    if speed = 12:
    return ‘License Suspended’, suspension_pt
    return “You’re overspeeding and license may get revoked”, suspension_pt

    speed = int(input(‘<'))
    vel, msg = lic_suspension(speed)
    print(f"You've incurred {msg} points")

    4. ODD EVEN
    def showNumbers(limit):
    coll_1 = {}
    for item in range(limit+1):
    if int(item) % 2 == 0:
    num = item
    type = "EVEN"
    # num = "EVEN"
    num = item
    type = "ODD"
    return coll_1

    limit = int(input("<"))
    type = showNumbers(limit)

    5. Sum of Multiples of 3 and 5
    def multiples (limit):
    sum = 0
    if limit <= 2:
    print("Sum is zero. \nPlease enter a non zero number, preferrably greater than 3")
    return sum
    for item in range(limit + 1):
    if int(item) % 3 == 0 or int(item) % 5 == 0:
    sum += int(item)
    return sum

    limit = int(input('<'))
    total = multiples(limit)
    print(f"Total sum of multiples of 3 and 5 till {limit} is {total}")

    6. Stargazing
    def show_start(limit):
    for item in range(limit+1):
    gaze = ""
    for totem in range(item):
    gaze += 'x'

    star = int(input("<"))
    limit = show_start(star)
    print("Isn't it a wonder?")

  9. severi says:

    def buzzfizz(number):
    if number == 0:
    return number
    elif number / 3 == (round(number / 3)) and number / 5 == (round(number / 5)):
    elif number / 3 == (round(number / 3)):
    elif number / 5 == (round(number / 5)):
    return number


    # why does this return answer and “none”

Leave a Reply

Connect with Me
  • Categories
  • Popular Posts