Merge remote-tracking branch 'balazs/master'

This commit is contained in:
Nico Schottelius 2020-05-29 17:02:54 +02:00
commit f670a9e540
5 changed files with 166 additions and 0 deletions

View File

@ -0,0 +1,44 @@
* Drills
** Take a look at how you used range . Look up the range function to understand it.
tldr, a "function" that generates a sequence of numbers:
class range(start, stop[, step]):
start
The value of the start parameter (or 0 if the parameter was not supplied)
stop
The value of the stop parameter
step
The value of the step parameter (or 1 if the parameter was not supplied)
-------
I found it among python 3.8.3 built-in functions.
but!
Turns out it's not a function after all!
It's an immutable sequence type.
"a range object will always take the same (small) amount of memory" ... "as it only stores the start, stop and step values" and generates numbers on the fly
note: similar in shell is: seq
source: https://docs.python.org/3/library/stdtypes.html#range
** Could you have avoided that for-loop entirely on line 22 and just assigned range(0,6) directly to elements?
Do you mean line 21 book? (typo)
Yes! Because range will generate a list that can be appended added as is.
** Find the Python documentation on lists and read about them. What other operations can you do to lists besides append?
extend, insert, remove, pop, clear, index, count, sort, reverse, copy
fascinating! programming is cool! you can do so much with it

View File

@ -0,0 +1,22 @@
#i = 0
numbers = []
def counter(i2, INC_BY):
i = 0
while i < i2 :
print(f"At the top i is {i}")
numbers.append(i)
i = i + INC_BY
print("Nums now:", numbers)
print(f"At the bottom i is {i}")
print("The numbers: ")
for num in numbers:
print(num)
counter(2, 2)

View File

@ -0,0 +1,6 @@
* Drills
** With what you know of the difference between these types of numbers, can you explain why the year 2010 in ”January 1, 2010,” really is 2010 and not 2009? (Hint: you cant pick years at random.)
What is this question? :/

View File

@ -0,0 +1,84 @@
from sys import exit
import time
def gold_room():
print("This room is full of gold. How much do you take?")
choice = input("> ")
if "0" in choice or "1" in choice:
how_much = int(choice)
else:
dead("Man, learn to type a number.")
if how_much < 50:
print("Nice, you're not greedy, you win!")
exit(0)
else:
dead("You greedy bastard!")
def bear_room():
print("There is bear here.")
print("The bear has a bunch of honey.")
print("The fat bear is in front of another door.")
print("How are you going to move the bear?")
bear_moved = False
while True:
choice = input("> ")
if choice == "take honey":
dead("The bear looks at you then slaps your face off.")
elif choice == "taunt bear" and not bear_moved:
print("The bear has moved from the door.")
print("You can go through it now.")
bear_moved = True
elif choice == "tea" and not bear_moved:
print("You have invited the bear for a tea.")
time.sleep(1)
print("The bear is happy and moved.")
bear_moved = True
elif choice == "taunt bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif choice == "open door" and bear_moved:
gold_room()
else:
print("I got no idea what that means.")
def cthulhu_room():
print("Here you see the great evil Cthulhu.")
print("He, it, whatever stares at you and you go insane.")
print("Do you flee for your life or eat your head?")
choice = input("> ")
if "flee" in choice:
start()
elif "head" in choice:
dead("Well that was tasty!")
else:
cthulhu_room()
def dead(why):
print(why, "Good job!")
exit(0)
def start():
print("You are in a dark room.")
print("There is a door to your right and left.")
print("Which one do you take?")
choice = input("> ")
if choice == "left":
bear_room()
elif choice == "right":
cthulhu_room()
else:
dead("You stumble around the room until you starve.")
start()

View File

@ -0,0 +1,10 @@
*Drills
** The gold_room has a weird way of getting you to type a number. What are all the bugs in this way of doing it? Can you make it better than what Ive written? Look at how int() works for clues.
Non greedy is less than 50 but only 1 and 0 qualify.
Nicer ways:
-> check for numbers
-> also check for None and All strings
-> sanitize input for int(), (int can take 2 variables)