SlideShare a Scribd company logo
P2 2017 python_strings
FBW
03-10-2017
Wim Van Criekinge
Google Calendar
Louis Coussement
Bioinformatics.be
Overview
What is Python ?
Why Python 4 Bioinformatics ?
How to Python
IDE: Eclipse & PyDev / Athena
Code Sharing: Git(hub)
Strings
Regular expressions
Version 2.7 and 3.6 on athena.ugent.be
GitHub: Hosted GIT
• Largest open source git hosting site
• Public and private options
• User-centric rather than project-centric
• http://github.ugent.be (use your Ugent
login and password)
• URI (also on minerva)
– https://github.ugent.be/wvcrieki/Bioinfo
rmatics_2017.py.git
Control Structures
if condition:
statements
[elif condition:
statements] ...
else:
statements
while condition:
statements
for var in sequence:
statements
break
continue
range
 The range function specifies a range of integers:
 range(start, stop) - the integers between start (inclusive)
and stop (exclusive)
 It can also accept a third value specifying the change between values.
 range(start, stop, step) - the integers between start (inclusive)
and stop (exclusive) by step
 Example:
for x in range(5, 0, -1):
print x
print "Blastoff!"
Output:
5
4
3
2
1
Blastoff!
Grouping Indentation
In Python:
for i in range(20):
if i%3 == 0:
print (i)
if i%5 == 0:
print ("Bingo!”)
print ("---”)
0
Bingo!
---
---
---
3
---
---
---
6
---
---
---
9
---
---
---
12
---
---
---
15
Bingo!
---
---
---
18
---
---
while
 while loop: Executes a group of statements as long as a
condition is True.
 good for indefinite loops (repeat an unknown number of times)
 Syntax:
while condition:
statements
 Example:
number = 1
while number < 200:
print number,
number = number * 2
 Output:
1 2 4 8 16 32 64 128
if
if statement: Executes a group of
statements only if a certain condition
is true. Otherwise, the statements are
skipped.
Syntax:
if condition:
statements
Example:
gpa = 3.4
if gpa > 2.0:
print "Your application is accepted."
if/else
 if/else statement: Executes one block of statements if a certain
condition is True, and a second block of statements if it is False.
 Syntax:
if condition:
statements
else:
statements
 Example:
gpa = 1.4
if gpa > 2.0:
print "Welcome to Mars University!"
else:
print "Your application is denied."
 Multiple conditions can be chained with elif ("else if"):
if condition:
statements
elif condition:
statements
else:
statements
Logic
 Many logical expressions use relational operators:
 Logical expressions can be combined with logical operators:
Operator Example Result
and 9 != 6 and 2 < 3 True
or 2 == 3 or -1 < 5 True
not not 7 > 0 False
Operator Meaning Example Result
== equals 1 + 1 == 2 True
!= does not equal 3.2 != 2.5 True
< less than 10 < 5 False
> greater than 10 > 5 True
<= less than or equal to 126 <= 100 False
>= greater than or equal to 5.0 >= 5.0 True
import random
print ("Let's calculate Pin")
c=0
maxx=1000
for l in range(1,maxx):
# print ("We're generating point %d" % (l))
x = random.uniform(0,1)
y = random.uniform(0,1)
# print ("(" + str(x) + "," + str(y) + ")",end="n")
r = x*x + y*y
# print ("r = " + str(r))
if r < 1:
# print ("In the circle",end="n")
c+=1
p = float(c)*4/float(l)
print ("Pi estimate after " + str(maxx) + " iterations = " + str(p) + "n")
PI-thon.py
Introduction
Buffon's Needle is one of the oldest problems
in the field of geometrical probability. It
was first stated in 1777. It involves
dropping a needle on a lined sheet of paper
and determining the probability of the
needle crossing one of the lines on the page.
The remarkable result is that the probability
is directly related to the value of pi.
https://www.youtube.com/watch?v=Vws1jvM
bs64&feature=youtu.be
Python Videos
http://python.org/
- documentation, tutorials, beginners guide, core
distribution, ...
Books include:
 Learning Python by Mark Lutz
 Python Essential Reference by David Beazley
 Python Cookbook, ed. by Martelli, Ravenscroft and
Ascher
Overview
What is Python ?
Why Python 4 Bioinformatics ?
How to Python
IDE: Eclipse & PyDev / Athena
Code Sharing: Git(hub)
Strings
 string: A sequence of text characters in a program.
 Strings start and end with quotation mark " or apostrophe ' characters.
 Examples:
"hello"
"This is a string"
"This, too, is a string. It can be very long!"
 A string may not span across multiple lines or contain a " character.
"This is not
a legal String."
"This is not a "legal" String either."
 A string can represent characters by preceding them with a backslash.
 t tab character
 n new line character
 " quotation mark character
  backslash character
 Example: "HellottherenHow are you?"
Strings
Indexes
 Characters in a string are numbered with indexes starting at 0:
 Example:
name = "P. Diddy"
 Accessing an individual character of a string:
variableName [ index ]
 Example:
print name, "starts with", name[0]
Output:
P. Diddy starts with P
index 0 1 2 3 4 5 6 7
character P . D i d d y
Strings
• "hello"+"world" "helloworld" # concatenation
• "hello"*3 "hellohellohello" # repetition
• "hello"[0] "h" # indexing
• "hello"[-1] "o" # (from end)
• "hello"[1:4] "ell" # slicing
• len("hello") 5 # size
• "hello" < "jello" 1 # comparison
• "e" in "hello" 1 # search
• "escapes: n etc, 033 etc, if etc"
• 'single quotes' """triple quotes""" r"raw strings”
• "hello"[1:4:-1] "olleh” #
reversed
String properties
 len(string) - number of characters in a string
(including spaces)
 str.lower(string) - lowercase version of a string
 str.upper(string) - uppercase version of a string
 Example:
name = "Martin Douglas Stepp"
length = len(name)
big_name = str.upper(name)
print big_name, "has", length,
"characters"
Output:
MARTIN DOUGLAS STEPP has 20 characters
a.replace
Text processing
 text processing: Examining, editing, formatting
text.
 often uses loops that examine the characters of a string
one by one
 A for loop can examine each character in a string
in sequence.
 Example:
for c in "booyah":
print c
Output:
b
o
o
y
a
h
Strings and numbers
 ord(text) - converts a string into a number.
 Example: ord("a") is 97, ord("b") is 98, ...
 Characters map to numbers using standardized mappings such
as ASCII and Unicode.
 chr(number) - converts a number into a string.
 Example: chr(99) is "c"
 Exercise: Write a program that performs a rotation cypher.
 e.g. "Attack" when rotated by 1 becomes "buubdl"
Lists
• Flexible arrays, not Lisp-like linked
lists
• a = [99, "bottles of beer", ["on", "the",
"wall"]]
• Same operators as for strings
• a+b, a*3, a[0], a[-1], a[1:], len(a)
• Item and slice assignment
• a[0] = 98
• a[1:2] = ["bottles", "of", "beer"]
-> [98, "bottles", "of", "beer", ["on", "the", "wall"]]
• del a[-1] # -> [98, "bottles", "of", "beer"]
More List Operations
>>> a = range(5) # [0,1,2,3,4]
>>> a.append(5) # [0,1,2,3,4,5]
>>> a.pop() # [0,1,2,3,4]
>>> a.insert(0, 42) # [42,0,1,2,3,4]
>>> a.pop(0) # [0,1,2,3,4]
>>> a.reverse() # [4,3,2,1,0]
>>> a.sort() # [0,1,2,3,4]
Dictionaries
• Hash tables, "associative arrays"
• d = {"duck": "eend", "water": "water"}
• Lookup:
• d["duck"] -> "eend"
• d["back"] # raises KeyError exception
• Delete, insert, overwrite:
• del d["water"] # {"duck": "eend", "back": "rug"}
• d["back"] = "rug" # {"duck": "eend", "back":
"rug"}
• d["duck"] = "duik" # {"duck": "duik", "back":
"rug"}
More Dictionary Ops
• Keys, values, items:
• d.keys() -> ["duck", "back"]
• d.values() -> ["duik", "rug"]
• d.items() -> [("duck","duik"),
("back","rug")]
• Presence check:
• d.has_key("duck") -> 1; d.has_key("spam") -
> 0
• Values of any type; keys almost any
• {"name":"Guido", "age":43,
("hello","world"):1,
42:"yes", "flag": ["red","white","blue"]}
Dictionary Details
• Keys must be immutable:
– numbers, strings, tuples of immutables
• these cannot be changed after creation
– reason is hashing (fast lookup technique)
– not lists or other dictionaries
• these types of objects can be changed "in
place"
– no restrictions on values
• Keys will be listed in arbitrary order
– again, because of hashing
Find the answer in ultimate-sequence.txt
>ultimate-sequence
ACTCGTTATGATATTTTTTTTGAACGTGAAAATACT
TTTCGTGCTATGGAAGGACTCGTTATCGTGAAGT
TGAACGTTCTGAATGTATGCCTCTTGAAATGGA
AAATACTCATTGTTTATCTGAAATTTGAATGGGA
ATTTTATCTACAATGTTTTATTCTTACAGAACAT
TAAATTGTGTTATGTTTCATTTCACATTTTAGTA
GTTTTTTCAGTGAAAGCTTGAAAACCACCAAGA
AGAAAAGCTGGTATGCGTAGCTATGTATATATA
AAATTAGATTTTCCACAAAAAATGATCTGATAA
ACCTTCTCTGTTGGCTCCAAGTATAAGTACGAAA
AGAAATACGTTCCCAAGAATTAGCTTCATGAGT
AAGAAGAAAAGCTGGTATGCGTAGCTATGTATA
TATAAAATTAGATTTTCCACAAAAAATGATCTG
ATAA
Oefening
AA1 =
{'UUU':'F','UUC':'F','UUA':'L','UUG':'L','UCU':'S','
UCC':'S','UCA':'S','UCG':'S','UAU':'Y','UAC':'Y','UA
A':'*','UAG':'*','UGU':'C','UGC':'C','UGA':'*','UGG':
'W','CUU':'L','CUC':'L','CUA':'L','CUG':'L','CCU':'P',
'CCC':'P','CCA':'P','CCG':'P','CAU':'H','CAC':'H','CA
A':'Q','CAG':'Q','CGU':'R','CGC':'R','CGA':'R','CGG'
:'R','AUU':'I','AUC':'I','AUA':'I','AUG':'M','ACU':'T','
ACC':'T','ACA':'T','ACG':'T','AAU':'N','AAC':'N','AAA'
:'K','AAG':'K','AGU':'S','AGC':'S','AGA':'R','AGG':'R',
'GUU':'V','GUC':'V','GUA':'V','GUG':'V','GCU':'A','G
CC':'A','GCA':'A','GCG':'A','GAU':'D','GAC':'D','GA
A':'E','GAG':'E','GGU':'G','GGC':'G','GGA':'G','GGG
':'G' }
Dictionary

More Related Content

What's hot (13)

PDF
Python programming : List and tuples
Emertxe Information Technologies Pvt Ltd
 
PDF
Артём Акуляков - F# for Data Analysis
SpbDotNet Community
 
PDF
Python 2.5 reference card (2009)
gekiaruj
 
PDF
Beginning Haskell, Dive In, Its Not That Scary!
priort
 
PDF
Beginners python cheat sheet - Basic knowledge
O T
 
PDF
A tour of Python
Aleksandar Veselinovic
 
PDF
02 arrays
Rajan Gautam
 
PDF
The Ring programming language version 1.8 book - Part 29 of 202
Mahmoud Samir Fayed
 
PDF
Kotlin, Spek and tests
intive
 
PDF
Python_ 3 CheatSheet
Dr. Volkan OBAN
 
PDF
The Ring programming language version 1.7 book - Part 26 of 196
Mahmoud Samir Fayed
 
PPTX
Presentation more c_programmingcharacter_and_string_handling_
KarthicaMarasamy
 
PDF
R for you
Andreas Chandra
 
Python programming : List and tuples
Emertxe Information Technologies Pvt Ltd
 
Артём Акуляков - F# for Data Analysis
SpbDotNet Community
 
Python 2.5 reference card (2009)
gekiaruj
 
Beginning Haskell, Dive In, Its Not That Scary!
priort
 
Beginners python cheat sheet - Basic knowledge
O T
 
A tour of Python
Aleksandar Veselinovic
 
02 arrays
Rajan Gautam
 
The Ring programming language version 1.8 book - Part 29 of 202
Mahmoud Samir Fayed
 
Kotlin, Spek and tests
intive
 
Python_ 3 CheatSheet
Dr. Volkan OBAN
 
The Ring programming language version 1.7 book - Part 26 of 196
Mahmoud Samir Fayed
 
Presentation more c_programmingcharacter_and_string_handling_
KarthicaMarasamy
 
R for you
Andreas Chandra
 

Viewers also liked (6)

PDF
Bio ontologies and semantic technologies
Prof. Wim Van Criekinge
 
PPTX
P1 2017 python
Prof. Wim Van Criekinge
 
PPTX
P4 2017 io
Prof. Wim Van Criekinge
 
PPTX
T5 2017 database_searching_v_upload
Prof. Wim Van Criekinge
 
PPTX
P1 3 2017_python_exercises
Prof. Wim Van Criekinge
 
Bio ontologies and semantic technologies
Prof. Wim Van Criekinge
 
P1 2017 python
Prof. Wim Van Criekinge
 
T5 2017 database_searching_v_upload
Prof. Wim Van Criekinge
 
P1 3 2017_python_exercises
Prof. Wim Van Criekinge
 
Ad

Similar to P2 2017 python_strings (20)

PPTX
2015 bioinformatics python_strings_wim_vancriekinge
Prof. Wim Van Criekinge
 
PPTX
Python Workshop - Learn Python the Hard Way
Utkarsh Sengar
 
PPTX
P3 2018 python_regexes
Prof. Wim Van Criekinge
 
PPTX
2016 bioinformatics i_python_part_2_strings_wim_vancriekinge
Prof. Wim Van Criekinge
 
PPT
python fundamental for beginner course .ppt
samuelmegerssa1
 
PPTX
GE8151 Problem Solving and Python Programming
Muthu Vinayagam
 
PDF
Ruby Language - A quick tour
aztack
 
PPTX
Python
MeHak Gulati
 
PPTX
CoderDojo: Intermediate Python programming course
Alexander Galkin
 
PDF
Happy Go Programming
Lin Yo-An
 
PPTX
Basic Python Programming: Part 01 and Part 02
Fariz Darari
 
PDF
AmI 2015 - Python basics
Luigi De Russis
 
PDF
Introduction to Python
UC San Diego
 
PPTX
C-Arrays & Strings (computer programming).pptx
yusuph2410
 
PPTX
Python programming workshop
BAINIDA
 
PPTX
Introduction to python programming 1
Giovanni Della Lunga
 
PDF
The Ring programming language version 1.5.2 book - Part 24 of 181
Mahmoud Samir Fayed
 
PDF
Introduction to python
Ahmed Salama
 
PDF
Introduction to Python for Plone developers
Jim Roepcke
 
2015 bioinformatics python_strings_wim_vancriekinge
Prof. Wim Van Criekinge
 
Python Workshop - Learn Python the Hard Way
Utkarsh Sengar
 
P3 2018 python_regexes
Prof. Wim Van Criekinge
 
2016 bioinformatics i_python_part_2_strings_wim_vancriekinge
Prof. Wim Van Criekinge
 
python fundamental for beginner course .ppt
samuelmegerssa1
 
GE8151 Problem Solving and Python Programming
Muthu Vinayagam
 
Ruby Language - A quick tour
aztack
 
Python
MeHak Gulati
 
CoderDojo: Intermediate Python programming course
Alexander Galkin
 
Happy Go Programming
Lin Yo-An
 
Basic Python Programming: Part 01 and Part 02
Fariz Darari
 
AmI 2015 - Python basics
Luigi De Russis
 
Introduction to Python
UC San Diego
 
C-Arrays & Strings (computer programming).pptx
yusuph2410
 
Python programming workshop
BAINIDA
 
Introduction to python programming 1
Giovanni Della Lunga
 
The Ring programming language version 1.5.2 book - Part 24 of 181
Mahmoud Samir Fayed
 
Introduction to python
Ahmed Salama
 
Introduction to Python for Plone developers
Jim Roepcke
 
Ad

More from Prof. Wim Van Criekinge (20)

PPTX
2020 02 11_biological_databases_part1
Prof. Wim Van Criekinge
 
PPTX
2019 03 05_biological_databases_part5_v_upload
Prof. Wim Van Criekinge
 
PPTX
2019 03 05_biological_databases_part4_v_upload
Prof. Wim Van Criekinge
 
PPTX
2019 03 05_biological_databases_part3_v_upload
Prof. Wim Van Criekinge
 
PPTX
2019 02 21_biological_databases_part2_v_upload
Prof. Wim Van Criekinge
 
PPTX
2019 02 12_biological_databases_part1_v_upload
Prof. Wim Van Criekinge
 
PPTX
P7 2018 biopython3
Prof. Wim Van Criekinge
 
PPTX
P6 2018 biopython2b
Prof. Wim Van Criekinge
 
PPTX
P4 2018 io_functions
Prof. Wim Van Criekinge
 
PPTX
T1 2018 bioinformatics
Prof. Wim Van Criekinge
 
PPTX
P1 2018 python
Prof. Wim Van Criekinge
 
PDF
Bio ontologies and semantic technologies[2]
Prof. Wim Van Criekinge
 
PPTX
2018 05 08_biological_databases_no_sql
Prof. Wim Van Criekinge
 
PPTX
2018 03 27_biological_databases_part4_v_upload
Prof. Wim Van Criekinge
 
PPTX
2018 03 20_biological_databases_part3
Prof. Wim Van Criekinge
 
PPTX
2018 02 20_biological_databases_part2_v_upload
Prof. Wim Van Criekinge
 
PPTX
2018 02 20_biological_databases_part1_v_upload
Prof. Wim Van Criekinge
 
PPTX
P7 2017 biopython3
Prof. Wim Van Criekinge
 
PPTX
P6 2017 biopython2
Prof. Wim Van Criekinge
 
PPTX
Van criekinge 2017_11_13_rodebiotech
Prof. Wim Van Criekinge
 
2020 02 11_biological_databases_part1
Prof. Wim Van Criekinge
 
2019 03 05_biological_databases_part5_v_upload
Prof. Wim Van Criekinge
 
2019 03 05_biological_databases_part4_v_upload
Prof. Wim Van Criekinge
 
2019 03 05_biological_databases_part3_v_upload
Prof. Wim Van Criekinge
 
2019 02 21_biological_databases_part2_v_upload
Prof. Wim Van Criekinge
 
2019 02 12_biological_databases_part1_v_upload
Prof. Wim Van Criekinge
 
P7 2018 biopython3
Prof. Wim Van Criekinge
 
P6 2018 biopython2b
Prof. Wim Van Criekinge
 
P4 2018 io_functions
Prof. Wim Van Criekinge
 
T1 2018 bioinformatics
Prof. Wim Van Criekinge
 
P1 2018 python
Prof. Wim Van Criekinge
 
Bio ontologies and semantic technologies[2]
Prof. Wim Van Criekinge
 
2018 05 08_biological_databases_no_sql
Prof. Wim Van Criekinge
 
2018 03 27_biological_databases_part4_v_upload
Prof. Wim Van Criekinge
 
2018 03 20_biological_databases_part3
Prof. Wim Van Criekinge
 
2018 02 20_biological_databases_part2_v_upload
Prof. Wim Van Criekinge
 
2018 02 20_biological_databases_part1_v_upload
Prof. Wim Van Criekinge
 
P7 2017 biopython3
Prof. Wim Van Criekinge
 
P6 2017 biopython2
Prof. Wim Van Criekinge
 
Van criekinge 2017_11_13_rodebiotech
Prof. Wim Van Criekinge
 

Recently uploaded (20)

PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPTX
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
PPTX
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PDF
Horarios de distribución de agua en julio
pegazohn1978
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PPTX
GRADE-3-PPT-EVE-2025-ENG-Q1-LESSON-1.pptx
EveOdrapngimapNarido
 
PPTX
HUMAN RESOURCE MANAGEMENT: RECRUITMENT, SELECTION, PLACEMENT, DEPLOYMENT, TRA...
PRADEEP ABOTHU
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
PDF
The Different Types of Non-Experimental Research
Thelma Villaflores
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
Horarios de distribución de agua en julio
pegazohn1978
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
Dimensions of Societal Planning in Commonism
StefanMz
 
GRADE-3-PPT-EVE-2025-ENG-Q1-LESSON-1.pptx
EveOdrapngimapNarido
 
HUMAN RESOURCE MANAGEMENT: RECRUITMENT, SELECTION, PLACEMENT, DEPLOYMENT, TRA...
PRADEEP ABOTHU
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
The Different Types of Non-Experimental Research
Thelma Villaflores
 

P2 2017 python_strings

  • 5. Overview What is Python ? Why Python 4 Bioinformatics ? How to Python IDE: Eclipse & PyDev / Athena Code Sharing: Git(hub) Strings Regular expressions
  • 6. Version 2.7 and 3.6 on athena.ugent.be
  • 7. GitHub: Hosted GIT • Largest open source git hosting site • Public and private options • User-centric rather than project-centric • http://github.ugent.be (use your Ugent login and password) • URI (also on minerva) – https://github.ugent.be/wvcrieki/Bioinfo rmatics_2017.py.git
  • 8. Control Structures if condition: statements [elif condition: statements] ... else: statements while condition: statements for var in sequence: statements break continue
  • 9. range  The range function specifies a range of integers:  range(start, stop) - the integers between start (inclusive) and stop (exclusive)  It can also accept a third value specifying the change between values.  range(start, stop, step) - the integers between start (inclusive) and stop (exclusive) by step  Example: for x in range(5, 0, -1): print x print "Blastoff!" Output: 5 4 3 2 1 Blastoff!
  • 10. Grouping Indentation In Python: for i in range(20): if i%3 == 0: print (i) if i%5 == 0: print ("Bingo!”) print ("---”) 0 Bingo! --- --- --- 3 --- --- --- 6 --- --- --- 9 --- --- --- 12 --- --- --- 15 Bingo! --- --- --- 18 --- ---
  • 11. while  while loop: Executes a group of statements as long as a condition is True.  good for indefinite loops (repeat an unknown number of times)  Syntax: while condition: statements  Example: number = 1 while number < 200: print number, number = number * 2  Output: 1 2 4 8 16 32 64 128
  • 12. if if statement: Executes a group of statements only if a certain condition is true. Otherwise, the statements are skipped. Syntax: if condition: statements Example: gpa = 3.4 if gpa > 2.0: print "Your application is accepted."
  • 13. if/else  if/else statement: Executes one block of statements if a certain condition is True, and a second block of statements if it is False.  Syntax: if condition: statements else: statements  Example: gpa = 1.4 if gpa > 2.0: print "Welcome to Mars University!" else: print "Your application is denied."  Multiple conditions can be chained with elif ("else if"): if condition: statements elif condition: statements else: statements
  • 14. Logic  Many logical expressions use relational operators:  Logical expressions can be combined with logical operators: Operator Example Result and 9 != 6 and 2 < 3 True or 2 == 3 or -1 < 5 True not not 7 > 0 False Operator Meaning Example Result == equals 1 + 1 == 2 True != does not equal 3.2 != 2.5 True < less than 10 < 5 False > greater than 10 > 5 True <= less than or equal to 126 <= 100 False >= greater than or equal to 5.0 >= 5.0 True
  • 15. import random print ("Let's calculate Pin") c=0 maxx=1000 for l in range(1,maxx): # print ("We're generating point %d" % (l)) x = random.uniform(0,1) y = random.uniform(0,1) # print ("(" + str(x) + "," + str(y) + ")",end="n") r = x*x + y*y # print ("r = " + str(r)) if r < 1: # print ("In the circle",end="n") c+=1 p = float(c)*4/float(l) print ("Pi estimate after " + str(maxx) + " iterations = " + str(p) + "n")
  • 16. PI-thon.py Introduction Buffon's Needle is one of the oldest problems in the field of geometrical probability. It was first stated in 1777. It involves dropping a needle on a lined sheet of paper and determining the probability of the needle crossing one of the lines on the page. The remarkable result is that the probability is directly related to the value of pi. https://www.youtube.com/watch?v=Vws1jvM bs64&feature=youtu.be
  • 17. Python Videos http://python.org/ - documentation, tutorials, beginners guide, core distribution, ... Books include:  Learning Python by Mark Lutz  Python Essential Reference by David Beazley  Python Cookbook, ed. by Martelli, Ravenscroft and Ascher
  • 18. Overview What is Python ? Why Python 4 Bioinformatics ? How to Python IDE: Eclipse & PyDev / Athena Code Sharing: Git(hub) Strings
  • 19.  string: A sequence of text characters in a program.  Strings start and end with quotation mark " or apostrophe ' characters.  Examples: "hello" "This is a string" "This, too, is a string. It can be very long!"  A string may not span across multiple lines or contain a " character. "This is not a legal String." "This is not a "legal" String either."  A string can represent characters by preceding them with a backslash.  t tab character  n new line character  " quotation mark character  backslash character  Example: "HellottherenHow are you?" Strings
  • 20. Indexes  Characters in a string are numbered with indexes starting at 0:  Example: name = "P. Diddy"  Accessing an individual character of a string: variableName [ index ]  Example: print name, "starts with", name[0] Output: P. Diddy starts with P index 0 1 2 3 4 5 6 7 character P . D i d d y
  • 21. Strings • "hello"+"world" "helloworld" # concatenation • "hello"*3 "hellohellohello" # repetition • "hello"[0] "h" # indexing • "hello"[-1] "o" # (from end) • "hello"[1:4] "ell" # slicing • len("hello") 5 # size • "hello" < "jello" 1 # comparison • "e" in "hello" 1 # search • "escapes: n etc, 033 etc, if etc" • 'single quotes' """triple quotes""" r"raw strings” • "hello"[1:4:-1] "olleh” # reversed
  • 22. String properties  len(string) - number of characters in a string (including spaces)  str.lower(string) - lowercase version of a string  str.upper(string) - uppercase version of a string  Example: name = "Martin Douglas Stepp" length = len(name) big_name = str.upper(name) print big_name, "has", length, "characters" Output: MARTIN DOUGLAS STEPP has 20 characters a.replace
  • 23. Text processing  text processing: Examining, editing, formatting text.  often uses loops that examine the characters of a string one by one  A for loop can examine each character in a string in sequence.  Example: for c in "booyah": print c Output: b o o y a h
  • 24. Strings and numbers  ord(text) - converts a string into a number.  Example: ord("a") is 97, ord("b") is 98, ...  Characters map to numbers using standardized mappings such as ASCII and Unicode.  chr(number) - converts a number into a string.  Example: chr(99) is "c"  Exercise: Write a program that performs a rotation cypher.  e.g. "Attack" when rotated by 1 becomes "buubdl"
  • 25. Lists • Flexible arrays, not Lisp-like linked lists • a = [99, "bottles of beer", ["on", "the", "wall"]] • Same operators as for strings • a+b, a*3, a[0], a[-1], a[1:], len(a) • Item and slice assignment • a[0] = 98 • a[1:2] = ["bottles", "of", "beer"] -> [98, "bottles", "of", "beer", ["on", "the", "wall"]] • del a[-1] # -> [98, "bottles", "of", "beer"]
  • 26. More List Operations >>> a = range(5) # [0,1,2,3,4] >>> a.append(5) # [0,1,2,3,4,5] >>> a.pop() # [0,1,2,3,4] >>> a.insert(0, 42) # [42,0,1,2,3,4] >>> a.pop(0) # [0,1,2,3,4] >>> a.reverse() # [4,3,2,1,0] >>> a.sort() # [0,1,2,3,4]
  • 27. Dictionaries • Hash tables, "associative arrays" • d = {"duck": "eend", "water": "water"} • Lookup: • d["duck"] -> "eend" • d["back"] # raises KeyError exception • Delete, insert, overwrite: • del d["water"] # {"duck": "eend", "back": "rug"} • d["back"] = "rug" # {"duck": "eend", "back": "rug"} • d["duck"] = "duik" # {"duck": "duik", "back": "rug"}
  • 28. More Dictionary Ops • Keys, values, items: • d.keys() -> ["duck", "back"] • d.values() -> ["duik", "rug"] • d.items() -> [("duck","duik"), ("back","rug")] • Presence check: • d.has_key("duck") -> 1; d.has_key("spam") - > 0 • Values of any type; keys almost any • {"name":"Guido", "age":43, ("hello","world"):1, 42:"yes", "flag": ["red","white","blue"]}
  • 29. Dictionary Details • Keys must be immutable: – numbers, strings, tuples of immutables • these cannot be changed after creation – reason is hashing (fast lookup technique) – not lists or other dictionaries • these types of objects can be changed "in place" – no restrictions on values • Keys will be listed in arbitrary order – again, because of hashing
  • 30. Find the answer in ultimate-sequence.txt >ultimate-sequence ACTCGTTATGATATTTTTTTTGAACGTGAAAATACT TTTCGTGCTATGGAAGGACTCGTTATCGTGAAGT TGAACGTTCTGAATGTATGCCTCTTGAAATGGA AAATACTCATTGTTTATCTGAAATTTGAATGGGA ATTTTATCTACAATGTTTTATTCTTACAGAACAT TAAATTGTGTTATGTTTCATTTCACATTTTAGTA GTTTTTTCAGTGAAAGCTTGAAAACCACCAAGA AGAAAAGCTGGTATGCGTAGCTATGTATATATA AAATTAGATTTTCCACAAAAAATGATCTGATAA ACCTTCTCTGTTGGCTCCAAGTATAAGTACGAAA AGAAATACGTTCCCAAGAATTAGCTTCATGAGT AAGAAGAAAAGCTGGTATGCGTAGCTATGTATA TATAAAATTAGATTTTCCACAAAAAATGATCTG ATAA Oefening