diff --git a/Exercise 8 - Inspera/11.py b/Exercise 8 - Inspera/11.py new file mode 100644 index 0000000..98800ae --- /dev/null +++ b/Exercise 8 - Inspera/11.py @@ -0,0 +1,51 @@ +from random import randrange + +songs = [("You hear the door slam. And realize there's nowhere left to", "run"), + ("Oh, I wanna dance with somebody. I wanna feel the", "heat"), + ("There's a fire starting in my heart. Reaching a fever", "pitch"), + ("Hey, I just met you and this is crazy. But here's my", "number"), + ("'Cause baby, you're a firework. Come on, show 'em what you're", "worth")] + +# Om jeg tar inn songs som parameter vil ikke pop_random_songs kunne fjerne noe fra lista. +# Her velger jeg aktivt å ikke ta et argument inn med tanke på oppgave B +def pop_random_songs(): + songIndex = randrange(len(songs)) + song = songs[songIndex] + del songs[songIndex] + return song + +def continueGuessing(): + while True: + try: + answer = input('Do you want to go again? [y/n] ') + assert answer in ['y', 'Y', 'n', 'N'] + return answer in ['y', 'Y'] + except AssertionError: + pass + +def song_contest(): + currentSong = pop_random_songs() + while True: + + print('The lyrics are:') + print(currentSong[0]) + answer = input('What\'s the next word? ') + + if answer.lower() == currentSong[1].lower(): + print(f'Correct!') + if len(songs) == 0: + print('You did it! You remembered all the objects') + exit(0) + elif continueGuessing(): + currentSong = pop_random_songs() + else: + print('Welcome back later :D') + exit(0) + + else: + print('Wrong guess. Try again.') + + +song_contest() +# for _ in range(5): +# print(pop_random_songs()) \ No newline at end of file diff --git a/Exercise 8 - Inspera/13.py b/Exercise 8 - Inspera/13.py new file mode 100644 index 0000000..f258cbd --- /dev/null +++ b/Exercise 8 - Inspera/13.py @@ -0,0 +1,33 @@ +def smallify_words(objects): + return [string.lower() for string in objects] + +def get_5_objects(): + while True: + try: + answer = input('Enter five objects separated by \';\': ').split(';') + assert len(answer) == 5 + return answer + except AssertionError: + print(f'You were supposed to enter five objects, not {len(answer)}. Try again.') + +def play_game(): + objects = get_5_objects() + answer = input('What is your guess? ') + while True: + if answer == 'quit': + exit(0) + + if answer in smallify_words(objects): + print(f'Congratulations! You remembered {answer}') + objects.remove(answer) + else: + print('Sorry, that was not one of the words') + + if len(objects) == 0: + print('You did it! You remembered all the objects') + exit(0) + + answer = input('What is your next guess? ').lower() +play_game() + + diff --git a/Exercise 8 - Inspera/16.py b/Exercise 8 - Inspera/16.py new file mode 100644 index 0000000..76dfad4 --- /dev/null +++ b/Exercise 8 - Inspera/16.py @@ -0,0 +1,5 @@ +def derivate(x, function): + h = 1e-8 + return (function(x+h) - function(x)) / h + +print(derivate(3, lambda x: x**2 + 2*x + 13)) \ No newline at end of file diff --git a/Exercise 8 - Inspera/6.py b/Exercise 8 - Inspera/6.py new file mode 100644 index 0000000..c0f66a5 --- /dev/null +++ b/Exercise 8 - Inspera/6.py @@ -0,0 +1,7 @@ +def input_strings(): + return [input('Skriv inn en streng: ') for _ in range(4) ] + +def acronym(): + return "".join([string[0].upper() for string in input_strings()]) + +print(acronym()) \ No newline at end of file diff --git a/Exercise 8 - Inspera/7.py b/Exercise 8 - Inspera/7.py new file mode 100644 index 0000000..89a8254 --- /dev/null +++ b/Exercise 8 - Inspera/7.py @@ -0,0 +1,25 @@ +def customInput(msg, interval): + while True: + try: + answer = int(input(msg)) + assert answer in range(*interval) + return answer + except (AssertionError, ValueError): + print('You have to gie a value in the interval [1,10]. Try again') + +def do_user_like(items): + print('On a scale of 1 to 10 where 10 is the highest, how much do you like:') + return [(item, customInput(f'{item}? ', (1,11))) for item in items] + + +def get_prioritized_list(lst): + return sorted(lst, key=lambda tuple: (tuple[1], tuple[0]), reverse=True) + +def what_user_likes_best(items, num): + sortedList = get_prioritized_list(do_user_like(items)) + print(f'Your top {num} are') + for i in range(num): + print(f'{i+1}. {sortedList[i][0]}') + + +x = what_user_likes_best(['dof', 'fas', 'be', 'aa'], 2) \ No newline at end of file