Search
complex data types: strings, tuples, lists. Traversing. Basic methods.
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") 2 """
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") 'Hello' """
def reverse_string(string): """Return a reversed version of string. :param string: string to be reversed :return: reversed string >>> reverse_string("hello") 'olleh' """
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") True >>> is_palindrom("hello") False """
# packing b = ("Bob", 19, "CS") #unpacking (name, age, studies) = b name age studies
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)
Required filename: 04_weekly_hw.py.
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']) >>> remove_duplicates([3,2,2,2,1]) ([3, 2, 1], [2, 2]) """