Download Largest of x random numbers

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.
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))
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
•
def func(x):
0
count = 0
4
while (count <= 10):
8
print(count*x)
count += 1
12
return (total)
…
print(func(5))
40
(Or Fancier version):
0x4=0
1x4=4
2x4=8
3x4=12
…
10x4=40
def fancyfunc(x):
count = 0
while (count <= 10):
print(str(count)+"x"+str(x)+"="+str(count*x))
count += 1
return (total)
print(fancyfunc(7))
Average: count
 Write 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.
from random import *

Starting condition?
What makes the loop stop?
What inside the loop changes so that the
loop will stop?

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())
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 = 0
ct = 0
for x in [3.2, 7.1, 8.0, 3.4, 5.1]:
print("including " + str(x))
ct +=1
y = y + x
return(y/ct)
print(f())
Loops with strings:
def f(y):
ct = 0
for x in
["puppy","bunny","puppy","bird","echidna","puppy"]:
if x == y:
ct += 1
return(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 range
def f():
for x in range(5):
print(x)
return(x)
print(f())
# range(5) = [0,1,2,3,4]
Same?
def whilefunc(y):
count = 0
total = 0
while (count < y):
total += count
count += 1
return (total)
print(whilefunc(5))
def forfunc(y):
total = 0
for x in range(y):
total += x
return(total)
print(forfunc(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")
return
f(4)
Just about anything you can do with
lists:
Len, in
def 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
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])
-1
Shortcuts
0
1
2
3
4
5
| p | i | z | z | a |
-5 -4 -3 -2 -1
word=“pizza”
word[0:4]
pizz
word[:4]
pizz
word[2:5]
zza
word[2:]
zza
# display a slice
def g(s,f,wd):
return("wd["+str(s)+":"+str(f)+"] is "+str(wd[s:f]))
print(g(3,7,"sesquipedalian"))
Strings are Immutable
word 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))
Related documents