--- /dev/null
+# pokedex.py
+import requests
+import json
+import sys
+
+API_SERVER = "https://www.ida.liu.se/~TDDE44/pokeapi/api/v2/"
+
+def main():
+ data = get_json_as_dict(API_SERVER + "pokemon/")
+ pokemons = data.get("results")
+ for pokemon in pokemons:
+ print(pokemon.get("name"))
+
+
+
+def get_json_as_dict(url):
+ r = requests.get(url)
+ assert r.status_code == 200, "Request unsuccessful"
+
+ return r.json()
+
+
+if __name__ == "__main__":
+ main()
+
\ No newline at end of file
--- /dev/null
+UEsDBBQAAAAIAEdKR1REFzSfLgEAAFYDAAAaABwAbmlsZm8zNTktcHl1cHBnM18xL29yaWcucHlV
+VAkAA8bVAGLG1QBidXgLAAEEehxpWQQA4fUFhVJNb4MwDL3zKyztAlpViR4rcd0v2E6oQhExU9TU
+oCSl5d/P+eiAdms5BdvvPfvZb/A1DN+qc1BmmcQOjjg1eFXW2ZyfG5DFPgP+DLqzIZ8GRSCzWD0K
+fcZUX+bh7wESogG0DU+bFwktpGxc30jVuih2RyBrjh6givEFiPDS9KSnp2gVhgHqXRCPwX9pFbUG
+T0guEKqehJmaUFCujUjo98o79gK6W0Nfd1SGEGqLD8mFYPItmq/Z+/KJfVsxDEgyLufmfFzNimEw
+2KnrjHbcZQX1Ifx0vYEjC8Q1Kocn3uLcoh+s3mukxFLwLBXE91yVWH8bKpZXwok/bmp3f1O+kXF9
+TKs2Ri8cMmvdpPJpeOG3GGoGKKvIOkEt5uMGvBUFCJLz1Y6viZZzfAhe3g9QSwMEFAAAAAgAR0pH
+VEawZ9CvAAAAYAEAACQAHABuaWxmbzM1OS1weXVwcGczXzEvcHl1cHBndGVzdDNfMS5sb2dVVAkA
+A8bVAGLG1QBidXgLAAEEehxpWQQA4fUF41IGAgVv/6AgV+8QBZ/D04JDHBVCAwLcPd1CXIMUQLJc
+XCC+goKxnqGeoZWCoYFCQf7hJXnpekjiRjjEjXGIm+AQN7VSMMImboZD3ByHuAUO8y1R1HOBPR8c
+6uvrqBDgf7jFzx2ozdhAT0HD0MBAISk14/C2smJNiCqXUoXDS4oUCopSczJzM/OA7BIFd38Xb6Au
+F4WCw0sVAipLMvLzSgsK0jPTSkCWKXIpKHABAFBLAwQUAAAACABHSkdUW1gtfHkAAACUAAAAGwAc
+AG5pbGZvMzU5LXB5dXBwZzNfMS9pbmZvLnR4dFVUCQADxtUAYsbVAGJ1eAsAAQR6HGlZBADh9QVF
+zEEOgyAURdE5q2ADtvABETZjEPiWFJWoDNx9YdTkje5LTnB3tJQCAxhYm6bMWD5ZLkm94tmuPWU8
+hDIEU47Uf6L/xtB6LWVNeM/8VR5ynGlNu8t0C+qqG1WSawgmLM47rUfw2ixSSD0hoBwF/tmhPF0S
+M393pGM/UEsBAh4DFAAAAAgAR0pHVEQXNJ8uAQAAVgMAABoAGAAAAAAAAQAAAKSBAAAAAG5pbGZv
+MzU5LXB5dXBwZzNfMS9vcmlnLnB5VVQFAAPG1QBidXgLAAEEehxpWQQA4fUFUEsBAh4DFAAAAAgA
+R0pHVEawZ9CvAAAAYAEAACQAGAAAAAAAAQAAAKSBggEAAG5pbGZvMzU5LXB5dXBwZzNfMS9weXVw
+cGd0ZXN0M18xLmxvZ1VUBQADxtUAYnV4CwABBHocaVkEAOH1BVBLAQIeAxQAAAAIAEdKR1RbWC18
+eQAAAJQAAAAbABgAAAAAAAEAAACkgY8CAABuaWxmbzM1OS1weXVwcGczXzEvaW5mby50eHRVVAUA
+A8bVAGJ1eAsAAQR6HGlZBADh9QVQSwUGAAAAAAMAAwArAQAAXQMAAAAA
\ No newline at end of file
--- /dev/null
+UEsDBBQAAAAIAGeTUFR8ZcPJqQEAAIgFAAAaABwAbmlsZm8zNTktcHl1cHBnM18yL29yaWcucHlV
+VAkAA/IzDWLyMw1idXgLAAEEehxpWQQA4fUFrVPLboQwDLzzFZF6gS2tFnqrtJ/RE0JRBGYbKQSa
+hO2qX984vAm0PTSHCOGxZ5yxH8hb2155ZchLEJRQEd3VtKkol0an4Y2JDqjg2kSvAbHHNIZcyNl9
+V40iXErAm8zIHjgBDNQYd8A5hIdXhGsutWGygBCBsYWNTMuDrI8XV8vFFJhOSfwd9KIrwYwB6fgT
+X/WAz5yYA9m+2nyn+OGTZPnf3mTTNEJjsqi2aPkZ7pa27EHRFAWhwceytl1g91/pCoZWXGlDi0Z0
+tQxrZhS/H/Whmk/sogfNjAs2i8jOeXTMJs37yCVj8h90kjyR5CdKJsRAqdf92Z8aGbPc0dGZzPaQ
+B7/pcM6W93iaEZBdDYoZQF0b95Ars+h88sUmrW1ByCBbF0wwRVvVlF1hwhsUSUzsnQ5VMbDaOkto
+EfZOUcgXb/0cf9b6JDdqhMlyE0p3p3DciaRve6KbBexsq5M7rGtycnk/DO+IxpInrLh8JAwOj9T7
+QfVHxxTsTq5v7ODq4PzBdMzOc8xUTF4hFDBtR7SeAZuNMKzpbWHGJ8M3nlr4OP8WFPkb+g1QSwME
+FAAAAAgAZ5NQVCC1EE+uAAAASAEAACQAHABuaWxmbzM1OS1weXVwcGczXzIvcHl1cHBndGVzdDNf
+Mi5sb2dVVAkAA/IzDWLyMw1idXgLAAEEehxpWQQA4fUF41IGAgVv/6AgV+8QBZ/D04JDHBVCAwLc
+Pd1CXIMUQLJcXCC+goKxnpGeoZWCoYFCQf7hJXnpekjiRjjEja0UjLCJm+BQb4pDvRkOcXMc4hZA
+cVO4OBfYk8Ghvr6OCgH+h1v83IHWG5vqKWgYGhgoJKVmHN5WVqwJUeVSqnB4SZFCQVFqTmZuZh6Q
+XaLg7u/iDdTlolBweKlCQGVJRn5eaUFBemZaCcgyRS4FBS4AUEsDBBQAAAAIAGeTUFTKWpAsegAA
+AJQAAAAbABwAbmlsZm8zNTktcHl1cHBnM18yL2luZm8udHh0VVQJAAPyMw1i8jMNYnV4CwABBHoc
+aVkEAOH1BUXMSw6DIBSF4TmrYAO03MtL2YxBHpbUB1EZuPvCqMkZ/Sf5grujpRQ5IuPIQFMYLBoL
+ktQrnu3a85oOoUaS8hqp/0T/jaH1WsqS0z3hqzzkOPOSd7fSLairbjS4AWY5GydAiRECb+Og56gG
+ORrt/ywrT5fEhO+OdOwHUEsBAh4DFAAAAAgAZ5NQVHxlw8mpAQAAiAUAABoAGAAAAAAAAQAAAKSB
+AAAAAG5pbGZvMzU5LXB5dXBwZzNfMi9vcmlnLnB5VVQFAAPyMw1idXgLAAEEehxpWQQA4fUFUEsB
+Ah4DFAAAAAgAZ5NQVCC1EE+uAAAASAEAACQAGAAAAAAAAQAAAKSB/QEAAG5pbGZvMzU5LXB5dXBw
+ZzNfMi9weXVwcGd0ZXN0M18yLmxvZ1VUBQAD8jMNYnV4CwABBHocaVkEAOH1BVBLAQIeAxQAAAAI
+AGeTUFTKWpAsegAAAJQAAAAbABgAAAAAAAEAAACkgQkDAABuaWxmbzM1OS1weXVwcGczXzIvaW5m
+by50eHRVVAUAA/IzDWJ1eAsAAQR6HGlZBADh9QVQSwUGAAAAAAMAAwArAQAA2AMAAAAA
\ No newline at end of file
if n == 0:
return 1
else:
- return fac_rec(n-1)
-
+ return n * fac_rec(n-1)
def fib(n):
if n == 0:
def pascal(row, col):
- if col < 1 or col > row:
- return 0
+ if col == 0 or col == row:
+ return 1
elif row == 1:
return 1
else:
return pascal(row-1, col) + pascal(row-1, col - 1)
-
def keep_if_even(lst):
if not lst:
return list()
if not lst[0] % 2:
- return [lst[0], *keep_if_even(lst[1:])]
+ ret = [lst[0]]
+ ret.extend(keep_if_even(lst[1:]))
+ return ret
else:
return keep_if_even(lst[1:])
def reverse_rec(lst):
if not lst:
return []
- return [lst[-1], *reverse_rec(lst[:-1])]
-
+ ret = [lst[-1]]
+ ret.extend(reverse_rec(lst[:-1]))
+ return ret
def keep_if_even_all(lst):
if not lst:
even_inner = list()
if isinstance(lst[0], list):
even_inner = keep_if_even_all(lst[0])
+ even_inner = [even_inner] #Ibland e man bara lat
elif not lst[0] % 2:
- return [lst[0], *keep_if_even_all(lst[1:])]
-
- return [*even_inner, *keep_if_even_all(lst[1:])]
+ ret = [lst[0]]
+ ret.extend(keep_if_even_all(lst[1:]))
+ return ret
+ even_inner.extend(keep_if_even_all(lst[1:]))
+ return even_inner
def reverse_rec_all(lst):
if not lst:
reverse_inner = list()
if isinstance(lst[-1], list):
reverse_inner = reverse_rec_all(lst[-1])
+ reverse_inner = [reverse_inner]
else:
reverse_inner = [lst[-1]]
- return [*reverse_inner, *reverse_rec(lst[:-1])]
-
+ reverse_inner.extend(reverse_rec_all(lst[:-1]))
+ return reverse_inner
def is_in_list(lst, elm):
if not lst:
def subst_all(lst, elm, new_value):
- if not lst:
+ if len(lst) == 0:
return list()
-
if isinstance(lst[0], list):
- inner = subst_all([0], elm, new_value)
+ inner = subst_all(lst[0], elm, new_value)
+ inner = [inner] # Pallar inte skriva om snyggt s blir lite fulkod ibland men det funkar
elif lst[0] == elm:
inner = [new_value]
-
- return [*inner, *subst_all(lst[1:], elm, new_value)]
-
+ else:
+ inner = [lst[0]]
+ print(inner, lst)
+ inner.extend(subst_all(lst[1:], elm, new_value))
+ return inner
def linear_search(key, seq):
if not seq:
if seq[0] != key:
return -1
return 0
- print(seq, key)
mid = len(seq) // 2
if res == -1:
return res
return res
-
-
-print(binary_search(12, [1, 2, 3, 4, 5, 6, 6.5, 7, 9, 10, 11, 12]))
--- /dev/null
+UEsDBBQAAAAIANeSUFQEAVJL2QIAAIULAAAaABwAbmlsZm8zNTktcHl1cHBnM18zL29yaWcucHlV
+VAkAA+YyDWLmMg1idXgLAAEEehxpWQQA4fUFrVZNj9owEL3zK6ZClZJu6BJ6Q6LHSr310lMURSY4
+1MI41A5s99937DiJnZjdoJYDkPl6b8bPA0v4ebkcWdXAl8XiQCuoSFlIWkYi3i4AX6wCAbsdrNtH
+/ZK0uUoBqTFQrujEJeDTUGiVxrY0288ou7Zlu4j0EWADgYDwZL9uENuAX4gqCY9k/ZJAWfOBBj4Y
+IlDL7jsG3QXFDHQ/TGyAX6UtAaQ4McIKumGdKL0UrCrojYqIq8aZW90AGiYQnKkmikdR2TqHj7Dx
+gmEHWevKXfNn+qeh4hCNkbN0m8fxGA0/7ncbLGEPQqJRKmq0MauvrGXpEF+leW/rWI/KZlsMsqwd
+xpPRFoTzh8drEpkQVCIjf+xMMaEaIkoatSNOTEA8lPOSQ1QwKQ5HZ8NTbv3L73tOxAEonImAPZEE
+OGmcK/RfZNBTuyuF0VxmFrEFhryJROafTy+TNnfW8aBGJuczLhAgo/PiuwmZZ8iDt2SU0Yt62kJA
+3z2NkMad1HaYTOFTYcaAOQlSOb8/zG8ECc/XNBs06sOZYI0YmIKThBGYaIW6cBvqg3A7j0qjjGzt
+ttGyvopmvl7WD1xZTs9UNAqZeiD9TfUbc8JTr5ne8TSq46xHdd2r3mH6S0DQl+JG+JUOXXH7qxD+
+DX10J3Xn4IF3Z+fiTzIyZxst4QemEjwo0VBQJ8luBOozKPF6PDagYM+ZRGh0Vld+qg/A2uWFQ4ED
+LqTqKk5EDsvLLq6dEciUbdbzCl0y73J1O+4ikVtkXIkub2fkXjR/Bp3I3CHEvkD7m8aZoEQWCt/K
+X7j6XhNQ9LevRDS8cdmsAYNs31hEKz9c2chGu1epFc+eCSJf7zPQqtGG0d8X9FjIDwZy8DikVun0
+BhnLmR30nu1KPz/DZtEBav6IpatjWD5pHY2L4bx19NdgsL5L4eZ06NbZxvr/mQ7fIeFgH+gNsMAr
+2TnGu/oN7K3m+W/Y2vQXUEsDBBQAAAAIANeSUFTDJcXAtAAAAHkBAAAkABwAbmlsZm8zNTktcHl1
+cHBnM18zL3B5dXBwZ3Rlc3QzXzMubG9nVVQJAAPmMg1i5jINYnV4CwABBHocaVkEAOH1BeNSBgIF
+b/+gIFfvEAWfw9OCQxwVQgMC3D3dQlyDFECyXFwgvoKCsZ6xnqGVgqGBQkH+4SV56XrI4gZWCkbY
+JIxwaDDGIW6CQ9wUh7gZUNwUi7g5DnELHOKWKOJc4FAJDvX1dVQI8D/c4ucOlDY20FPQMDQwUEhK
+zTi8raxYE6LKpVTh8JIihYKi1JzM3Mw8ILtEwd3fxRuoy0Wh4PBShYDKkoz8vNKCgvTMtBKQZYpc
+CgpcAFBLAwQUAAAACADXklBU0IsEf3gAAACUAAAAGwAcAG5pbGZvMzU5LXB5dXBwZzNfMy9pbmZv
+LnR4dFVUCQAD5jINYuYyDWJ1eAsAAQR6HGlZBADh9QVFzEEOgyAQQNE9p+ACtAgFHC5jKMxYUlSi
+svD2lVW3/ycvhRM950oqJaQSg+XD6JXyL8vagfu91lxo0wYY5YI8fjB+Md291TpnOif9qBfb9jzn
+NRS+JHO0hQergeCt3QiRLIYUQaIFcghOGkd/VtSrS3rSz4507AdQSwECHgMUAAAACADXklBUBAFS
+S9kCAACFCwAAGgAYAAAAAAABAAAApIEAAAAAbmlsZm8zNTktcHl1cHBnM18zL29yaWcucHlVVAUA
+A+YyDWJ1eAsAAQR6HGlZBADh9QVQSwECHgMUAAAACADXklBUwyXFwLQAAAB5AQAAJAAYAAAAAAAB
+AAAApIEtAwAAbmlsZm8zNTktcHl1cHBnM18zL3B5dXBwZ3Rlc3QzXzMubG9nVVQFAAPmMg1idXgL
+AAEEehxpWQQA4fUFUEsBAh4DFAAAAAgA15JQVNCLBH94AAAAlAAAABsAGAAAAAAAAQAAAKSBPwQA
+AG5pbGZvMzU5LXB5dXBwZzNfMy9pbmZvLnR4dFVUBQAD5jINYnV4CwABBHocaVkEAOH1BVBLBQYA
+AAAAAwADACsBAAAMBQAAAAA=
\ No newline at end of file
+++ /dev/null
-UEsDBBQAAAAIAEdKR1REFzSfLgEAAFYDAAAaABwAbmlsZm8zNTktcHl1cHBnM18xL29yaWcucHlV
-VAkAA8bVAGLG1QBidXgLAAEEehxpWQQA4fUFhVJNb4MwDL3zKyztAlpViR4rcd0v2E6oQhExU9TU
-oCSl5d/P+eiAdms5BdvvPfvZb/A1DN+qc1BmmcQOjjg1eFXW2ZyfG5DFPgP+DLqzIZ8GRSCzWD0K
-fcZUX+bh7wESogG0DU+bFwktpGxc30jVuih2RyBrjh6givEFiPDS9KSnp2gVhgHqXRCPwX9pFbUG
-T0guEKqehJmaUFCujUjo98o79gK6W0Nfd1SGEGqLD8mFYPItmq/Z+/KJfVsxDEgyLufmfFzNimEw
-2KnrjHbcZQX1Ifx0vYEjC8Q1Kocn3uLcoh+s3mukxFLwLBXE91yVWH8bKpZXwok/bmp3f1O+kXF9
-TKs2Ri8cMmvdpPJpeOG3GGoGKKvIOkEt5uMGvBUFCJLz1Y6viZZzfAhe3g9QSwMEFAAAAAgAR0pH
-VEawZ9CvAAAAYAEAACQAHABuaWxmbzM1OS1weXVwcGczXzEvcHl1cHBndGVzdDNfMS5sb2dVVAkA
-A8bVAGLG1QBidXgLAAEEehxpWQQA4fUF41IGAgVv/6AgV+8QBZ/D04JDHBVCAwLcPd1CXIMUQLJc
-XCC+goKxnqGeoZWCoYFCQf7hJXnpekjiRjjEjXGIm+AQN7VSMMImboZD3ByHuAUO8y1R1HOBPR8c
-6uvrqBDgf7jFzx2ozdhAT0HD0MBAISk14/C2smJNiCqXUoXDS4oUCopSczJzM/OA7BIFd38Xb6Au
-F4WCw0sVAipLMvLzSgsK0jPTSkCWKXIpKHABAFBLAwQUAAAACABHSkdUW1gtfHkAAACUAAAAGwAc
-AG5pbGZvMzU5LXB5dXBwZzNfMS9pbmZvLnR4dFVUCQADxtUAYsbVAGJ1eAsAAQR6HGlZBADh9QVF
-zEEOgyAURdE5q2ADtvABETZjEPiWFJWoDNx9YdTkje5LTnB3tJQCAxhYm6bMWD5ZLkm94tmuPWU8
-hDIEU47Uf6L/xtB6LWVNeM/8VR5ynGlNu8t0C+qqG1WSawgmLM47rUfw2ixSSD0hoBwF/tmhPF0S
-M393pGM/UEsBAh4DFAAAAAgAR0pHVEQXNJ8uAQAAVgMAABoAGAAAAAAAAQAAAKSBAAAAAG5pbGZv
-MzU5LXB5dXBwZzNfMS9vcmlnLnB5VVQFAAPG1QBidXgLAAEEehxpWQQA4fUFUEsBAh4DFAAAAAgA
-R0pHVEawZ9CvAAAAYAEAACQAGAAAAAAAAQAAAKSBggEAAG5pbGZvMzU5LXB5dXBwZzNfMS9weXVw
-cGd0ZXN0M18xLmxvZ1VUBQADxtUAYnV4CwABBHocaVkEAOH1BVBLAQIeAxQAAAAIAEdKR1RbWC18
-eQAAAJQAAAAbABgAAAAAAAEAAACkgY8CAABuaWxmbzM1OS1weXVwcGczXzEvaW5mby50eHRVVAUA
-A8bVAGJ1eAsAAQR6HGlZBADh9QVQSwUGAAAAAAMAAwArAQAAXQMAAAAA
\ No newline at end of file