Python · Syntax · Beginner
Functions: Level 3
Python Functions Level 3 Exercises: Functions with modes, flags, multiple conditions, string, list, and number handling to develop algorithmic thinking.
Quick topic start and explanations before exercises (exercises below):
Mode and flag patterns
#Mode, flag, ternary, and default parameters reference
#Exercises:
Double or triple mode.
#def scale_number(n, mode):
pass
Solution
def scale_number(n, mode):
if mode == "double":
return n * 2
elif mode == "triple":
return n * 3
Uppercase flag.
#def format_text(text, upper):
pass
Solution
def format_text(text, upper):
if upper:
return text.upper()
else:
return text.lower()
Add or sub operation.
#def calculate(a, b, operation):
pass
Solution
def calculate(a, b, operation):
if operation == "add":
return a + b
elif operation == "sub":
return a - b
Conditional reverse.
#def conditional_reverse(text, limit):
pass
Solution
def conditional_reverse(text, limit):
if limit > 5:
return text[::-1]
else:
return text
Absolute value by flag.
#def maybe_abs(n, use_abs):
pass
Solution
def maybe_abs(n, use_abs):
if use_abs and n < 0:
return -n
return n
# Or better like this:
def maybe_abs(n, use_abs):
if use_abs:
return abs(n)
return n
First or last mode.
#def pick_char(text, mode):
pass
Solution
def pick_char(text, mode):
if text == "":
return ""
if mode == "first":
return text[0]
elif mode == "last":
return text[-1]
Sum or product.
#def combine_numbers(numbers, mode):
pass
Solution
def combine_numbers(numbers, mode):
if mode == "sum":
return sum(numbers)
elif mode == "product":
result = 1
for n in numbers:
result *= n
return result
Removing spaces by flag.
#def clean_spaces(text, remove):
pass
Solution
def clean_spaces(text, remove):
if not remove:
return text
return text.replace(" ", "")
Even or odd mode.
#def check_parity(n, mode):
pass
Solution
def check_parity(n, mode):
if mode == "even":
return n % 2 == 0
elif mode == "odd":
return n % 2 != 0
First or last 3 characters.
#def slice_text(text, mode):
pass
Solution
def slice_text(text, mode):
if len(text) < 3:
return text
if mode == "short":
return text[:3]
elif mode == "long":
return text[-3:]
Larger or smaller by flag.
#def pick_number(a, b, get_max):
pass
Solution
def pick_number(a, b, get_max):
if get_max:
return a if a > b else b
else:
return a if a < b else b
Count or length.
#def analyze_text(text, mode):
pass
Solution
def analyze_text(text, mode):
if mode == "length":
return len(text)
elif mode == "count":
cnt = 0
for ch in text.lower():
if ch == "a":
cnt += 1
return cnt
Square or cube.
#def power_by_flag(n, square):
pass
Solution
def power_by_flag(n, square):
if square:
return n * n
else:
return n * n * n
Trim start or end.
#def trim_text(text, mode):
pass
Solution
def trim_text(text, mode):
if len(text) <= 2:
return ""
if mode == "start":
return text[2:]
elif mode == "end":
return text[:-2]
Sign or abs.
#def number_info(n, mode):
pass
Solution
def number_info(n, mode):
if mode == "abs":
return -n if n < 0 else n
elif mode == "sign":
if n > 0:
return "positive"
elif n < 0:
return "negative"
else:
return "zero"