Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
YStrano
GitHub Repository: YStrano/DataScience_GA
Path: blob/master/lessons/lesson_02/code/python-foundations/python-functions.ipynb
1904 views
Kernel: Python 3

Practice Python Functions

_Author: Ryan Dunlap (San Francisco)


Resources: Potentially Helpful Functions

Nowadays, most of the string module's components are already built into Python. However, it still has several constant values that can be useful, including:

string.ascii_uppercase
import string string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

1) Write a function that takes the length of a side of a square as an argument and returns the area of the square.

# A: def square(x): return x**2 square(2)

2) Write a function that takes the height and width of a triangle and returns the area.

# A: def triangle(x,y): return x*y*(1/2) #height x width divided by 2, to get area of triangle triangle(2,4)

3) Write a function that takes a string as an argument and returns a tuple consisting of two elements:

  • A list of all of the characters in the string.

  • A count of the number of characters in the string.

# A: my_string = 'hello world' def tupe (x): return (set(x), len(x)) #set gives you unique variables _, result = tupe(my_string)
result

4) Write a function that takes two integers, passed as strings, and returns the sum, difference, and product as a tuple (with all values as integers).

# A: def sum_two(x, y): x = int(x) y = int(y) return(x+y, x-y, x*y) sum_two('3', '4')

5) Write a function that takes a list as the argument and returns a tuple consisting of two elements:

  • A list with the items in reverse order.

  • A list of the items in the original list that have an odd index.

# A: def funny_func(x): return(x[::-1], x[::2]) #from, to, step funny_func('hello world')
def list_manip(x): x_reverse = x[::-1] odd_index = [] for number, i in enumerate(x): if number %2 ==1: odd_index.append(x) list_manip('hello world')
for i, v in enumerate(['a', 'b', 'c']): print(i, v)
def list_manipulation(l): l_reversed = l[::-1] odd_index = [] for number, i in enumerate(l): if number %2 ==1: odd_index.append(i) ## alt: l[1::2] return l_reversed, odd_index # return l[::-1], l[1::2] one liner list_manipulation([1,2,3,4])

Challenge: Write a function that returns the score for a word. A word's score is the sum of the scores of its letters. Each letter's score is equal to its position in the alphabet.

So, for example:

  • A = 1, B = 2, C = 3, D = 4, E = 5

  • abe = 8 = (1 + 2 + 5)

Hint: The string library has a property ascii_lowercase that can save some typing here.

# A: def word_score(input_string): string_lower = input_string.lower() values_dict = dict(zip(string.ascii_lowercase, range(1,27))) score = 0 for letter in string_lower: score += values_dict[letter] return score word_score('data')
# A: def score(word): total = 0 word = word.lower() for letter in word: total += (list(string.ascii_lowercase).index(letter)+1) return total score('hello')