Coding

Practicing Python | Think Python: Case study: interface design – Exercise 4.3

Below are my solutions for the exercises 4.3

Book:

[sourcecode lang="python"]
#Think Python: Exercise 4.3
import turtle, math
'''
Write a function called square that takes a parameter named t, which is a turtle. It
should use the turtle to draw a square.
'''
'''
Write a function call that passes bob as an argument to square, and then run the
program again.
'''
def square(t):
	if(isinstance(t, turtle.Turtle) == False):return
	t.showturtle()
	for i in range(4):
		t.fd(100)
		t.lt(90)
	return
'''
Add another parameter, named length, to square. Modify the body so length of the
sides is length, and then modify the function call to provide a second argument. Run
the program again. Test your program with a range of values for length.
'''
def square(t, length):
	if(isinstance(t, turtle.Turtle) == False):return
	t.showturtle()
	for i in range(4):
		t.fd(length)
		t.lt(90)
	return

'''
Make a copy of square and change the name to polygon. Add another parameter
named n and modify the body so it draws an n-sided regular polygon. Hint: The
exterior angles of an n-sided regular polygon are 360/n degrees.
'''
def polygon(t, length,n, m=None):
	if(isinstance(t, turtle.Turtle) == False):return
	if(m is None):
		m = n
	t.showturtle()
	for i in range(1, m + 1):
		t.fd(length)
		t.lt(360 / n)
	turtle.mainloop()
	return

'''
Write a function called circle that takes a turtle, t, and radius, r, as parameters and
that draws an approximate circle by calling polygon with an appropriate length and
number of sides. Test your function with a range of values of r.
Hint: figure out the circumference of the circle and make sure that length * n =
circumference.
'''

def circle(t, radius, angle=360):
	if(float(radius) == "NaN"): return
	circumference = 2 * math.pi * radius
	length = circumference / angle
	n = 360
	polygon(t, length, n, angle)

#last exercise 4 today
'''
Make a more general version of circle called arc that takes an additional parameter
angle, which determines what fraction of a circle to draw. angle is in units of degrees,
so when angle=360, arc should draw a complete circle.
'''

def arc(t, radius, angle = 360):
	circle(t, radius, angle)

arc(turtle.Turtle(), 50, 180)

[/sourcecode]

I also streamed the “solving the exercises” process on twitch

Watch Learning Python Programming : 15min from ajalacomfort16 on www.twitch.tv

Please follow and like us:
0

Enjoy this blog? Please spread the word :)

error: Content is protected !!