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

26
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)) Largest of x random numbers 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.

Upload: calvin-haynes

Post on 16-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

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))

Largest of x random numbersWrite 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.

Try: Multiplication tables• Write a function that takes as an input parameter a number, and then prints out that number's

multiplication table up through 10, • e.g., if the number was 4, you'd get•

04 812 …40

(Or Fancier version):0x4=01x4=42x4=83x4=12…10x4=40

def func(x):count = 0while (count <= 10):

print(count*x) count += 1

return (total)print(func(5))

def fancyfunc(x):count = 0while (count <= 10):

print(str(count)+"x"+str(x)+"="+str(count*x)) count += 1

return (total)print(fancyfunc(7))

from random import *

def beloworabove(): count = 0 below = 0 above = 0 while (count < 1000): rand = randrange(-100,100) if (rand < 0): below += 1 else: above += 1 count += 1 if below > above: return("generated " + str(below) + " numbers below 0") else: return ("generated " + str(below) + " numbers above 0")print(beloworabove())

Average: countWrite a function that takes no inputs. It generates 1000 random numbers between -

100 and 100. It counts how many of the random numbers are below 0 and how many are at or above 0. It then tells you which is more likely, below 0 or at or above 0.

Starting condition?What makes the loop stop? What inside the loop changes so that the

loop will stop?

What do we get?

from math import *

def f(a,b): n = min(a,b) i = 1 g = 1 while (i <= n): if (a%i == 0) and (b%i == 0): g = i i = i+1 return(g)

print(f(32,24))print(f(13,8))print(f(24,16))

For loop: another type of loop• We use For loops when we know exactly how many

times the loop will occur• Form:

for variable in [value1, value2,value3…lastvalue]:calculations

• Example:def f():for x in [1,2,3,4,5]:print(x)

return(x)print(f())

More for loops:def f():for x in [1,3,5,7,9]:print(x)

return(x)print(f())

def f():for x in [2,7,1,9,4]:print(x)

return(x)print(f())

More for loops:def f():

y = 0ct = 0for x in [3.2, 7.1, 8.0, 3.4, 5.1]:

print("including " + str(x))ct +=1

y = y + xreturn(y/ct)

print(f())

Loops with strings:def f(y): ct = 0for x in ["puppy","bunny","puppy","bird","echidna","puppy"]:if x == y:

ct += 1return(ct)

print(f("puppy"))

More for loops:def f():for x in [0,1,2,3,4]: print(x)

return(x)print(f())

• Shortcut: using rangedef f():for x in range(5): # range(5) = [0,1,2,3,4] print(x)

return(x)print(f())

Same?

def forfunc(y): total = 0

for x in range(y): total += x

return(total)print(forfunc(5))

def whilefunc(y): count = 0 total = 0 while (count < y): total += count count += 1 return (total)print(whilefunc(5))

More on Range:

def f():for x in range(-3,3): # from -3 up to but not including 3, e.g., [-3,-2,-1,0,1,2]

print(x)return(x)

print(f())

def f():for x in range(-3,3,2): # from -3 up to but not including 3, by increments of 2, e.g., [-3,-1,1]

print(x)return(x)

print(f())

(Can we make a loop go backwards?)

What does this do?def f(): y = 1000 total = 0 for x in ["2","7","1","9"]: total = total + int(x) * int(y) y /=10 return(total)print(f())

How about this?

def f(z): y = int(input("enter a number: ")) for x in range(1,y): for q in range(1,z): print (str(q)+ "*"+str(x)+"=\t"+str(x*q)) print ("\n") returnf(4)

Just about anything you can do with lists:

Len, indef f(x):

if "e" in x: return("e is in your message.")

else: return("e is not in your message.")

strvar = “puppies are cute”print(f(strvar))

z = len("cat")

Positions

def f(wv):return(wv[3])

wordvar = “cats”print(f(wordvar))

Slicing (Different from Indexing)

• Copying parts of strings:0 1 2 3 4 5

| p | i | z | z | a |

-5 -4 -3 -2 -1

def f():word = “pizza”return(word[0:5])

def g():word = “pizza”return(word[1:3])

def h():word = “pizza”return(word[-4:-2])

def i():word = “pizza”return(word[-4:3])

Shortcuts

0 1 2 3 4 5

| p | i | z | z | a |

-5 -4 -3 -2 -1

word=“pizza”word[0:4]

pizzword[:4]

pizzword[2:5]

zzaword[2:]

zza

# display a slicedef g(s,f,wd): return("wd["+str(s)+":"+str(f)+"] is "+str(wd[s:f]))

print(g(3,7,"sesquipedalian"))

Strings are Immutableword of the day

• Can:• x = "catamaran"• print(x.count("a"))• print(x.index('a'))

• Can’t (if it changes the string, we can’t do it)• Append (use + instead)• Reverse()• Pop()• Insert()• Sort()

What does this do?

def f(): strvar = input("enter a string: ") var1 = "" for x in range(len(strvar) - 1,-1,-1): var1 += strvar[x]; return(var1)print(f())

This one?def f(): strvar = input("enter a number: ") y = 1 z = 0 var1 = "" for x in range(len(strvar) - 1,-1,-1):

z += int(strvar[x]) * y; y*=10 return(z)print(f())

What does this give you?

def f(lv): x = len(lv) print(x) for y in range(0,x): if "t" in lv[y]: print(lv[y]) return

listvar = ["ham","am","boat","goat","there","anywhere"]f(listvar)

What does this do?def f(word): high = len(word) low = 0 newstr = "" for i in range(10): position = randrange(low, high) newstr += word[position] return(newstr)

wvar = "sesquipedalian"print(f(wvar))

How about this one?def f(m): new_m = "" SPECIAL = "dlmstp"

for k in m: if k.lower() not in SPECIAL: new_m += k return(new_m)

mvar = "Hi, my name is Lassie"print("Your message is: now" + f(mvar))

Something you can’t do

word = “ night”;word[0] = “s”;

Instead:newword = “”for x in “night”: if x == “n": newword += “s" else: newword += x

What do you get?def f(message): newmessage = "" for x in message: if x == "g": newmessage += "l" else: newmessage += x return(newmessage)

mvar = "pogysyggabicaggy"print("new string: " + f(mvar))