Coding

Practicing Python | Think Python: Functions – Exercises

Book: Think Python

These are my solutions for exercises in chapter “functions”.

If you have suggestions, do not hesitate to give them down below πŸ˜€

Le Code’

[sourcecode lang="python"]
#THINK PYTHON - BOOK NAME
#CHAPTER  - "FUNCTIONS"
#COMPLETED!
'''
Exercise 3.1
Write a function named right_justify that takes a string named s as a parameter
and prints the string with enough leading spaces so that the last letter of the string is in column 70
of the display.
'''


def right_justify(s):
	length_of_str = len(s) #sets the length of the given string 
	leading_spaces = 70 - length_of_str
	return (" " * leading_spaces) +  s
		
	
'''
Exercise 3.2. A function object is a value you can assign to a variable or pass as an argument. For
example, do_twice is a function that takes a function object as an argument and calls it twice:
def do_twice(f):
f()
f()
Here’s an example that uses do_twice to call a function named print_spam twice.
def print_spam():
print('spam')
do_twice(print_spam)
1. Type this example into a script and test it.
2. Modify do_twice so that it takes two arguments, a function object and a value, and calls the
function twice, passing the value as an argument.
3. Copy the definition of print_twice from earlier in this chapter to your script.
4. Use the modified version of do_twice to call print_twice twice, passing 'spam' as an
argument.
5. Define a new function called do_four that takes a function object and a value and calls the
function four times, passing the value as

'''
def print_spam(value):
	print(value)

def do_twice(f, value):
	f(value)
	f(value)

def do_four(f, value,repeat=4):
	do_repeats(f, value, repeat)
	
def do_repeats(f, value, repeat):
	for x in range(repeat):
		f(value)
		

'''
Exercise 3.3. Note: This exercise should be done using only the statements and other features we
have learned so far.
1. Write a function that draws a grid like the following:
+ - - - - + - - - - +
| 	  |         |
|         | 	    |
|         | 	    |
| 	  | 	    |
+ - - - - + - - - - +
| 	  |         |
|         | 	    |
|         | 	    |
| 	  | 	    |
+ - - - - + - - - - +
Hint: to print more than one value on a line, you can print a comma-separated sequence of
values:
print('+', '-')
By default, print advances to the next line, but you can override that behavior and put a
space at the end, like this:
print('+', end=' ')
print('-')
The output of these statements is '+ -' on the same line. The output from the next print
statement would begin on the next line.
	
'''		

'''
Write a function that draws a similar grid with four rows and four columns.
'''

		
def print_grid(num_spaces = 4, height = 8, width=2):
	'''
		Empty columns - ! in row num_spaces * constant
		
	'''
	number_of_headers = int(round(height / num_spaces)) # round to int
	for row in range(height + number_of_headers):
		has_plus = row % (num_spaces  + 1)  #only when non divisible by num_spaces 
		if has_plus == 0:
				print(("+" + "-" * num_spaces) * width + "+" )
		else:  print(( "|" + " " * num_spaces )* width + "|")

	#heehe cheating but okay.
	print(("+" + "-" * num_spaces) * width + "+" )
		
		
		
[/sourcecode]
error: Content is protected !!