Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
An Introduction to Python – Part II Dr. Nancy Warter-Perez Overview References Solution to Programming Workshop #1 If tests (PP Ch1, LP Ch 9) Loops (PP Ch1, LP Ch 10) Python Programming for the Absolute Beginner (PP) Learning Python (LP) for while Example amino acid search program Programming Workshop #2 Introduction to Python – Part II 2 Solution to Programming Workshop 1 # # # # # Write a Python program to compute the hydrophobicity of an amino acid Program to compute the hydrophobicity of an amino acid (solution only includes first 3 amino acids) Written by: Prof. Warter-Perez Date created: April 15, 2004 Last modified: hydro = {"A":1.8,"C":2.5,"D":-3.5} aa = raw_input ("Please enter amino acid: ") print "The hydrophobicity of %s is %f."% (aa, hydro[aa]) Introduction to Python – Part II 3 Make solution case insensitive # Program to compute the hydrophobicity of an amino acid # Written by: Prof. Warter-Perez # Date created: April 15, 2004 # Last modified: April 20, 2004 - made script case insensitive for # amino acids hydro = {"A":1.8,"C":2.5,"D":-3.5} aa = raw_input ("Please enter amino acid: ") aa = aa.upper() print "The hydrophobicity of %s is %f."% (aa, hydro[aa]) Introduction to Python – Part II 4 Python Basics - Comments Python comments # line comment Header comments #Description of program #Written by: #Date created: #Last Modified: Introduction to Python – Part II 5 Python Basics - Variables Python variables are not “declared”. To assign a variable, just type: identifier=literal Identifiers Have the following restrictions: Must start with a letter or underscore (_) Case sensitive Must consist of only letters, numbers or underscore Must not be a reserved word (LP pg 137) Have the following conventions: All uppercase letters are used for constants Variable names are meaningful – thus, often multi-word Convention 1: alignment_sequence Convention 2: AlignmentSequence Python specific conventions: Avoid _X, __X__, __X, _, (LP pg 138) Introduction to Python – Part II 6 Numbers Numbers Normal Integers –represent whole numbers Ex: 3, -7, 123, 76 Long Integers – unlimited size Ex: 9999999999999999999999L Floating-point – represent numbers with decimal places Ex: 1.2, 3.14159,3.14e-10 Octal and hexadecimal numbers Ex: O177, 0x9ff, Oxff Complex numbers Ex: 3+4j, 3.0+4.0j, 3J Introduction to Python – Part II 7 Python Basics – arithmetic operations Operators Example y=5; z=3 + add x=y+z x - subract x=y–z x * multiply x=y*z x / divide x=y/z x % modulus/remainder x = y % z x Introduction to Python – Part II = = = = = 8 2 15 1 2 8 Python Basics – arithmetic operations Operators << shift left >> shift right ** raise to power Example y=5; z=3 x = y << 1 x = 10 x = y >> 2 x = 1 x = y ** z x = 125 Introduction to Python – Part II 9 Python Basics – Relational and Logical Operators Relational operators == !=, <> > >= < <= equal not equal greater than greater than or equal less than less than or equal Logical operators and or not Introduction to Python – Part II and or not 10 Python Basics – Relational Operators Assume x = 1, y = 4, z = 14 Expression Value Interpretation x<y+z 1 True y == 2 * x + 3 0 False z <= x + y 0 False z>x 1 True x != y 1 True Introduction to Python – Part II 11 Python Basics – Logical Operators Assume x = 1, y = 4, z = 14 Expression Value Interpretation x<=1 and y==3 0 False x<= 1 or y==3 1 True not (x > 1) 1 True not x > 1 0 False not (x<=1 or y==3) 0 False Introduction to Python – Part II 12 Strings Enclosed in single or double quotes Ex: ‘Hello!’ , “Hello!”, “3.5”, “a”, ‘a’ Sequence of characters: mystring=“hello world!” mystring[0] -> “h” mystring[1] -> “e” mystring[2] -> “l” mystring[-1] -> “!” -1 is last, -2 next to last, etc… Introduction to Python – Part II 13 String operations mystring = “Hello World!” Expression Value Purpose len(mystring) 12 number of characters in mystring “hello”+“world” “helloworld” Concatenate strings “%s world”%“hello” “hello world” Format strings (like sprintf) “world” == “hello” “world” == “world” 0 or False 1 or True Test for equality “a” < “b” “b” < “a” 1 or True 0 or False Alphabetical ordering Introduction to Python – Part II 14 Strings (2) slicing: mystring = “spoon!” mystring[2:] -> “oon!” mystring[:3] -> “spo” #note last element is never included! mystring[1:3]-> “po” Many useful built-in functions mystring.upper() -> “SPOON!” mystring.replace(‘o’, ‘O’) -> “spOOn!” Introduction to Python – Part II 15 Strings (3) “%” operator: sort of “fill in the blanks” operation: mystring=“%s has %d marbles” % (“John”,35) “blanks” mystring -> “John has 35 marbles” %s %d,%i %f Values to put in blanks replace with string replace with integer replace with float Introduction to Python – Part II 16 Lists mylist=[“a”,”b”,3.58,”d”,4,0] mylist[0] mylist[2] a 3.58 Indexing mylist[-1] mylist[-2] 0 4 Negative indexing (counts from end) mylist[1:4] [“b”,3.58,”d”] Slicing (like strings) “b” in mylist “e” not in mylist 1 or True 1 or True mylist.append(8) [“a”,”b”,3.58,”d”,4,0,8] Introduction to Python – Part II Add to end of list 17 Tuples Tuples – sequence of values like lists, but cannot be changed after it is created mytuple=(1,”a”,”bc”,3,87.2) mytuple[2] -> “bc” mytuple[1]=“3” Error! Used when you want to pass several variables around at once Introduction to Python – Part II 18 Dictionaries Dictionaries – map ‘keys’ to ‘values’ like lists, but indices can be of any type Also, keys are in no particular order Eg: mydict={‘b’:3, ’a’:4, 75:2.85} mydict[‘b’] -> 3 mydict[75] -> 2.85 mydict[‘a’] -> 4 Introduction to Python – Part II 19 Dictionaries mydict={“r”:1,”g”:2,”y”:3.5,8.5:8,9:”nine”} mydict.keys() ['y', 8.5, 'r', 'g', 9] List of the keys mydict.values() [3.5, 8, 1, 2, 'nine'] List of the values mydict[“y”] 3.5 Value lookup mydict.has_key(“r”) True or 1 Check for keys mydict.update({“a”:75}) {8.5: 8, 'a': 75, 'r': 1, 'g': 2, 'y': 3.5, 9: 'nine'} Introduction to Python – Part II Add pairs to dictionary 20 Dictionaries – other considerations Slicing not allowed Referencing invalid key is an error: >>> mydict={8.5: 8, 'a': 75, 'r': 1, 'g': 2, 'y': 3.5, 9: 'nine'} >>> mydict["red"] Traceback (most recent call last): File "<interactive input>", line 1, in ? KeyError: 'red‘ Use mydict.get(“red”) instead, it returns None if key is not found Introduction to Python – Part II 21 Input/Output Function raw_input() designed to read a line of input from the user 1 optional argument: string to prompt user If int or float desired, simply convert string: int(mystring)->convert to int (if possible) float(mystring)->convert to float (if possible) >>> mystr=raw_input("Enter a string:") Enter a string:Hello World! >>> mystr 'Hello World!' Introduction to Python – Part II 22 Output Function print Prints each argument, followed by space After all arguments, prints newline Put comma after last arg to prevent newline “add” strings to avoid spaces print “a”,”b”,”c” abc Newline! print “a”,”b”,”c”, No abc Newline! print “a”+”b”+”c” No abc spaces! Introduction to Python – Part II 23 Output Example >>> print "hello","world";print "hello","again" hello world hello again >>> print "hello","world",;print "hello","again" hello world hello again >>> print "hello %s world" % "cold and cruel" hello cold and cruel world >>> print "hello","cold"+ " " + "and","cruel","world" hello cold and cruel world Introduction to Python – Part II 24 Python Basics – Relational and Logical Operators Relational operators == != > >= < <= equal not equal greater than greater than or equal less than less than or equal Logical operators and or not Introduction to Python – Part II and or not 25 if Statement if expression: action Example: a1 = 'A‘; a2 = 'C'; match = 0; if (a1 == a2) : match+=1; Introduction to Python – Part II 26 if-elif-else Statement if expression: action 1 elif expression: action 2 else : action 3 Example: a1 = 'A‘; a2 = 'C'; match = 0; gap = 0; if (a1 == a2) : match+=1; elif (a1 > a2): else: gap+=1; Introduction to Python – Part II 27 for Statement for var in list: action Sets var to each item in list and performs action range() function generates lists of numbers: range (5) -> [0,1,2,3,4] Example mylist=[“hello”,”hi”,”hey”,”!”]; for i in mylist: print i Iteration 1 prints: hello Iteration 2 prints: hi Iteration 3 prints: hey Iteration 4 prints: ! Introduction to Python – Part II 28 while Statement while expression: action Example x = 0; while x != 3: x = x + 1/ 2 Infinite loop! Iteration Iteration Iteration Iteration Introduction to Python – Part II 1: 2: 3: 4: x=0+1=1 x=1+1=2 x=2+1=3 don’t exec 29 Example: Amino Acid Search Write a program to count the number of occurrences of an amino acid in a sequence. The program should prompt the user for A sequence of amino acids (seq) The search amino acid (aa) The program should display the number of times the search amino acid (aa) occurred in the sequence (seq) Introduction to Python – Part II 30 Example: Amino Acid Search (2) #this program will calculate the number of occurrences of an amino acid in a #sequence #by Bryce Ready done=0 while (not done): sequence=raw_input("Please enter a sequence:"); aa=raw_input("Please enter the amino acid to look for:"); Introduction to Python – Part II 31 Example: Amino Acid Search (3) #compute the number of occurrences using for loop cnt=0 for i in sequence: if i == aa: cnt+=1 if cnt == 1: print "%s occurs in that sequence once" % aa else: print "%s occurs in that sequence %d times" % (aa, cnt) answer=raw_input("try again? [yn]") if answer == "n" or answer == "N": done = 1 Introduction to Python – Part II 32 Programming Workshop #2 Write a sliding window program to compute the %GC in a sequence of nucleotides. The program should prompt the user for The DNA sequence The window size (assume the window increment is 1) Introduction to Python – Part II 33