diff options
| author | Gustav Sörnäs <gusso230@student.liu.se> | 2020-01-22 16:05:48 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gusso230@student.liu.se> | 2020-01-22 16:05:48 +0100 |
| commit | c320d11817c359c01e57c2d3ef5eae90c0b01a86 (patch) | |
| tree | 18328937d9f0c4bc2f54e39de63c7d1516c70d9f | |
| parent | 6319633122e8cc12786361a71b942381f80f9f0a (diff) | |
| download | tdde44-c320d11817c359c01e57c2d3ef5eae90c0b01a86.tar.gz | |
Do pyuppg 2
| -rw-r--r-- | upg2.py | 259 |
1 files changed, 259 insertions, 0 deletions
@@ -0,0 +1,259 @@ +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 |
