Draw a square:
Full documentation for the turtle module: https://docs.python.org/2/library/turtle.html
Draw 3 shapes
Full documentation for the turtle module: https://docs.python.org/2/library/turtle.html
The following starter code is loosely based on the flowchart shown. The function provided is used to check whether a username already exists.
Use the starter code to implement the sections marked #TODO.
The text file, with usernames can be downloaded here.
''' creating usernames uses a file of existing usernames this file is read in and then new usernames are checked against it complete sections marked #TODO ''' # reading in existing usernames def read_usernames(): with open('usernames.csv') as ufile: data = ufile.readlines() usernames = [] for line in data: line = line.strip().split(',') usernames.append(line[4]) # only appends usernames, rest discarded return usernames # checking if username exists # the if condition in this function is equivalent to the one-line return def exists(username): ''' if username in read_usernames(): return True ''' return username in read_usernames() # this writes the data back to the file def write_userdata(udata): with open('usernames.csv', 'a') as ufile: ufile.write(udata) print(udata, 'has been written to the file.') print('Open the file: "usernames.csv" to see the data in the file') #TODO write your code to construct a username below #use the exists() function to check if a username already exists #TODO write the code to construct a comma separated string of the format: # yearofentry, firstname, surname, initial, username\n #TODO call the function write_userdata() with your string
This reads a csv file to get data on stations and miles. Use the starter code below and the linked csv file to solve this.
''' big exam question starter code implment your algorithm below complete the sections starting # TODO ''' # read file and clean up the data def getstationdata(): with open("stationlookupkingston.csv") as tfile: data = tfile.readlines() stationlist = [] for line in data: line = line.strip().split(',') line[1] = int(line[1]) # convert the miles to int stationlist.append(line) return stationlist #send back a 2d list ListOfStations = getstationdata() # list of stations and miles # intro for the user print(''' *********************************************** This section will simulate the card being read. We will assume journey ends at Kingston' Instead of IDs we will use station names *********************************************** ''') # TODO change start to an input from the user start = 'Barnes' #card being read miles = 0 # initialise miles # TODO add a for-loop to iterate through the elements in ListOfStations # TODO find the miles for start - remember it is a 2d list #TODO display the fare based on miles
Download the csv file for the above starter code.
Students need to practice reading and completing algorithms given to them as pseudo code and flowcharts. The following problem has been modified from a past paper. Use the starter code to complete the program and check that the algorithm works:
''' Rail passengers carry a contactless smartcard to pay for train journeys. A processor in the exit barrier calculates the rail fare. The card is swiped at the start and end of each journey. If there is enough money on the card at the end of the journey, the balance is updated and displayed on the barrier screen and the exit barrier opens. If not, the message, “Need to top-up” is displayed and the barrier does not open. ''' # stations and costs for ending Kingston # only london journeys def calculateCost(startStation): zone1 ='waterloo westminster greenpark marble arch' zone2 = 'archway arsenal bermondsey bow hampstead' zone3 = 'barnes bellingham bowe charlton harlesden highgate' zone4 = 'barking brentford eltham greenford hanwell' zone5 = 'becontree brimsdown cheam eastcote hayes' zone6 = 'hillinngdon heathrow ickenham purley romford' zone1 = zone1.split() zone2 = zone2.split() zone3 = zone3.split() zone4 = zone4.split() zone5 = zone5.split() zone6 = zone6.split() if startStation in zone1: return 5.5 if startStation in zone2: return 4.5 if startStation in zone3: return 4 if startStation in zone4: return 3.75 if startStation in zone5: return 3.5 if startStation in zone6: return 3 return 0 #if station not found # end of above function # TODO change startStation to be an input startStation = 'barnes' #for testing only # TODO get balance as a decimal number input payment = calculateCost(startStation) # TODO implement the rest of your algorithm
The bitmap image can be manipulated by a python program. For example, you can replicate some of the filters that can be applied in image-editing software.
This starting code can be used to explore the file structure. It requires the use of slicing and loops to complete it. Apply it to the image provided below.
''' a program to change the brightness of an image pixel by pixel work on the sections marked # TODO ''' # open file and read the binary data with open('skull.bmp', 'rb') as ifile: data = ifile.read() #locate the header and pixel array using slicing header = data[0] #TODO slice to end of header pixel_array = data[0] #TODO slice from end of header to image data #TODO include a test to print the first few bytes of the pixel array #check these using a hex-editor #go through each pixel value and add 50 #make sure to deal with a value that goes over 255 #add the new pixel value to a list called intense pixels intense_pixels = [] #TODO write your loop here #convert the new pixel values into bytes objects intense_pixels = bytes(intense_pixels) #combine header and pixel array new_image = header + intense_pixels # write out the image data into a new file with open('skull_intense.bmp', 'wb') as ifile: ifile.write(new_image) print('finished updating image')
You can use this bitmap image for experimenting.