In this class we will explore the idea of adding words to a list and then sorting them.
In part II we will turn this into a game where the student can pick a number to move a word to the top of the list and then when the list is sorted they can 'win'. Well, here is the first thing:
list = [] n = 5 while n > 0: word = input("Please enter a word: ") list.append(word) print(list) print("==========") n = n - 1
This will show them loops and how a list works.
Next we will sort the list before printing it; add “list.sort()” before you print it. Let the students play with this for a while.
This is probably the easiest thing to do:
import random # Create a shuffled list list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] while list == sorted(list): random.shuffle(list) while list != sorted(list): print(list) print("Switch two numbers (x y): ", end = '') a = input() a = a.split() x = int(a[0]) - 1 y = int(a[1]) - 1 z = list[x] list[x] = list[y] list[y] = z print("==========") print(list) print("You win!")
For homework ask them to include a round counter, which keeps track of how many guesses they make.
Here is a “final” version which includes try and except error handling as well as easier logic.
import random list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] random.shuffle(list) score = 0 while list != sorted(list): score = score + 1 print(list) print("score:", score) x = input("Switch two numbers (x): ") y = input("Switch two numbers (y): ") try: x = int(x) - 1 y = int(y) - 1 except: print("") print("Oops! Please only enter numbers! :)") score = score - 1 continue (list[x], list[y]) = (list[y], list[x]) print ("==========") print(list) print("you win!") print("Your score is", score, "points.")