Computer Science 1

Computer Science 1

On this page, I share solutions built live during the Seminars for the BoGE Computer Science (CS) 1 Course. Refer to the Edunao webpage for administrative information and all pedagogical materials.

Seminar 03

Download seminar-03.py

print(len("How long is this string?"))

s = "nininininini"
print(s[0::2])
print(s[1::2])

s = "The last word is unnecessary."
print(s[:17])

print("kayak"[::-1])

s = "minezgurgfzeyurfuyfzeruygzeiruimum"
print(s[len(s)//2])

l = [1,'1',2,'2',3,'3']
lnumber = l[::2]
lchar = l[1::2]
n = int(lchar[0] + lchar[1] + lchar[2])
print(n)
print(type(n))

s = ""
for i in range(len(lchar)):
    s += lchar[i]
n = int(s)
print(n)
print(type(n))
print(int("".join(lchar)))

l = [1,'1',2,'2',3,'3']
while l:
    l.pop()
print(l)

cities = {
    "Paris": (49, 2),
    "Lisbon": (38, 9),
    "Madrid": (40, 3)
    }
print(cities)

cities["Berlin"] = (52, 13)

cities.pop("Lisbon")
print("Lisbon" in cities)

print("TRDTRUDUIHUIGYTYDYTD"[3:7])
print([1,2,3,4,5,7,7,5,25,8,2,54,321,4,5].pop())
Seminar 04

Download seminar-04.py

number = int(input("Enter a number: "))

if number > 10:
    print("OK")
else:
    print("No, it's below")

number1 = int(input("Enter a number: "))
number2 = int(input("Enter a second number: "))

if number1 >= 0 and number2 >= 0:
    print("Both numbers are positive.")
else:
    print("One of the numbers is negative.")

id = input("Identifier: ")
if id == "admin":
    pwd = input("Password: ")
    if pwd == "1234":
        print("Access granted.")
    else:
        print("Access denied.")
else:
    print("User not recognized")

age = int(input('To purchase a ticket, indicate your age: '))
if age < 7:
    print('You get a free entrance!')
elif age < 18:
    print('You get a discount!')
else:
    print('Sorry, you need to pay the full price.')

for i in range(1,10):
    print(i)

lnames = ['Alice', 'Zoe', 'Charlie']
for name in lnames:
    print(name[0], name[-1])

info = {'nom': 'Alice', 'age': 25, 'ville': 'Paris'}

for key in info:
    print(key, info[key])

lnames = ['Alice', 'Zoe', 'Charlie']
dnames = {0: 'Alice', 1:'Zoe', 2:'Charlie'}
lnames[0]
dnames[0]

l1 = []
for i in range(1,11):
    l1.append(i**2)
print(l1)

l3 = [i**2 for i in range(1,11)]
print(l3)


l2 = []
i = 1
while i < 11:
    l2.append(i**2)
    # i += 1
    i = i+1
print(l2)

l100 = []
for i in range(0,101):
    l100.append(i)
print(l100)

l100=[i for i in range(0,101)]
print(l100)

while(len(l100)> 50):
    l100.pop()
print(len(l100))
print(l100)

l11 = [i for i in range(1,21) if i%2 == 0 or i% 3 ==0]
print(l11)
Seminar 05

Download seminar-05.py

def is_member(x,colle):
    for elem in colle:
        if elem == x:
            return True
    return False

s = {0, 2, 4, 6, 8, 10}
assert is_member(2, s)
assert not is_member(1, s)

# %%

def length(l):
    result = 0
    for _ in l:
        result += 1
    return result

s1 = {1, 12, 33, 20, 10, 15}
l = list(range(50))
string = "Alohomora"
ls1 = length(s1)
ll = length(l)
assert length(s1) == len(s1)
assert length(l) == len(l)
assert length(string) == len(string)

# %%

def sum_(l):
    result = 0
    for x in l:
        result += x
    return result

l = (1, 4, 7, 9, 3, 20)
assert sum_(l) == sum(l)

# %%

def prod(l):
    result = 1
    for x in l:
        result *= x
    return result

l = (1, 4, 7, 9, 3, 20)
assert prod(l) == 1*4*7*9*3*20

# %%

def map_(f, iterable):
    l = []
    for x in iterable:
        l.append(f(x))
    return type(iterable)(l)
    # return type(iterable)(f(x) for x in iterable)

def f(x):
    return x**3

assert map_(f, (1, 10, -1, 40)) == tuple(map(f, (1, 10, -1, 40)))

# %%

def filter_(f,iterable):
    return type(iterable)(x for x in iterable if f(x))
    # l = []
    # for x in iterable:
        # if f(x):
            # l.append(x)
    # if isinstance(iterable, list):
        # return l
    # if isinstance(iterable, tuple):
        # return tuple(l)
    # if isinstance(iterable, set):
        # return set(l)

assert filter_(f, {-1, -3, 0, 15, 6, -2, 11}) == {x for x in filter(f, {-1, -3, 0, 15, 6, -2, 11})}

# %%

def union(s1, s2):
    s = set()
    for x in s1:
        s.add(x)
    for x in s2:
        s.add(x)
    return s

s1 = {1, 0, 10, 31, 22, 15}
s2 = {1, 12, 33, 20, 10, 15}
assert union(s1, s2) == {1, 0, 10, 31, 22, 15, 12, 33, 20}

# %%

def intersection(s1, s2):
    s = set()
    for x in s1:
        if is_member(x, s2):
            s.add(x)
    return s

s1 = {1, 0, 10, 31, 22, 15}
s2 = {1, 12, 33, 20, 10, 15}
assert intersection(s1, s2) == {1, 10, 15}

# %%

def set_difference(s1, s2):
    s = set()
    for x in s1:
        if is_member(x, s2):
            continue
        else:
            s.add(x)
    return s

s1 = {1, 0, 10, 31, 22, 15}
s2 = {1, 12, 33, 20, 10, 15}
assert set_difference(s1, s2) == {0, 31, 22}
assert set_difference(s2, s1) == {12, 33, 20}

# %%

def count(c, l):
    result = 0
    for x in l:
        if x == c:
            result += 1
    return result

l = [0, 0, 0, 11, 2, 3, 0, 45, -1]
assert count(0, l) == l.count(0)

# %%

def extend(seq1, seq2):
    for x in seq2:
        seq1.append(x)

l1 = [1,2,3]
t1 = (4,5,6)
extend(l1, "123")
print(l1)

assert extend([], 'hello') == [].extend('hello')
assert extend([1,2,3], (4,5,6)) == [1,2,3].extend((4,5,6))
# %%