diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem11.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem11.py new file mode 100644 index 0000000..1f2573f --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem11.py @@ -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)) \ No newline at end of file diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem12.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem12.py new file mode 100644 index 0000000..49fe370 --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem12.py @@ -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)) \ No newline at end of file diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem13.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem13.py new file mode 100644 index 0000000..f46d177 --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem13.py @@ -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)) \ No newline at end of file diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem14.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem14.py new file mode 100644 index 0000000..5f08f4b --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem14.py @@ -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')) \ No newline at end of file diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem15.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem15.py new file mode 100644 index 0000000..8d0ac71 --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem15.py @@ -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() \ No newline at end of file diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem16.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem16.py new file mode 100644 index 0000000..aa5a411 --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem16.py @@ -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() \ No newline at end of file diff --git a/thinkcspy/Chapter-10-Exercises/Python-files/Problem3.py b/thinkcspy/Chapter-10-Exercises/Python-files/Problem3.py new file mode 100644 index 0000000..991f7f6 --- /dev/null +++ b/thinkcspy/Chapter-10-Exercises/Python-files/Problem3.py @@ -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) \ No newline at end of file