largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum...

31

Upload: anthony-hunter

Post on 18-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count
Page 2: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Largest of x random numbers

def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y)

if rnum > largest: largest = rnum

count +=1 return(largest);print(find_largest(7,50))

Write a function that takes 2 integers (x and y) as input parameters , and generates x random numbers between 0 and y. It finds the largest of those random numbers.

Page 3: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

What do we get?

def q(x,y): ct = 0 while (ct < x): ct2 = 0

while (ct2 < y): print(ct + ct2) ct2 += 1

ct += 1 return

q(4,3)

Rules: The contents of the

while loop is only what is indented under the while loop

We do the contents of the while loop over and over until the while loop’s condition becomes false.

Only then do we do what is below the while loop.

Page 4: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

What does this print out?def h(x):

ct = 1

while (ct <= x):

ct2 = ct

while (ct2<=x):

print(ct2, end=“\t") #prints a tab after every ct2

ct2 += 1

ct += 1

print("\n") #this is a line break (starts a new line)

print("\n") #this is a line break (starts a new line)

return

h(5)

Page 5: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Can you reverse it Output:1 2 3 4 5 2 3 4 5 3 4 5 4 5 5

def h(x): ct = 1 while (ct <= x): ct2 = ct while (ct2<=x): print(ct2, end=" ") ct2 += 1 ct += 1 print("\n") print("\n")

returnh(5)

def h(x): ct = 1 while (ct <= x): ct2 = 1 while (ct2<=ct): print(ct2, end=" ")

ct2 += 1 ct += 1 print("\n") print("\n")h(5)

Output:1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Page 6: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

What do we get?

def g(a,b):

while (a != b):

while (a > b):

a = a-b

while(b>a):

b = b-a

return(a)

print(g(6,20))

Page 7: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def f14(x): k = 0 n = -1 v = x while k <= (x*2): m = 0 while (m < v): print(v, end = "") m += 1 if (v == 0): n = 1 else: print() v += n k+=1 print()f14(3)

Page 8: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Lists: a new type!

We've got: ints

floats

booleans

strings

and now… (drum roll)

LISTS!sets of a thing (e.g., sets of ints)

Page 9: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Creating Lists 

To create a list, put a number of expressions in square brackets:

listvar = [ ] #Empty list with nothing in it.

A list with things in it:

# create a list with some items

listvar1 = [2,10,8,4,17]

listvar2 = [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”, ”snake dandruff”]

First list is a list of ints

Second list is a list of strings.

Page 10: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Lists Overview 

The list type is a container that holds a number of objects, in a given order.

Lists have an order to them Like a string, in which the order of the characters matters

Examples of lists: Sound files: a long list of numbers measuring vibrations in the air

any vibrational measurements

The order of the measurements of vibration is dependent on when they occurred in time.

List of class participants

Measurements of movements (e.g., weather)

Page 11: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Lists:listvar2 = [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

Index 0 1 2 3 4 5

listvar1 = [2, 10, 8, 4, 17]

Index 0 1 2 3 4

So to use a particular item in the list:

x=listvar2[3] #”bat wing”

y=listvar1[1] #10

z=listvar2[0] #”spider leg”

Page 12: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Lists:Like strings, we can use:

len

in

listvar2 = [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

listvar1 = [2, 10, 8, 4, 17]

get the length of a list

len(listvar2) # will give you 6

if “eye of newt" in listvar2:

return(“we can do chemistry!")

else:

return(“Sorry, no chemistry today.”)

Page 13: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Lists:Index: 0 1 2 3 4 5

listvar2 = [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

Slice: 0 1 2 3 4 5 6

-6 -5 -4 -3 -2 -1

listvar1 = [2, 10, 8, 4, 17]

Slicing:

x = listvar2[3:5] #x now holds [“bat wing”,”slug butter”]

y = listvar1[1:2] #y now holds [10]

Page 14: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Lists:Slicing (Different from Indexing)Index: 0 1 2 3 4 5

listvar2 = [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

Slice: 0 1 2 3 4 5 6

-6 -5 -4 -3 -2 -1

def f():

return(listvar[0:6])

>>[“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

def g():

return(listvar2[1:3])

>>[”toe of frog”,”eye of newt”]

def h():

return(listvar2[-4:-2])

>>[”eye of newt”,”bat wing”]

def i():

return(listvar2[-4:4])

>>[”eye of newt”,”bat wing”]

Page 15: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

ShortcutsIndex: 0 1 2 3 4 5

listvar2 = [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

Slice: 0 1 2 3 4 5 6

-6 -5 -4 -3 -2 -1

listvar2[0:4]

[“spider leg”,”toe of frog”,”eye of newt”,”bat wing”]

listvar2[:4]

[“spider leg”,”toe of frog”,”eye of newt”,”bat wing”]

listvar2[3:6] [“bat wing”, “slug butter”,”snake dandruff”]

listvar2[3:]

[“bat wing”, “slug butter”,”snake dandruff”]

listvar2[:] [“spider leg”,”toe of frog”,”eye of newt”, “bat wing”, “slug butter”,”snake dandruff”]

Page 16: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Stuff we can do to lists that we can’t do with strings:)

listofstuff = [“ant", “bear", “cat", “dog“,”elephant”,”fox”]

# assign by indexlistofstuff[0] = “aardvark"print(listofstuff)>>>[“aardvark", “bear", “cat", “dog“,”elephant”,”fox”]

# assign by slicelistofstuff[3:5] = [“dolphin"]print(listofstuff)>>>[“aardvark", “bear", “cat", “dolphin”,”fox”]

# delete an elementdel listofstuff[2]print(listofstuff)>>>[“aardvark", “bear", “dolphin”,”fox”]

# delete a slicedel listofstuff[:2]print(listofstuff)>>>[ “dolphin”,”fox”]

Page 17: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Concatenate(join) listslist1 = [“skeletons", “zombies ", “witches"]

list2 = [“vampires", “ghouls ", “werewolves"]

list3 = list1 + list2

print(list3)

>>>[“skeletons", “zombies ", “witches“,”vampires", “ghouls ", “werewolves"]

list1 +=list2

print(list1)

>>>[“skeletons", “zombies ", “witches“,”vampires", “ghouls ", “werewolves"]

list1[3]?

list1[0]?

list1[6]?

Page 18: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Note: adding to the end of the list:list1 = [“skeletons", “zombies ", “witches“,”vampires", “ghouls ", “werewolves"]

We CAN do:

list1[4] = “ghosts”

print(list1)

>>> [“skeletons", “zombies ", “witches“,”vampires", “ghosts ", “werewolves"]

We CAN’T do:

list1[6] = “poltergeists”

(why not?)

Page 19: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Appending to end of list:list1 = [“skeletons", “zombies ", “witches“,”vampires", “ghouls ", “werewolves"]

We CAN’T do:

list1[6] = “poltergeists”

Instead:

list1.append(“poltergeists”)

print(list1)

>>[“skeletons", “zombies ", “witches“,”vampires", “ghouls ", “werewolves“, ”poltergeists”]

Append adds an element to the end of a list (sets aside more RAM memory)

Always to the end!

It is a method (function) that belongs to anything that is of the list type

Appending doesn’t work with strings (They’re immutable!)

Page 20: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

List Methods Methods are functions that manipulate lists specifically

lists are objects (object-oriented programming)

Objects have methods (functions) associated with them.

E.g., dog objects might have a walking function

Square objects might have a calc_area function

List objects have functions: e.g.,

Add an element

reverse the list

Sort a list

Etc.

Page 21: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Removing an item from the list: list1=[“skeletons", “zombies ", “witches“,”vampires", “ghouls ", “werewolves“,

”poltergeists”]

list1.remove(“werewolves”)>>[“skeletons", “zombies ", “witches“,”vampires", “ghouls ",”poltergeists”]

Trying to remove something that isn’t in the list gives you an error:list1.remove(“ghosts”) #ERROR

So check:if “vampires” in list1: list1.remove(“vampires”)print (list1)>>>[“skeletons", “zombies ", “witches“, “ghouls ", ”poltergeists”]

remove() ONLY removes the first occurrence of an item in the list:list2 = [8,2,3,1,5,3,8,4,2,3,5]list2.remove(2)print(list2)>>[8,3,1,5,3,8,4,2,3,5]

Page 22: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

list1=[“skeletons", “zombies ", “witches“, “ghouls ", ”poltergeists”]

Reversing the order of the list:list1.reverse()>>>[‘poltergeist’,’ghouls’,’witches’,’zombies’,’sk

eletons’]

Sorting the listlist1.sort()>>>[‘ghouls’,’poltergeists’,’skeletons’,’witches’,’

zombies’]

Sorting the listlist1.sort(reverse = True)>>>[‘zombies’,’witches’,’skeletons’,’poltergeists

’,’ghouls’]

Page 23: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

Other methods available for lists

count(value) – counts the number of times value occurs in list list2 = [8,2,3,1,5,3,8,4,2,3,5,3]

x = list2.count(3)print(x)>>>4

index(value) – returns index of first occurrence of valuelist1=[“skeletons", “zombies ", “witches“, “ghouls ", ”poltergeists”]y = list1.index(“witches”)print(y)>>>2

Page 24: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

pop([f]) – returns value at position f and removes value from list. Without f, it pops the last element off the listlist1=[“skeletons", “zombies ", “witches“, “ghouls ", ”poltergeists”]x=list1.pop()print(x)>>”poltergeists”print (list1)>> =[“skeletons", “zombies ", “witches“, “ghouls ”]

x=list1.pop(2)print(x)>>”witches”print (list1)>> [“skeletons", “zombies ", “ghouls ”]

insert(f,value)- inserts value at position flist1.insert(1,’dragons”)print(list1)>>>[“skeletons", “dragons”, “zombies ", “ghouls ”]

Page 25: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def rg(x,y):

while len(x) > 0:

y.append(x.pop())

return(y)

print(rg(['witch','ghost','werewolf','vampire'],[]))

Page 26: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def rf(y,ls):

while ls.count(y)>0:

if y in ls:

z = ls.index(y)

ls.pop(z)

return(ls)

x = ['a','c','b','a','d','b','a','c','b','f','c','b']

print(rf('c',x))

Page 27: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def k(x,y):

k = True

while y < len(x)//2:

if (x[y] != x[len(x) - y-1]):

k=False

y+=1

return (x[y] == x[len(x) - y-1]) and k

print(k("rotator",0))

print(k("clue",0))

Page 28: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def lr2(x,y,ls): while x < len(ls): if (ls[x] > y): y=ls[x]

x += 1return(y)

listarr = [3,2,7,3,1]print(lr2(0,0,listarr))

Page 29: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def g(x,y):

while (len(x) > 1):

i = randrange(len(x))

y+=x[i]

x = x[:i]+x[i+1:]

return(y+x)

print(g("computer",""))

#A game comes to mind…

Page 30: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def f(x,y,z): while x < len(z): if y> z[x]: y=z[x] x+=1 return(y)print(f(0,"zzyrgy",['ghoul','zombie','werewolf','vampire','ghost','pumpkin']))

def g(x,z): while x < len(z): q = f(0,"zzyrgy",z[x:]) i = z.index(q) t = z[x] z[x] = z[i] z[i] = t x+=1 return(z)print(g(0,['ghoul','zombie','werewolf','vampire','ghost','pumpkin']))

Page 31: Largest of x random numbers def find_largest(x,y): largest = 0; count = 0; while count < x: rnum = randrange(0,y) if rnum > largest: largest = rnum count

def h(x):

y = ""

k = 0

while k<len(x):

y+=(x[k][k])

k+= 1

return(y)

ls = ['coffin','creepy','hayride','corpse','ghastly']

print(h(ls))