# Week 1 # # TA: Francis Hsu # Email: fahsu@ucdavis.edu # Website: http://wwwcsif.cs.ucdavis.edu/~cs145t # Office Hours: 3104 Kemper, Tue 3-4:30 Wed 3-4:30 ## Python Introduction ## ###################################################################### # Numbers 1/2 # integer division 1/2.0 # float division math.sqrt(42) # remember to import math first 2**2**2**2**2 # almost a 20,000 digit number ###################################################################### # Strings s = "the mind is a terrible thing to waste" s.index("waste") s[32] s[32:] # slicing s[-5:] s[:-5] s[32] = "t" # error l = list(s) # list conversion l[32] = "t" s = ''.join(l) ###################################################################### # Lists x = [ 2 ] y = range(10) z = ['moo'] * 3 # multiply lists x + y + z # add lists x.append(4) # lists are mutable x.pop() x.extend([3,1,4]) x.sort() x.reverse() x[2:] = x[0:] del x[0:2] x[0] = x[:] # nested lists ###################################################################### # Tuples x = tuple(range(5)) x[0] = 1 # error ###################################################################### # Dictionaries courses = {'140': 'prog lang', '142': 'compilers'} '142' in courses courses.keys() courses['145'] = 'script lang' courses.get('145') ###################################################################### # Files f = open("file1") s = f.read() lines = f.readlines() lines.sort() f = open("file2", "w") s = ''.join(lines) f.write(s) ###################################################################### # Functions def foo (arg): if str(arg) == '': return else : foo(str(arg)[0:-1]) print arg ###################################################################### # An extended version of tme.py from lecture # tme-dis.py import sys def checkline(): global l global wordcount global palindromecount if isPalindrome(l): palindromecount += 1 w = l.split() wordcount += len(w) def isPalindrome(l): lower = l.lower() nospace = lower.replace(' ','') front = list(nospace[len(nospace)/2:]) back = list(nospace[:len(nospace)/2]) back.reverse() return front == back def pigLatinWord(w): if w[0] in ['a', 'e', 'i', 'o', 'u']: return w+"way" else: return w[1:]+w[0]+"ay" wordcount = 0 f = open(sys.argv[1]) flines = f.readlines() linecount = len(flines) for l in flines: checkline() print linecount, wordcount, palindromecount pl = [] for l in flines: for w in l.split(): pl.append(pigLatinWord(w)) print ' '.join(pl) pl = []