Actions

Difference between revisions of "Python for beginners"

From Algolit

(Created page with "== Literary Python for Beginners == === LETTER * WORD * SENTENCE === * Introduction to the objects string & list with their different attributes * uses the shell or integrat...")
 
(Literary Python for Beginners)
Line 11: Line 11:
  
 
>>>
 
>>>
 
  
 
** install python idle 2.7 – ways to interact with Python: shell + editor
 
** install python idle 2.7 – ways to interact with Python: shell + editor
Line 163: Line 162:
  
 
[[Anthology]]
 
[[Anthology]]
 
# Some Python vocabulary
 
## the string or string object is a MODULE in Python
 
 
# A MODULE simply is a file, which contains Python statements.
 
Normally among these there are:
 
* definition statements -> the execution of the module defines some functions
 
* class statements -> the execution of the module defines some classes.
 
A module may also contain names (variables) and other directly executable
 
Python statements.
 
# you can write your own definitions/functions and save them I a file that you can import into another python-file
 
# such a document is an external module, called at the beginning of a script using 'import name_module'
 
# CLASSES contain METHODS, a series of FUNCTIONS that are part of a class
 
# the string-module contains classes with functions that allow you to calculate the length of the sting, slice etc
 
 
# Anything in Python can be an OBJECT, because it can be assigned to a variable or can be an argument (input) for a function - OBJECT ORIENTED PROGRAMMING
 
 
# an ATTRIBUTE is is a way to move from one object to the other
 
# “Apply the power of the almighty dot” - objectname.attributename – and magic!
 
 
# !!! to know the attributes of an object: dir()
 
# This means the object has a method  called __dir__()
 
# dir() calls this method and prints the list of attributes
 
 
dir(letter)
 
 
# choose for example .endswith()
 
sentence = "This is so exciting!"
 
suffix = "ing!"
 
print sentence.endswith(suffix)
 
len(sentence)
 
print sentence.endswith(suffix,20) -> False
 
print sentence.endswith(suffix,16) -> True
 
print sentence.endswith(suffix,16,20) -> True
 
 
# Exercise: think of formula that gives TRUE for suffix 'is'
 
# a long string can be annotated using 3 """ a lot of words """
 
# if you have a very long string, you better use:
 
very_long_string = (
 
    "For a long time I used to go to bed early. Etc etc …."
 
  )
 
 
### From STRINGS to LISTS
 
 
# DISADVANTAGE fo STRINGS: they're immutable
 
# that is the reason you want to change your string into a list
 
sentence.split()
 
# and save it as a new variable
 
list_words = sentence.split()
 
 
# some of the attributes of string can be used for lists
 
# Exercise: which previously mentioned attributes function for lists?
 
 
# change a list
 
list_words[3] = "wtc25"
 
print list_words
 
 
# remove words
 
list_words[2:3] = []
 
note: list_words[2] = [] → this removes your 3rd element and replaces it by an empty sublist ('nested list')
 
 
# put back words
 
list_words[2:3] = ["so", "exciting"]
 
 
# you can shorten a list
 
list_words[-3:]
 
# and save the shortened list into a new variable – the old continues to exist
 
yezzzz = list_words[-3:]
 
 
# you can combine lists, group two in one
 
text = [list_words, yezzzz]
 
# and you can call an element of a sublist
 
word = text[1][2]
 
 
# you can concatenate lists, merge two into one
 
print  list_words + yezzzz
 
poem =  list_words + yezzzz
 
 
# you can add words to your list
 
poem.append("is")
 
print poem
 
 
# you can sort your list alphabetically
 
poem.sort()
 
 
 
 
# you transform your list into a string again
 
" ".join(poem)
 
# detail: the whitespace / try without
 
" ".join(poem) + "?"
 
 
# you can empty your list // we have a brand new sheet of paper!!
 
poem[:] = []
 
 
 
 
### LOOPS & CONDITIONS
 
 
# using scripts (modules)
 
# shell is ok to try out lines of code, but for longer bits we use script, or module
 
# save file as .py
 
#!/usr/bin/env python
 
# -*- coding: utf-8 -*-
 
 
 
# REMIX SONG using STRING, LIST and FOR, IN, IF, WHILE
 
 
# Prince, Purple Rain
 
song = (
 
“I never meant to cause you any sorrow\n
 
 
“I never meant to cause you any pain
 
\n”
 
“I only wanted to one time to see you laughing
 
\n”
 
“I only wanted to see you\n
 
 
“Laughing in the purple rain
 
.”
 
)
 
 
# transform string in list of words
 
song = song.split()
 
 
# double all words of list and print again as song
 
remix1 = [word*2 for word in song]
 
print(" ".join(remix1))
 
remix1 = remix1[:16]
 
print(" ".join(remix1))
 
 
## FOR, IN, IF
 
# rewrite the songs with the words that count more than 4 letters
 
remix2 = [word for word in song if len(word) <= 4]
 
remix2 = "°*@".join(remix2)
 
print(remix2)
 
 
# transform all letters of song in lowercaps
 
remix2 = remix2.lower()
 
 
# Capitalize the song and end with a dot // Hèhè, a new sentence!
 
print(remix2.capitalize() + ".")
 
 
# print a list of words of the song + next to each word its length
 
for word in song:
 
print(word, len(word))
 
 
 
 
 
# print a list of words of the song + next to each word its position in the sentence
 
for position in range(len(song)):
 
print position, song[position]
 
 
# rewrite song by copying words with r to the beginning of the song
 
 
for word in song[:]:  # Loop over a copy of the list
 
if "r" in word:
 
song.insert(0, word)
 
print("\n".join(song))
 
 
# create an Anaerobe of the song (remove all r's)
 
http://oulipo.net/fr/contraintes/anaerobie
 
song = [woord.replace("r","") if "r" in word else word for word in song]
 
print(song)
 
song = " \n".join(song)
 
 
# Exercise: remove letter 't' and rewrite song using capitals, comma's and hard returns
 
 
 
# WHILE
 
# A while loop statement in Python programming language repeatedly executes a target statement
 
as long as a given condition is true.
 
 
# Print your song 9 times
 
amount = 0
 
while (amount < 10):
 
  print(song)
 
  amount = amount + 1
 
else:
 
print "Python can also be a printing factory!"
 
 
# The reader can decide how many times she would like to see the song
 
nbr = raw_input("Give a number  :")
 
amount = 0
 
while (amount < 5):
 
  print gedicht
 
  amount = amount + 1
 
else:
 
print "Python can also be a printing factory!"
 
 
 
# write your text to a file
 
with open('song.txt', 'a') as f:
 
f.write("title song" + "\n" + song)
 
 
### TEXT
 
 
# you can print any text file
 
# note: in this case the text is in the same folder as the script, otherwise adapt path
 
with open('peter_rabbit.txt') as f:
 
    for line in f:
 
        print line
 
 
# now you can call operations on this text
 
new_text = []
 
with open('peter_rabbit.txt') as f:
 
    for line in f:
 
for word in line:
 
if len(word) >= 5:
 
newtext.append(word)
 
print(“ “.join(new_text))
 
 
 
# remove punctuation
 
import string
 
def remove_punct(f):
 
tokens = (' '.join(line.replace('\n', '') for line in f)).lower()
 
for c in string.punctuation:
 
tokens= tokens.replace(c," ")
 
return tokens
 
 
tokens = remove_punct(f)
 
 
# random choice & shuffle
 
from random import choice, shuffle
 
names = [peter, benjamin, flopsy, tod, tom, samuel, pie, ginger, moppet, nutkin, timmy, tailor, johnny, mice, tittlemouse, tiggy, rabbit, jemima, jeremy, robinson, pigling]
 
 
def select(names):
 
    name = choice(names)
 
    return name
 
 
mix = shuffle(names)
 
 
# proposal to publish an anthology as a pdf
 
* play with search for words in texts with certain suffixes from texts, remove letters
 
* write new text to file
 
 
* once all files are finished:
 
$ cat partfilename* > outputfilename
 
$ pandoc input.txt -o output.pdf
 

Revision as of 21:31, 14 November 2015

Literary Python for Beginners

LETTER * WORD * SENTENCE

  • Introduction to the objects string & list with their different attributes
  • uses the shell or integrated development environment
    • run python 2.7 – installed by default on all platforms

$ python

>>>

    • install python idle 2.7 – ways to interact with Python: shell + editor


# USING STRINGS

A string is a chain of characters / text and can contain any type of characters

A string is defined by " "

* write letter using STRING

>>> "a"

* write several letters

>>> "a, b, c, d"

* write combinations

>>> "a" + "b"

>>> 3

>>> "a" + "and" + "b"

>>> "a" + " and " + "b"

>>> "a" + "+ " + 3 + " is a3" ***

>>> 3*3

>>> "a" + "+ " + "3" + " is a3"

>>> 3 * "algolit" + " in wtc25"


    • Exercise: Write 'I write the alphabet 3 times.'

Note: there are always different possible solutions


* write string as variable

    • Avoids having to retype your string each time you use it
    • You can change values at any time of the writing process

>>> letter = "a"

>>> print letter

>>> word = "algolit"

>>> print word

>>> sentence = "I learn to read and write again at wtc25"

>>> print sentence, letter

    • Exercise: print your letter, word, sentence


* add punctuation

>>> print letter + " " + word + " " + sentence + "."

>>> print letter + "! " + word + "? " + sentence + "."

>>> letter = "i"

>>> print letter + "! " + word + "? " + sentence + "."

    • Exercise: change content of one of variables, over and over, see how result changes


* calculate!

    • the length of the string

>>> len(letter) >>> len(word) >>> len(sentence)


    • we can also consider the letter/word/sentence as fields or grids, in which each letter occupies a specific position

Note: computer starts to count from 0

>>> word[0] >>> word[3]

    • Exercise: what is the middle letter of your sentence?


* Slicing and concatenating strings in order to select letters & compose new words

    • find last letter

>>> zin[-1]

    • find last but one letter

>>> word[-2]

    • find first two letters

>>> word[0:2]

or

>>> word[:2]

    • find 3 letters in the middle

>>> word[2:5]

    • find from 3rd letter till end

>>> word[2:]

    • Exercise: If the word is "solidarity" is, what do you read here?

word[:5] + word[3:]

    • Exercise: rewrite the word as 'liquidity', using slicing


* write with capitals

>>> print letter.lower()

>>> print sentence.upper()


* write first word of sentence with capital letter

>>> print sentence.capitalize()


* note the difference

>>> sentence.title()

>>> word.title()


Some_Python_Vocabulary

Loops_and_conditions

Anthology