Skip to content
This repository has been archived by the owner on Jun 29, 2021. It is now read-only.

Commit

Permalink
Merge pull request #41 from introprogramming/feature/revise-control_flow
Browse files Browse the repository at this point in the history
Update control_flow and rename to getting_started
  • Loading branch information
niklasbroberg authored May 8, 2019
2 parents 126d662 + 7006198 commit 18d3911
Show file tree
Hide file tree
Showing 17 changed files with 131 additions and 141 deletions.
23 changes: 0 additions & 23 deletions exercises/control_flow/boolean_arithmetic.py

This file was deleted.

44 changes: 0 additions & 44 deletions exercises/control_flow/contains.py

This file was deleted.

30 changes: 0 additions & 30 deletions exercises/control_flow/functions.py

This file was deleted.

11 changes: 0 additions & 11 deletions exercises/control_flow/loop.py

This file was deleted.

2 changes: 1 addition & 1 deletion exercises/exercises_order
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
control_flow
getting_started
fibonacci
robbers_language
objects_in_a_bag
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,27 @@ I denna uppgift får du lära dig om:
- loopar
- funtioner

- **Svårighetsgrad:** 1
**Svårighetsgrad:** 1

## Delmoment

1. Undersök loop.py, if.py, if_else.py,
I de ovan nämnda filerna finns kod som demonstrerar hur loopar och if-satser fungerar.

Börja med att köra loop.py
Undersök nu vad som händer om du ändrar parametern till range funktionen från 10 till något annat tal.
Undersök nu vad som händer om du ändrar parametern till range funktionen på rad 4 från 10 till något annat tal.

Fortsätt nu med att köra de två filerna if.py och if_else.py.
Se till att du förstår skillnaden mellan flera if-satser och en stor if-else sats.
Diskutera det gärna med en handledare om du är osäker.

2. Undersök fizzbuzz.py,
Läs igenom specifikationen i fizzbuzz.py för att se hur fizzbuzz ska fungera.
Testa att köra fizzbuzz.py. Notera att "FizzBuzz" aldrig skrivs ut.
Det är något som är fel på if-else satsen. Försök lösa problemet.
Tips: programmet körs linjärt. Tänk rad för rad vad som händer.
Tips: programmet körs linjärt. Tänk vad som händer rad för rad.

3. Funktioner
Funktioner har du redan sett och använt, exempelvis print("Hello, World!") eller range(10), dock är det här första gången som du ser hela definitionen på en.
3. Funktioner har du redan sett och använt, exempelvis print("Hello, World!") eller range(10), dock är det här första gången som du ser hela definitionen på en.
Du kan själv definiera funktioner genom att skriva

def funktionsnamn(parameter1, parameter2):
Expand All @@ -35,27 +34,24 @@ I denna uppgift får du lära dig om:
funktionsnamn innehåller vanligtvis små och stora bokstäver samt '_'.
parameterlistan (det innanför parenteserna) kan innehålla hur många parametrar som helst men behöver heller inte ha några alls. parametrar separeras med ','.

Var som helst i en funktion kan man använda 'return x', funktionen returnerar då x och avbryts direkt. programmet körs vidare där funktionen kallades.
Var som helst i en funktion kan man använda 'return x', funktionen returnerar då x och avbryts direkt. Resten av programmet körs vidare där funktionen kallades.

När man skriver små program kanske man inte behöver funktioner. Men när det börjar bli större så är de väldigt användbara för att strukturera upp koden och göra abstraktioner. Man kan tänka på en funktion som en låda där du stoppar in något på ena sidan och får ut något på andra. Lådan brukar ofta kallas "black box" då vi inte vet hur beräkningarna görs. Däremot vet vi vad vi kan stoppa in och vad vi förväntar oss att få ut.
När man skriver små program kanske man inte behöver funktioner. Men när det börjar bli större så är de väldigt användbara för att strukturera upp koden och göra abstraktioner. Man kan tänka på en funktion som en låda där du stoppar in något på ena sidan och får ut något på andra, likt en funktion i matematiken.

I functions.py ser du några exempel på hur funktioner fungerar. Du behöver inte memorera allt nu, du kan återkomma och se hur syntaxen ser ut, det viktiga är att du förstår vilka möjligheter det ger dig.


4. Funktionen "contains" och listor.
Listor finns i de flesta programmeringsspråk, här används listor för att visa ett exempel på en användbar funktion. Därför går vi nu bara igenom basen för hur listor fungerar.

lists.py innehåller exempel och övningar på hur listor kan användas.
Listor finns i de flesta programmeringsspråk. lists.py innehåller exempel och övningar på hur listor kan användas.

När du är nöjd och har fått lite förståelse för hur listor fungerar gå vidare till contains.py.
Undersök hur contains funktionen fungerar och skriv sedan färdigt sublist_contains.

5. Härnäst ska vi beräkna primtal.
prime.py innehåller en funktion för att kolla om ett tal är ett primtal. Funktionen är dock inte helt färdigskriven.
Funktionen säger att alla tal under 2 är primtal. Detta då range(2,x), x < 2 ger en tom lista och därmed returnerar funktionen True.
Funktionen säger att alla tal under 2 är primtal eftersom range(2,x) ger en tom lista om x < 2. Detta leder till att funktionen returnerar True.

Skriva ut all primtal under 100.
Använd en for loop för att iterera över alla tal mellan 0 och 100,
Använd en for-loop för att iterera över alla tal mellan 0 och 100,
använd sedan en if-sats som kollar resultatet från is_prime funktionen och skriv ut talet om det är ett primtal.

Skapa en funktion som du kallar för print_primenumbers_less_than(x). Låt funktionen ta en parameter x och lägg din redan skrivna logik i denna funktion.
Expand Down
23 changes: 23 additions & 0 deletions exercises/getting_started/boolean_arithmetic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/python

# The boolean operators are not, and, or
# Can you see how they work?
print("not True: ", (not True))
print("True and True: ", (True and True))
print("True and False: ", (True and False))
print("True or False: ", (True or False))
print("False or False: ", (False and False))
print("")

# Assigning a boolean value to a variable
boolean_variable = True

# You can reassign a variable
boolean_variable = False
boolean_variable = boolean_variable or True

# Usage in if-else-statement
if boolean_variable:
print("boolean_variable is True")
else:
print("boolean_variable is False")
42 changes: 42 additions & 0 deletions exercises/getting_started/contains.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/python


def contains(input_list, e):
""" determines whether e is contained in the list """
for elem in input_list: # elem is short for element (an item in the list)
if elem == e:
return True
return False


integer_list = [0, 1, 2, 3]

print("")
print("Does the list contain 3?:", contains(integer_list, 3))
print("Does the list contain 5?:", contains(integer_list, 5))
print("")

list1 = [1, 2, 3, 4]
list2 = [1, 2, 3, 4, 5, 6, 7]
list3 = [1, 2, 3, 5]

# Create a function which determines whether all elements in a list are
# contained in another list.
# Some tips:
# - Use the contains function defined above.
# - You want to check if each element in the sublist is contained in the list
# - You can use boolean arithmetic, see the examples in boolean_arithmetic.py


def sublist_contains(list, sublist):
# Your code goes here
return None


# Some tests to make sure your function works. The value that your function
# returns should match the expected value.
print("")
print("Expected True, Actually got:", sublist_contains(list2, list1))
print("Expected False, Actually got:", sublist_contains(list3, list1))
print("Expected True, Actually got:", sublist_contains(list1, list1))
print("")
File renamed without changes.
File renamed without changes.
33 changes: 33 additions & 0 deletions exercises/getting_started/functions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/python
# import statement needed to access code and functions located in other files.
import random


def my_function():
""" A function with no parameters, only a return value. """
return 42


def boolean_function(bool_variable):
""" A function with one parameter which is used to determine what to return """
if bool_variable:
return "The boolean variable is True"
else:
return "The boolean variable is False"


def print_my_coords(x=0, y=0):
""" A function with 2 parameters and no return value.
It also has default values for both parameters, these are used if you don't
pass a value yourself """
print("Coordinates ({},{})".format(x, y))


print("my_function returns:", my_function())
print("boolean_function returns:", boolean_function(True))
print("boolean_function returns:", boolean_function(False))

print_my_coords(2, 5)
print_my_coords(2)
print_my_coords(y=5)
print_my_coords()
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

if variable % 6 == 0:
print("divisible by 6")

if variable % 7 == 0:
print("divisible by 7")

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/python
# A program just to show the difference between mulitple if-statements and a larger if-else-statement
# A program to show the difference between mulitple if-statements and a larger if-else-statement (see also if.py).

variable = 42

Expand All @@ -12,4 +12,4 @@
elif variable % 7 == 0:
print("Divisible by 7")
else:
print("Not less than or equal to 5 nor divisible by any number int the range [5-7]")
print("Not less than or equal to 5 nor divisible by any number in the range [5-7]")
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@

# Define a list
# Create some lists
list1 = []
list2 = [1,2,3]
list3 = [1,"string value", True]
list2 = [1, 2, 3]
list3 = [1, "string value", True]

# A list can contain different types of values, which list3 is an example of

# Accessing element at an index:
element = list3[1]
print(element)
# Lists are zero indexed, this means the first element is located at index 0

# Lists are "zero indexed". This means the first element is located at index 0
print(list3[0])

# Iterate over all items in a list using a for loop: (you've already seen this. in loop.py The function range(x) returns a list)
# Iterate over all items in a list using a for loop: (you've already seen this in loop.py: The function range(x) returns a list)
for elem in list2:
print(elem)

# More information about lists: https://docs.python.org/2/tutorial/datastructures.html#more-on-lists
# More information about lists: https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

# Try to create a list with the items -> 1, 2, "Foo", False, 3.5

Expand Down
5 changes: 5 additions & 0 deletions exercises/getting_started/loop.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/python
# A program which uses a for-loop to print "Hello, world!" 10 times

for i in range(10):
print("Hello, world!", i)
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@ def is_prime(integer):
return True



print("Should be False (0): %r" % is_prime(0))
print("Should be False (1): %r" % is_prime(1))
print("Should be True (2): %r" % is_prime(2))
print("Should be False (8): %r" % is_prime(8))
print("Should be True (17): %r"% is_prime(17))
print("Should be False (0):", is_prime(0))
print("Should be False (1):", is_prime(1))
print("Should be True (2):", is_prime(2))
print("Should be False (8):", is_prime(8))
print("Should be True (17):", is_prime(17))


# Your code below:
4 changes: 2 additions & 2 deletions exercises/tictactoe/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Programmet läser in vilken ruta man vill placera sitt tecken på.
- **Svårighetsgrad:** 1

## Delmoment
0. Fördelaktigt att ha gjort control_flow uppgiften men inget krav **Svårighetsgrad 1**.
0. Fördelaktigt att ha gjort getting_started uppgiften men inget krav **Svårighetsgrad 1**.

1. Skapa ett rutnät för spelet i konsollen och skriv en funktion printGameArea() som visar den **Svårighetsgrad 1**.
Tips: Gör det enkelt, använd lista med 9 element. Testa hårdkoda in tecknen och printa ut.
Expand All @@ -27,4 +27,4 @@ Tips: Skriv alla möjliga fall för enkelhetens skull. Eller skriv någon algori
7. Modifiera funktionen play() så att det kan bli oavjort. **Svårighetsgrad 1**.

## Externa bibliotek
*(inga)
*(inga)

0 comments on commit 18d3911

Please sign in to comment.