python 1
note to all programmers from other languages: indenting (using the TAB key) matters!
- install
- helloWorld
- addNumbers
- randoms
- headsTails
- post-testLoops
- pre-testLoops
- forLoops
- puttingItTogether
install
- download newest / latest python
- download pycharm community (free) edition EDIT: or just use IDLE (offline), repl.it or trinket (online), and skip these steps
- install both (python first), go with default settings when asked questions
- start pycharm, create new project
- choose location, find interpreter (where you installed python - should detect automatically)
- add a new python file, save it and give it a name
- try helloWorld script below, right-click run, or use run menu or shortcut key
- any issues use ^^find Edit Configurations... button
- ^^check if script path is correct
- ^^check if installed Python interpreter has been selected
helloWorld
print("hello world")
addNumbers
num1 = int(input("enter first number: ")) num2 = int(input("enter second number: ")) answer = num1 + num2 print("the answer is: " + str(answer))
randoms
import random print(random.randint(1,6)) #between 1 & 6 inclusive print(random.uniform(0,1)) #between 0 & 1, floating
headsTails
console based:
import random if(random.randint(1,2)==1): print("heads") else: print("tails")... or using a function:
import random def flipCoinFunc(): if(random.randint(1,2)==1): print("heads") else: print("tails") flipCoinFunc()... or as a switch / case statement for java / C# programmers:
import random def flipCoinFunc(x): return { 1: "heads", 2: "tails" }[x] temp = random.randint(1,2) print(flipCoinFunc(temp))
graphically:
import random import tkinter #for python 3, python 2 would have a capital T instead myWindow = tkinter.Tk() imgHeads = tkinter.PhotoImage(file="heads.gif") imgTails = tkinter.PhotoImage(file="tails.gif") def flipCoinFunc(event): if(random.randint(1,2)==1): resultLabel.configure(image = imgHeads) else: resultLabel.configure(image = imgTails) btnFlip = tkinter.Button(myWindow, text="click to flip", fg="magenta") btnFlip.bind("<ButtonPress>",flipCoinFunc) btnFlip.pack(side="top") resultLabel = tkinter.Label(image = imgHeads) resultLabel.pack(side="top") myWindow.title("my coin toss app") myWindow.geometry("300x300") myWindow.configure(background='salmon') myWindow.mainloop()
post-test loops
repeats 1 or more times, not good practise!count = 10 while True: print(count) count=count-1 if(count < 1): break; print("blastoff!")
pre-test loops
repeats 0 or more times, use when num of iterations unknown:count = 10 while (count >= 1): print(count) count=count-1 print("blastoff!")
for loops
for more controlled looping, when num of iterations are known:for look in [1,3,5,7,9]: print(look) #range(start,stop,step): for test in range(10,0,-2): print(test) for x in range(1, 4): #1 to 3 only for y in range(1, 4): print(x, y) for x in "camelCase": print(x)
putting it together
simulating a "coin toss simulator", that tests how long it takes to toss consecutive heads / tails:import random countHeads = 0 countTails = 0 exitLoop = 7 #number of heads or tails in a row prevFlip = 0 flip = 0 numberOfFlips = 0 while (countHeads < exitLoop) and (countTails < exitLoop): prevFlip = flip flip = random.randint(1,2); numberOfFlips += 1 print("{face}".format(face="heads" if flip is 1 else "tails")) if(flip == prevFlip and flip == 1): countHeads+=1 if(flip == prevFlip and flip == 2): countTails+=1 if(flip != prevFlip): if(flip==1): countHeads = 1 countTails = 0 if(flip==2): countHeads = 0 countTails = 1 print("number of flips: ", numberOfFlips)