This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Computer Lab 04, strings, tuples, lists

complex data types: strings, tuples, lists. Traversing. Basic methods.

practical work

implement the following functions and test them appropriately.


def count_chars(string, char):
    """Return the number of occurances of char in string.
    :param string: a string. Example "hello world"
    :param char: character. Example "l"
    :return: int number of char occurences in string
    >>> count_chars("hello","l")

def replace_chars(string, char_original, char_replacement):
    """Return a new string with all occurences of char_original replaced by char_replacement.
    :param string: string in which some chars shall be replaced
    :param char_original: character to be replaced
    :param char_replacement: character to be inserted instead of char_original
    :return: a new string with replaced characters
    >>> replace_chars("hello","h","H")

def reverse_string(string):
    """Return a reversed version of string.
    :param string: string to be reversed
    :return: reversed string
    >>> reverse_string("hello")

def is_palindrom(string):
    """Return True if and only if the string is equal to its reversed version.
    :param string: string to check for palindrom
    :return: boolean
    >>> is_palindrom("aka")
    >>> is_palindrom("hello")


  • immutable
  • heterogeneous data structure

# packing
b = ("Bob", 19, "CS")
(name, age, studies) = b

def circle_chars(radius):
    """Return a circumference and an area of a circle.
    :param radius: int radius of a circle.
    :return: (int, int) tuple containing circumference and area (in this order)
    >>> circle_chars(3)
    (18.84955592153876, 28.274333882308138)


# Wentworth (2012)
students = [
    ("John", ["CompSci", "Physics"]),
    ("Vusi", ["Maths", "CompSci", "Stats"]),
    ("Jess", ["CompSci", "Accounting", "Economics", "Management"]),
    ("Sarah", ["InfSys", "Accounting", "Economics", "CommLaw"]),
    ("Zuki", ["Sociology", "Economics", "Law", "Stats", "Music"])]
# Count how many students are taking CompSci
counter = 0
for (name, subjects) in students:
    if "CompSci" in subjects:
           counter += 1
print("The number of students taking CompSci is", counter)

Weekly Homework 04

Required filename: 04_weekly_hw.py.

def remove_duplicates(items):
    """Remove duplicate items.
    :param items: input list, can contain anything
    :return: (unique_list, duplicates)
        unique_list - a list with unique items only
        duplicates - a list with items that were in items more than once (not unique list)
    >>> remove_duplicates(['h','e','l','l','o'])
    (['h', 'e', 'l', 'o'], ['l'])


Solve homework 02 - Quadratic equation solver and submit it via Upload system in time! Check the deadline in Upload system.
  • The homework from last week was to read chapters 6,7,8,9 from Wentworth2012. Go through them once more and concentrate on things you do not understand.
  • Read chapter 11 (Lists) from Wentworth2012.
courses/be5b33prg/labs/week_04.txt · Last modified: 2021/10/14 22:44 by nemymila