Python Introduction Workshop: Difference between revisions

From Hackers & Designers
No edit summary
No edit summary
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Article
|MainNavigation=No
}}
[[File:Python meme.jpg|350px|]]


== Workshop ==
== Workshop ==
https://summer.hackersanddesigners.nl/451.txt


Please keep in mind that Python cares about whitespace (spaces, returns, etc...), if you just paste the code in, be aware of what spaces you are also pasting in... ;-)
Please keep in mind that Python cares about whitespace (spaces, returns, etc...), if you just paste the code in, be aware of what spaces you are also pasting in... ;-)
First alias python3 so you don't go nuts!  Server by default uses python 2, but for this workshop we will use python 3.
$ alias python=python3


Create a file
Create a file
Line 8: Line 18:


Add the following line
Add the following line
  print 'Hello World!'
  print('Hello World!')


Save the file and exit.  Ctrl+O, Ctrl+X
Save the file and exit.  Ctrl+O, Ctrl+X


Run the program.
Run the program.
  $ python myprog.py
  $ python3 myprog.py


Add a comment to the top of your program.  Comments are to help people read your program.
Add a comment to the top of your program.  Comments are to help people read your program.
Line 27: Line 37:
   
   
  # Print message w/ variable
  # Print message w/ variable
  print 'Hello ' + instr + '.'
  print('Hello ' + instr)


Run the program, this time with input.
Run the program, this time with input.
Line 52: Line 62:
   
   
   for line in sys.stdin:
   for line in sys.stdin:
     print line.strip()
     print(line.strip())


Run it.
Run it.
Line 59: Line 69:
That's a lot of lines, how many exactly?
That's a lot of lines, how many exactly?
  $ cat /pub/451.txt | python myprog2.py | wc -l
  $ cat /pub/451.txt | python myprog2.py | wc -l
Simplest loop.
while True:
  print("hello.")


Simple loop.
Simple loop.
  for i in range(0, 10):
  for i in range(0, 10):
   print i
   print("hello")


Let's store those lines in an array.
Let's store those lines in an array.
Line 71: Line 85:
   lines.append(line.strip())
   lines.append(line.strip())
   
   
  print 'Stored ' + str(len(lines)) + ' lines.'
  print('Stored ' + str(len(lines)) + ' lines.')
 
Run it.
$ cat /pub/451.txt | python myprog2.py


451 remixed via a function.  Add the following to the top of your program.
451 remixed via a function.  Add the following to the top of your program.
Line 78: Line 95:
   lines = reversed(lines)
   lines = reversed(lines)
   for line in lines:
   for line in lines:
     print line[::-1] # This is extended slice syntax. It works by doing [begin:end:step]
     print(line[::-1]) # This is extended slice syntax. It works by doing [begin:end:step]


Add the following to the end of your program.
Add the following to the end of your program.
Line 89: Line 106:


Try other splits.
Try other splits.
  print line[0:10]
  print(line[0:10])
  print line[10:15] + line[0:10]
  print(line[10:15] + line[0:10])
 
A more powerful remix.
$ python /pub/shaney.py /pub/451.txt
 
Scrape the internet into a file.
$ python /pub/scraper.py > internet.txt
 
Eat the internet w/ eat.py
 
import sys
def eat(lines):
  new_lines = []
  for line in lines:
    if len(line) > 0:
      new_line = line[0:len(line) - 1]
      print new_line
      new_lines.append(new_line)
  return new_lines
lines = []
for line in sys.stdin:
  lines.append(line.strip())
while len(lines) > 0:
  lines = eat(lines)
 
Run it.
$ cat internet.txt | python eat.py
 


----
----
Line 126: Line 113:


When he began implementing Python, Guido van Rossum was also reading the published scripts from “Monty Python’s Flying Circus”, a BBC comedy series from the 1970s. Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python.
When he began implementing Python, Guido van Rossum was also reading the published scripts from “Monty Python’s Flying Circus”, a BBC comedy series from the 1970s. Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python.
[[Category:Tools]]

Latest revision as of 19:47, 5 January 2020

MainNavigation No

Python meme.jpg

Workshop

https://summer.hackersanddesigners.nl/451.txt

Please keep in mind that Python cares about whitespace (spaces, returns, etc...), if you just paste the code in, be aware of what spaces you are also pasting in... ;-)

First alias python3 so you don't go nuts! Server by default uses python 2, but for this workshop we will use python 3.

$ alias python=python3

Create a file

$ nano myprog.py

Add the following line

print('Hello World!')

Save the file and exit. Ctrl+O, Ctrl+X

Run the program.

$ python3 myprog.py

Add a comment to the top of your program. Comments are to help people read your program.

# Program by [username]

Create a variable to store input into the program.

# Import adds a library (addition functionality) to your program
# sys is the system library
import sys

# Read from stdin into a variable called instr
instr = sys.stdin.readline()

# Print message w/ variable
print('Hello ' + instr)

Run the program, this time with input.

$ whoami | python myprog.py

Use the input to alter the output, before your print message add:

if instr == 'jbg':
  instr = 'Programmer'
else:
  instr = 'Writer'

Save and run.

It doesn't work! This is because there is actually a return character in the string. Change the following:

instr = sys.stdin.readline().strip()

Save and run.

$ whoami | python myprog.py
$ echo 'Ray Bradbury' | python myprog.py

Create a new program (myprog2.py) which loops through all the lines coming from stdin.

 import sys

 for line in sys.stdin:
   print(line.strip())

Run it.

$ cat /pub/451.txt | python myprog2.py

That's a lot of lines, how many exactly?

$ cat /pub/451.txt | python myprog2.py | wc -l

Simplest loop.

while True:
  print("hello.")

Simple loop.

for i in range(0, 10):
  print("hello")

Let's store those lines in an array.

import sys

lines = []
for line in sys.stdin:
  lines.append(line.strip())

print('Stored ' + str(len(lines)) + ' lines.')

Run it.

$ cat /pub/451.txt | python myprog2.py

451 remixed via a function. Add the following to the top of your program.

def remix(lines):
  lines = reversed(lines)
  for line in lines:
    print(line[::-1]) # This is extended slice syntax. It works by doing [begin:end:step]

Add the following to the end of your program.

remix(lines)

Run it.

$ cat /pub/451.txt | python myprog2.py | more

Try other splits.

print(line[0:10])
print(line[10:15] + line[0:10])

Why is it called Python?

When he began implementing Python, Guido van Rossum was also reading the published scripts from “Monty Python’s Flying Circus”, a BBC comedy series from the 1970s. Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python.