summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gusso230@student.liu.se>2020-01-22 16:05:48 +0100
committerGustav Sörnäs <gusso230@student.liu.se>2020-01-22 16:05:48 +0100
commitc320d11817c359c01e57c2d3ef5eae90c0b01a86 (patch)
tree18328937d9f0c4bc2f54e39de63c7d1516c70d9f
parent6319633122e8cc12786361a71b942381f80f9f0a (diff)
downloadtdde44-c320d11817c359c01e57c2d3ef5eae90c0b01a86.tar.gz
Do pyuppg 2
-rw-r--r--upg2.py259
1 files changed, 259 insertions, 0 deletions
diff --git a/upg2.py b/upg2.py
new file mode 100644
index 0000000..dea50d4
--- /dev/null
+++ b/upg2.py
@@ -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