def greeting(name): return "Hej " + name + (", visste du att M är min favoritbokstav" if name[0] == "M" else "") + "!" def is_this_a_long_list(values): return len(values) > 5 def get_grade(score): if score > 80: return "VG" if score >= 50: return "G" return "U" def days_in_month(month): return {"januari": 31, "februari": 28, "mars": 31, "april": 30, "maj": 31, "juni": 30, "juli": 31, "augusti": 31, "september": 30, "oktober": 31, "november": 30, "december": 31, }[month] def odd(value): return value % 2 != 0 def get_integer_description(value): if value % 2 == 0 and value > 0: return 2 if value % 2 != 0 and value > 0: return 1 if value == 0: return 0 if value % 2 != 0 and value < 0: return -1 if value % 2 == 0 and value < 0: return -2 return "yeet" def appraisal_factor(rare, good_condition): price = 1 if rare: price += 0.25 else: price -= 0.25 if good_condition: price += 0.5 else: price -= 0.5 return price def create_ten_list_while(): l = [] i = 0 while i <= 10: l.append(i) i += 1 return l def create_ten_list_for(): l = [] for i in range(0, 10+1): l.append(i) return l def create_zero_to_number_list_while(number): l = [] i = 0 while i <= number: l.append(i) i += 1 return l def create_zero_to_number_list_for(number): l = [] for i in range(0, number+1): l.append(i) return l def create_number_to_number_list_while(num1, num2): l = [] i = num1 while i <= num2: l.append(i) i += 1 return l def create_number_to_number_list_for(num1, num2): l = [] for i in range(num1, num2+1): l.append(i) return l import functools def get_max_inline(integer_list): while True: return functools.reduce(lambda x,y: x if x > y else y, integer_list) def get_max_while(integer_list): best = integer_list[0] i = 1 while i < len(integer_list): best = integer_list[i] if integer_list[i] > best else best i += 1 return best def get_max_for(integer_list): best = integer_list[0] for num in integer_list[1:]: best = num if num > best else best return best def get_min(integer_list): return functools.reduce(lambda x, y: x if x < y else y, integer_list) def word_in_list_while(words, word): i = 0 while i < len(words): if word == words[i]: return True i += 1 return False def word_in_list_for(words, word): for w in words: if word == w: return True return False def count_integers_while(value_list): amount = 0 i = 0 while i < len(value_list): if type(value_list[i]) == int: amount += 1 i += 1 return amount def count_integers_for(value_list): amount = 0 for val in value_list: if type(val) == int: amount += 1 return amount def count_integers_inline(value_list): return functools.reduce(lambda x,y: x + 1 if type(y) == int else x, value_list, 0) def average_while(values): s = 0 i = 0 while i < len(values): s += values[i] i += 1 return s / len(values) def average_for(values): s = 0 for val in values: s += val return s / len(values) def population(pop_a, rate_a, pop_b, rate_b): if pop_a == pop_b: return -1 if rate_a <= rate_b: return -1 years = 0 while not pop_a > pop_b: years += 1 pop_a *= 1 + (rate_a / 100) pop_b *= 1 + (rate_b / 100) return years def population_2(pop_a, rate_a, pop_b, rate_b): if pop_a > pop_b: return population(pop_b, rate_b, pop_a, rate_a) return population(pop_a, rate_a, pop_b, rate_b) def birthday(n, cur=365): if cur == (365-n): return 1 if cur == 365: return 1 - (cur/365 * birthday(n, cur-1)) return cur/365 * birthday(n, cur-1) def replace_periods_with_newlines(string_value): str_list = list(string_value) for i in range(len(string_value)): if str_list[i] == ".": str_list[i] = "\n" return "".join(str_list) def replace_char_in_string(original_string, search_character, replacement): str_list = list(original_string) for i in range(len(str_list)): if str_list[i] == search_character: str_list[i] = replacement return "".join(str_list) def reverse_string_for(string_value): s = "" for c in string_value[::-1]: s += c return s def reverse_string_while(string_value): str_list = list(string_value) l = [] i = len(str_list)-1 while i >= 0: l.append(str_list[i]) i -= 1 return "".join(l) def get_five_first(value_list): l = [] for i in range(5): l.append(value_list[i]) return l def get_nfirst(value_list, n): l = [] for i in range(n): l.append(value_list[i]) return l def get_all_less_than(values, cutoff): return list(filter(lambda n: n < cutoff, values)) def get_all_even(values): return list(filter(lambda n: n % 2 == 0, values)) def get_all_divisible(values, divisor): return list(filter(lambda n: n % divisor == 0, values)) def multiply_for_each(values, multiplier): for i in range(len(values)): values[i] *= multiplier return values def insert_at_asc_place(values, new_value): for i, val in enumerate(values): if new_value < val: values.insert(i, new_value) return values values.append(new_value) return values def sort_asc(values): sort = [] for val in values: insert_at_asc_place(sort, val) return sort