Add python files
This commit is contained in:
parent
96aa1f721e
commit
27b5664ae7
7 changed files with 271 additions and 0 deletions
21
thinkcspy/Chapter-10-Exercises/Python-files/Problem11.py
Normal file
21
thinkcspy/Chapter-10-Exercises/Python-files/Problem11.py
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Runestone.Academy thinkcspy course
|
||||||
|
# Chapter 10
|
||||||
|
# Problem 11
|
||||||
|
|
||||||
|
def sumUntilEven(lst):
|
||||||
|
# your code here
|
||||||
|
sumlist = 0
|
||||||
|
|
||||||
|
for num in lst:
|
||||||
|
if num % 2 != 0:
|
||||||
|
sumlist += num
|
||||||
|
else:
|
||||||
|
return sumlist
|
||||||
|
|
||||||
|
return sumlist
|
||||||
|
|
||||||
|
mylist = [15, 85, 11, 20, 27, 38, 13]
|
||||||
|
oddlist = [13, 11, 29, 37]
|
||||||
|
|
||||||
|
print(sumUntilEven(mylist))
|
||||||
|
print(sumUntilEven(oddlist))
|
||||||
21
thinkcspy/Chapter-10-Exercises/Python-files/Problem12.py
Normal file
21
thinkcspy/Chapter-10-Exercises/Python-files/Problem12.py
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Runestone.Academy thinkcspy course
|
||||||
|
# Chapter 10
|
||||||
|
# Problem 12
|
||||||
|
|
||||||
|
def count(lst):
|
||||||
|
# your code here
|
||||||
|
wordCount = 0
|
||||||
|
|
||||||
|
for item in lst:
|
||||||
|
if type(item) is str:
|
||||||
|
if item != "sam":
|
||||||
|
wordCount += 1
|
||||||
|
else:
|
||||||
|
wordCount += 1
|
||||||
|
return wordCount
|
||||||
|
|
||||||
|
return wordCount
|
||||||
|
|
||||||
|
myList = ["apple", 5, 6, True, "purple", False, "mushroom", 11, "gen-x", "sam", 7, 10, "cause", "interim"]
|
||||||
|
|
||||||
|
print(count(myList))
|
||||||
63
thinkcspy/Chapter-10-Exercises/Python-files/Problem13.py
Normal file
63
thinkcspy/Chapter-10-Exercises/Python-files/Problem13.py
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
# Runestone.Academy thinkcspy course
|
||||||
|
# Chapter 10
|
||||||
|
# Problem 13
|
||||||
|
|
||||||
|
def count(lst):
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
for num in lst:
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
return count
|
||||||
|
|
||||||
|
|
||||||
|
def findIn(item, lst):
|
||||||
|
pos = 0
|
||||||
|
inLst = False
|
||||||
|
|
||||||
|
while pos < len(lst) and not inLst:
|
||||||
|
if lst[pos] == item:
|
||||||
|
inLst = True
|
||||||
|
else:
|
||||||
|
pos += 1
|
||||||
|
|
||||||
|
return inLst
|
||||||
|
|
||||||
|
|
||||||
|
def reverse(lst):
|
||||||
|
newlist = []
|
||||||
|
|
||||||
|
for num in lst:
|
||||||
|
newlist = [num] + newlist
|
||||||
|
|
||||||
|
return newlist
|
||||||
|
|
||||||
|
|
||||||
|
def index(item, lst):
|
||||||
|
pos = 0
|
||||||
|
|
||||||
|
for num in lst:
|
||||||
|
if num == item:
|
||||||
|
return pos
|
||||||
|
else:
|
||||||
|
pos += 1
|
||||||
|
|
||||||
|
return "Item not found."
|
||||||
|
|
||||||
|
|
||||||
|
def insert(pos, item, lst):
|
||||||
|
|
||||||
|
newlst = lst[:pos] + [item] + lst[pos:]
|
||||||
|
|
||||||
|
return newlst
|
||||||
|
|
||||||
|
|
||||||
|
myList = ["apple", 5, 6, True, "purple", False, "mushroom", 11, "gen-x", "sam", 7, 10, "cause", "interim"]
|
||||||
|
|
||||||
|
print(count(myList))
|
||||||
|
print(findIn("purple", myList))
|
||||||
|
print(findIn(99, myList))
|
||||||
|
print(reverse(myList))
|
||||||
|
print(index(False, myList))
|
||||||
|
print(index("jello", myList))
|
||||||
|
print(insert(5, 7.89, myList))
|
||||||
16
thinkcspy/Chapter-10-Exercises/Python-files/Problem14.py
Normal file
16
thinkcspy/Chapter-10-Exercises/Python-files/Problem14.py
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# Runestone.Academy thinkcspy course
|
||||||
|
# Chapter 10
|
||||||
|
# Problem 14
|
||||||
|
|
||||||
|
def replace(s, old, new):
|
||||||
|
# your code here
|
||||||
|
newStr = s.split(old)
|
||||||
|
newStr = new.join(newStr)
|
||||||
|
|
||||||
|
return newStr
|
||||||
|
|
||||||
|
|
||||||
|
s = 'I love spom! Spom is my favorite food. Spom, spom, spom, yum!'
|
||||||
|
print(replace('Mississippi', 'i', 'I'))
|
||||||
|
print(replace(s, 'om', 'am'))
|
||||||
|
print(replace(s, 'o', 'a'))
|
||||||
68
thinkcspy/Chapter-10-Exercises/Python-files/Problem15.py
Normal file
68
thinkcspy/Chapter-10-Exercises/Python-files/Problem15.py
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
# Runestone.Academy thinkcspy course
|
||||||
|
# Chapter 10
|
||||||
|
# Problem 15
|
||||||
|
|
||||||
|
import turtle
|
||||||
|
|
||||||
|
def createLSystem(numIters,axiom):
|
||||||
|
startString = axiom
|
||||||
|
endString = ""
|
||||||
|
for i in range(numIters):
|
||||||
|
endString = processString(startString)
|
||||||
|
startString = endString
|
||||||
|
|
||||||
|
return endString
|
||||||
|
|
||||||
|
def processString(oldStr):
|
||||||
|
newstr = ""
|
||||||
|
for ch in oldStr:
|
||||||
|
newstr = newstr + applyRules(ch)
|
||||||
|
|
||||||
|
return newstr
|
||||||
|
|
||||||
|
def applyRules(ch):
|
||||||
|
newstr = ""
|
||||||
|
if ch == 'H':
|
||||||
|
newstr = 'HFX[+H][-H]' # Rule 1
|
||||||
|
elif ch == 'X':
|
||||||
|
newstr = 'X[-FFF][+FFF]FX' # Rule 2
|
||||||
|
else:
|
||||||
|
newstr = ch # no rules apply so keep the character
|
||||||
|
|
||||||
|
return newstr
|
||||||
|
|
||||||
|
def drawLsystem(aTurtle, instructions, angle, distance):
|
||||||
|
savedInfoList = []
|
||||||
|
for cmd in instructions:
|
||||||
|
if cmd == 'F':
|
||||||
|
aTurtle.forward(distance)
|
||||||
|
elif cmd == 'B':
|
||||||
|
aTurtle.backward(distance)
|
||||||
|
elif cmd == '+':
|
||||||
|
aTurtle.right(angle)
|
||||||
|
elif cmd == '-':
|
||||||
|
aTurtle.left(angle)
|
||||||
|
elif cmd == '[':
|
||||||
|
savedInfoList.append([aTurtle.heading(), aTurtle.xcor(), aTurtle.ycor()])
|
||||||
|
print(savedInfoList)
|
||||||
|
elif cmd == ']':
|
||||||
|
newInfo = savedInfoList.pop()
|
||||||
|
aTurtle.setheading(newInfo[0])
|
||||||
|
aTurtle.setposition(newInfo[1], newInfo[2])
|
||||||
|
|
||||||
|
def main():
|
||||||
|
inst = createLSystem(6, "H") # create the string
|
||||||
|
print(inst)
|
||||||
|
t = turtle.Turtle() # create the turtle
|
||||||
|
wn = turtle.Screen()
|
||||||
|
wn.tracer(10)
|
||||||
|
|
||||||
|
t.up()
|
||||||
|
t.back(200)
|
||||||
|
t.down()
|
||||||
|
t.speed(0)
|
||||||
|
drawLsystem(t, inst, 25.7, 5) # draw the picture
|
||||||
|
# angle 2, segment length 5
|
||||||
|
wn.exitonclick()
|
||||||
|
|
||||||
|
main()
|
||||||
62
thinkcspy/Chapter-10-Exercises/Python-files/Problem16.py
Normal file
62
thinkcspy/Chapter-10-Exercises/Python-files/Problem16.py
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
import turtle
|
||||||
|
|
||||||
|
def createLSystem(numIters,axiom):
|
||||||
|
startString = axiom
|
||||||
|
endString = ""
|
||||||
|
for i in range(numIters):
|
||||||
|
endString = processString(startString)
|
||||||
|
startString = endString
|
||||||
|
|
||||||
|
return endString
|
||||||
|
|
||||||
|
def processString(oldStr):
|
||||||
|
newstr = ""
|
||||||
|
for ch in oldStr:
|
||||||
|
newstr = newstr + applyRules(ch)
|
||||||
|
|
||||||
|
return newstr
|
||||||
|
|
||||||
|
def applyRules(ch):
|
||||||
|
newstr = ""
|
||||||
|
if ch == 'F':
|
||||||
|
newstr = 'F[-F]F[+F]F' # Rule 1
|
||||||
|
else:
|
||||||
|
newstr = ch # no rules apply so keep the character
|
||||||
|
|
||||||
|
return newstr
|
||||||
|
|
||||||
|
def drawLsystem(aTurtle, instructions, angle, distance):
|
||||||
|
savedInfoList = []
|
||||||
|
for cmd in instructions:
|
||||||
|
if cmd == 'F':
|
||||||
|
aTurtle.forward(distance)
|
||||||
|
elif cmd == 'B':
|
||||||
|
aTurtle.backward(distance)
|
||||||
|
elif cmd == '+':
|
||||||
|
aTurtle.right(angle)
|
||||||
|
elif cmd == '-':
|
||||||
|
aTurtle.left(angle)
|
||||||
|
elif cmd == '[':
|
||||||
|
savedInfoList.append([aTurtle.heading(), aTurtle.xcor(), aTurtle.ycor()])
|
||||||
|
print(savedInfoList)
|
||||||
|
elif cmd == ']':
|
||||||
|
newInfo = savedInfoList.pop()
|
||||||
|
aTurtle.setheading(newInfo[0])
|
||||||
|
aTurtle.setposition(newInfo[1], newInfo[2])
|
||||||
|
|
||||||
|
def main():
|
||||||
|
inst = createLSystem(5, "F") # create the string
|
||||||
|
print(inst)
|
||||||
|
t = turtle.Turtle() # create the turtle
|
||||||
|
wn = turtle.Screen()
|
||||||
|
wn.tracer(10)
|
||||||
|
|
||||||
|
t.up()
|
||||||
|
t.back(600)
|
||||||
|
t.down()
|
||||||
|
t.speed(0)
|
||||||
|
drawLsystem(t, inst, 25, 5) # draw the picture
|
||||||
|
# angle 25, segment length 5
|
||||||
|
wn.exitonclick()
|
||||||
|
|
||||||
|
main()
|
||||||
20
thinkcspy/Chapter-10-Exercises/Python-files/Problem3.py
Normal file
20
thinkcspy/Chapter-10-Exercises/Python-files/Problem3.py
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Runestone.Academy thinkcspy course
|
||||||
|
# Chapter 10
|
||||||
|
# Problem 3
|
||||||
|
|
||||||
|
myList = [76, 92.3, 'hello', True, 4, 76]
|
||||||
|
|
||||||
|
# Your code here
|
||||||
|
|
||||||
|
myList += ["apple"]
|
||||||
|
myList.insert(3, "cat")
|
||||||
|
myList.insert(0, 99)
|
||||||
|
print(myList)
|
||||||
|
|
||||||
|
print(myList.index("hello"))
|
||||||
|
print(myList.count(76))
|
||||||
|
|
||||||
|
myList.remove(76)
|
||||||
|
myList.pop(myList.index(True))
|
||||||
|
|
||||||
|
print(myList)
|
||||||
Loading…
Reference in a new issue