Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "copyright", "credits" or "license()" for more information. **************************************************************** Personal firewall software may warn about the connection IDLE makes to its subprocess using this computer's internal loopback interface. This connection is not visible on any external interface and no data is sent to or received from the Internet. **************************************************************** IDLE 1.2.1 >>> def piglatinize(word): for i in range(len(word)): if word[i] in 'aeiouy': return word[i:] + word[:i] + 'ay' >>> piglatinize('string') 'ingstray' >>> piglatinize('idle') 'idleay' >>> piglatinize('robocop') 'obocopray' >>> piglatinize('yesterday') 'yesterdayay' >>> help(string) Traceback (most recent call last): File "", line 1, in help(string) NameError: name 'string' is not defined >>> help(str) Help on class str in module __builtin__: class str(basestring) | str(object) -> string | | Return a nice string representation of the object. | If the argument is a string, the return value is the same object. | | Method resolution order: | str | basestring | object | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __eq__(...) | x.__eq__(y) <==> x==y | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getattribute__(...) | x.__getattribute__('name') <==> x.name | | __getitem__(...) | x.__getitem__(y) <==> x[y] | | __getnewargs__(...) | | __getslice__(...) | x.__getslice__(i, j) <==> x[i:j] | | Use of negative indices is not supported. | | __gt__(...) | x.__gt__(y) <==> x>y | | __hash__(...) | x.__hash__() <==> hash(x) | | __le__(...) | x.__le__(y) <==> x<=y | | __len__(...) | x.__len__() <==> len(x) | | __lt__(...) | x.__lt__(y) <==> x x%y | | __mul__(...) | x.__mul__(n) <==> x*n | | __ne__(...) | x.__ne__(y) <==> x!=y | | __repr__(...) | x.__repr__() <==> repr(x) | | __rmod__(...) | x.__rmod__(y) <==> y%x | | __rmul__(...) | x.__rmul__(n) <==> n*x | | __str__(...) | x.__str__() <==> str(x) | | capitalize(...) | S.capitalize() -> string | | Return a copy of the string S with only its first character | capitalized. | | center(...) | S.center(width[, fillchar]) -> string | | Return S centered in a string of length width. Padding is | done using the specified fill character (default is a space) | | count(...) | S.count(sub[, start[, end]]) -> int | | Return the number of non-overlapping occurrences of substring sub in | string S[start:end]. Optional arguments start and end are interpreted | as in slice notation. | | decode(...) | S.decode([encoding[,errors]]) -> object | | Decodes S using the codec registered for encoding. encoding defaults | to the default encoding. errors may be given to set a different error | handling scheme. Default is 'strict' meaning that encoding errors raise | a UnicodeDecodeError. Other possible values are 'ignore' and 'replace' | as well as any other name registerd with codecs.register_error that is | able to handle UnicodeDecodeErrors. | | encode(...) | S.encode([encoding[,errors]]) -> object | | Encodes S using the codec registered for encoding. encoding defaults | to the default encoding. errors may be given to set a different error | handling scheme. Default is 'strict' meaning that encoding errors raise | a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and | 'xmlcharrefreplace' as well as any other name registered with | codecs.register_error that is able to handle UnicodeEncodeErrors. | | endswith(...) | S.endswith(suffix[, start[, end]]) -> bool | | Return True if S ends with the specified suffix, False otherwise. | With optional start, test S beginning at that position. | With optional end, stop comparing S at that position. | suffix can also be a tuple of strings to try. | | expandtabs(...) | S.expandtabs([tabsize]) -> string | | Return a copy of S where all tab characters are expanded using spaces. | If tabsize is not given, a tab size of 8 characters is assumed. | | find(...) | S.find(sub [,start [,end]]) -> int | | Return the lowest index in S where substring sub is found, | such that sub is contained within s[start,end]. Optional | arguments start and end are interpreted as in slice notation. | | Return -1 on failure. | | index(...) | S.index(sub [,start [,end]]) -> int | | Like S.find() but raise ValueError when the substring is not found. | | isalnum(...) | S.isalnum() -> bool | | Return True if all characters in S are alphanumeric | and there is at least one character in S, False otherwise. | | isalpha(...) | S.isalpha() -> bool | | Return True if all characters in S are alphabetic | and there is at least one character in S, False otherwise. | | isdigit(...) | S.isdigit() -> bool | | Return True if all characters in S are digits | and there is at least one character in S, False otherwise. | | islower(...) | S.islower() -> bool | | Return True if all cased characters in S are lowercase and there is | at least one cased character in S, False otherwise. | | isspace(...) | S.isspace() -> bool | | Return True if all characters in S are whitespace | and there is at least one character in S, False otherwise. | | istitle(...) | S.istitle() -> bool | | Return True if S is a titlecased string and there is at least one | character in S, i.e. uppercase characters may only follow uncased | characters and lowercase characters only cased ones. Return False | otherwise. | | isupper(...) | S.isupper() -> bool | | Return True if all cased characters in S are uppercase and there is | at least one cased character in S, False otherwise. | | join(...) | S.join(sequence) -> string | | Return a string which is the concatenation of the strings in the | sequence. The separator between elements is S. | | ljust(...) | S.ljust(width[, fillchar]) -> string | | Return S left justified in a string of length width. Padding is | done using the specified fill character (default is a space). | | lower(...) | S.lower() -> string | | Return a copy of the string S converted to lowercase. | | lstrip(...) | S.lstrip([chars]) -> string or unicode | | Return a copy of the string S with leading whitespace removed. | If chars is given and not None, remove characters in chars instead. | If chars is unicode, S will be converted to unicode before stripping | | partition(...) | S.partition(sep) -> (head, sep, tail) | | Searches for the separator sep in S, and returns the part before it, | the separator itself, and the part after it. If the separator is not | found, returns S and two empty strings. | | replace(...) | S.replace (old, new[, count]) -> string | | Return a copy of string S with all occurrences of substring | old replaced by new. If the optional argument count is | given, only the first count occurrences are replaced. | | rfind(...) | S.rfind(sub [,start [,end]]) -> int | | Return the highest index in S where substring sub is found, | such that sub is contained within s[start,end]. Optional | arguments start and end are interpreted as in slice notation. | | Return -1 on failure. | | rindex(...) | S.rindex(sub [,start [,end]]) -> int | | Like S.rfind() but raise ValueError when the substring is not found. | | rjust(...) | S.rjust(width[, fillchar]) -> string | | Return S right justified in a string of length width. Padding is | done using the specified fill character (default is a space) | | rpartition(...) | S.rpartition(sep) -> (tail, sep, head) | | Searches for the separator sep in S, starting at the end of S, and returns | the part before it, the separator itself, and the part after it. If the | separator is not found, returns two empty strings and S. | | rsplit(...) | S.rsplit([sep [,maxsplit]]) -> list of strings | | Return a list of the words in the string S, using sep as the | delimiter string, starting at the end of the string and working | to the front. If maxsplit is given, at most maxsplit splits are | done. If sep is not specified or is None, any whitespace string | is a separator. | | rstrip(...) | S.rstrip([chars]) -> string or unicode | | Return a copy of the string S with trailing whitespace removed. | If chars is given and not None, remove characters in chars instead. | If chars is unicode, S will be converted to unicode before stripping | | split(...) | S.split([sep [,maxsplit]]) -> list of strings | | Return a list of the words in the string S, using sep as the | delimiter string. If maxsplit is given, at most maxsplit | splits are done. If sep is not specified or is None, any | whitespace string is a separator. | | splitlines(...) | S.splitlines([keepends]) -> list of strings | | Return a list of the lines in S, breaking at line boundaries. | Line breaks are not included in the resulting list unless keepends | is given and true. | | startswith(...) | S.startswith(prefix[, start[, end]]) -> bool | | Return True if S starts with the specified prefix, False otherwise. | With optional start, test S beginning at that position. | With optional end, stop comparing S at that position. | prefix can also be a tuple of strings to try. | | strip(...) | S.strip([chars]) -> string or unicode | | Return a copy of the string S with leading and trailing | whitespace removed. | If chars is given and not None, remove characters in chars instead. | If chars is unicode, S will be converted to unicode before stripping | | swapcase(...) | S.swapcase() -> string | | Return a copy of the string S with uppercase characters | converted to lowercase and vice versa. | | title(...) | S.title() -> string | | Return a titlecased version of S, i.e. words start with uppercase | characters, all remaining cased characters have lowercase. | | translate(...) | S.translate(table [,deletechars]) -> string | | Return a copy of the string S, where all characters occurring | in the optional argument deletechars are removed, and the | remaining characters have been mapped through the given | translation table, which must be a string of length 256. | | upper(...) | S.upper() -> string | | Return a copy of the string S converted to uppercase. | | zfill(...) | S.zfill(width) -> string | | Pad a numeric string S with zeros on the left, to fill a field | of the specified width. The string S is never truncated. | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __new__ = | T.__new__(S, ...) -> a new object with type S, a subtype of T >>> | Return True if all characters in S are alphabetic SyntaxError: invalid syntax >>> >>> >>> s = 'string' >>> s.index('i') 3 >>> def piglatinize2(word): onset = '' rest = '' seenvowel = False for char in word: if (not seenvowel) and (char not in 'aeiouy'): onset += char else: seenvowel = True rest += char return rest + onset + 'ay' >>> piglatinize2('string') 'ingstray' >>> piglatinize2('robocop') 'obocopray' >>> piglatinize2('aaa') 'aaaay' >>> x = True >>> x True >>> not x False >>> piglatinize2('myst') 'ystmay' >>> piglatinize2('yesterday') 'yesterdayay' >>> piglatinize2('Yvonne') 'onneYvay' >>> piglatinize2('yvonne') 'yvonneay' >>> piglatinize('str') >>> piglatinize2('str') 'stray' >>> piglatinize('string') 'ingstray' >>> piglatinize('strfff') >>> def piglatinize(word): for i in range(len(word)): if word[i] in 'aeiouy': return word[i:] + word[:i] + 'ay' return word + 'ay' >>> piglatinize('str') 'stray' >>> 'here is some sentence'.split() ['here', 'is', 'some', 'sentence'] >>> def piglatinizeSentence(sentence): pigWords = [] for word in sentence.split(): pigWords.append(piglatinize(word)) return ' '.join(pigWords) >>> def piglatinSent(sentence): sentence2 = [] for word in sentence.split(): pig = piglatinize2(word) sentence2 += pig return ' '.join(sentence2) >>> piglatinSent('who wears short shorts') 'o w h a y e a r s w a y o r t s h a y o r t s s h a y' >>> [] + 'hello' Traceback (most recent call last): File "", line 1, in [] + 'hello' TypeError: can only concatenate list (not "str") to list >>> emptyList = [] >>> emptyList += 'hello' >>> emptyList ['h', 'e', 'l', 'l', 'o'] >>> emptyList = [] >>> emptyList = emptyList + 'hello' Traceback (most recent call last): File "", line 1, in emptyList = emptyList + 'hello' TypeError: can only concatenate list (not "str") to list >>> def piglatinSent(sentence): sentence2 = [] for word in sentence.split(): pig = piglatinize2(word) sentence2.append(pig) return ' '.join(sentence2) >>> piglatinSent('who wears short shorts') 'owhay earsway ortshay ortsshay' >>> def piglatinizeSentence(sentence): pigWords = [] for word in sentence.split(): pigWords.append(piglatinize(word)) return ' '.join(pigWords) >>> piglatinizeSentence('who wears short shorts') 'owhay earsway ortshay ortsshay' >>> [x for x in range(5)] [0, 1, 2, 3, 4] >>> range(5) [0, 1, 2, 3, 4] >>> [x+1 for x in range(5)] [1, 2, 3, 4, 5] >>> [x**2 for x in range(5)] [0, 1, 4, 9, 16] >>> def jify(num): return 'j'*num >>> jify(5) 'jjjjj' >>> [jify(x) for x in range(5)] ['', 'j', 'jj', 'jjj', 'jjjj'] >>> sent = 'yeah whats up' >>> [jify(len(x)) for x in sent] ['j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j'] >>> [jify(len(x)) for x in sent.split()] ['jjjj', 'jjjjj', 'jj'] >>> def piglatinizeSentence3(sentence): return ' '.join([piglatinize(word) for word in sentence.split()]) >>> piglatinizeSentence3('who wears short shorts') 'owhay earsway ortshay ortsshay' >>> somelist = ['a','b','c'] >>> [(x,y) for x in somelist for y in somelist] [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'b'), ('b', 'c'), ('c', 'a'), ('c', 'b'), ('c', 'c')] >>> [(x,y) for x in somelist for y in somelist if y != 'c'] [('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b'), ('c', 'a'), ('c', 'b')] >>> [jify(x) for x in range(100) if x % 2] ['j', 'jjj', 'jjjjj', 'jjjjjjj', 'jjjjjjjjj', 'jjjjjjjjjjj', 'jjjjjjjjjjjjj', 'jjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj'] >>> [x for x in range(10) if x % 2] [1, 3, 5, 7, 9] >>> someSentence = 'in a galaxy far far away' >>> [x for s in someSentence if x not in 'aeiouy'] Traceback (most recent call last): File "", line 1, in [x for s in someSentence if x not in 'aeiouy'] TypeError: 'in ' requires string as left operand >>> [x for x in someSentence if x not in 'aeiouy'] ['n', ' ', ' ', 'g', 'l', 'x', ' ', 'f', 'r', ' ', 'f', 'r', ' ', 'w'] >>> def remVowels(someSentence):[x for x in someSentence if x not in 'aeiouy'] >>> def remVowels(sent): return ''.join([x for x in sent if x not in 'aeiouy']) >>> remVowels('you can understand english even without any vowels') ' cn ndrstnd nglsh vn wtht n vwls' >>> filter >>> help(filter) Help on built-in function filter in module __builtin__: filter(...) filter(function or None, sequence) -> list, tuple, or string Return those items of sequence for which function(item) is true. If function is None, return the items that are true. If sequence is a tuple or string, return the same type, else return a list. >>> def isAVowel(letter): return letter in 'aeiouy' >>> filter(isAVowel, 'how is it outside today?') 'oiiouieoay' >>> isAVowel('k') False >>> isAVowel(42) Traceback (most recent call last): File "", line 1, in isAVowel(42) File "", line 2, in isAVowel return letter in 'aeiouy' TypeError: 'in ' requires string as left operand >>> def isAConsonant(letter): return not isAVowel(letter) >>> isAConsonant('k') True >>> filter(isAConsonant, 'how is it outside today?') 'hw s t tsd td?' >>> filter(not isAVowel, 'whats up') Traceback (most recent call last): File "", line 1, in filter(not isAVowel, 'whats up') TypeError: 'bool' object is not callable >>> filter(lambda x: not isAVowel(x), 'whats up') 'whts p' >>> lambda x: x+2 at 0x12349b0> >>> f = lambda x: x+2 >>> f(4) 6 >>> import re >>> raiseWord(word): SyntaxError: invalid syntax >>> def raiseWord(word): lastVowel = None result = '' for seg in word: if seg in 'ieaou': if lastVowel == 'i' and seg == 'e': result += 'i' elif lastVowel == 'e' and seg == 'a': result += 'e' elif lastVowel == 'u' and seg == 'o': result += 'u' elif lastVowel == 'o' and seg == 'a': result += 'o' else: result += seg lastVowel = seg else: result += seg return result >>> raiseWord('ikwebeduko') 'ikwibeduku' >>> def raiseWordIter(word): lastVowel = None result = '' for seg in word: if seg in 'ieaou': if lastVowel == 'i' and seg == 'e': result += 'i' elif lastVowel == 'e' and seg == 'a': result += 'e' elif lastVowel == 'u' and seg == 'o': result += 'u' elif lastVowel == 'o' and seg == 'a': result += 'o' else: result += seg lastVowel = seg else: result += seg return result >>> raiseWordIter('ikwebeduko') 'ikwibiduku' >>> raiseWordIter('kiwebeduko') 'kiwibiduku' >>> def raiseWordLocal(word): lastVowel = None justSawCons = False result = '' for seg in word: if seg in 'ieaou': justSawCons = False if lastVowel == 'i' and seg == 'e': result += 'i' elif lastVowel == 'e' and seg == 'a': result += 'e' elif lastVowel == 'u' and seg == 'o': result += 'u' elif lastVowel == 'o' and seg == 'a': result += 'o' else: result += seg lastVowel = seg else: if justSawCons: lastVowel = None justSawCons = True result += seg return result >>> raiseWordLocal('ikwebeduko') 'ikwebeduku' >>> def raiseWordLocal(word): lastVowel = None justSawCons = False result = '' for seg in word: if seg in 'ieaou': justSawCons = False if lastVowel == 'i' and seg == 'e': result += 'i' elif lastVowel == 'e' and seg == 'a': result += 'e' elif lastVowel == 'u' and seg == 'o': result += 'u' elif lastVowel == 'o' and seg == 'a': result += 'o' else: result += seg lastVowel = seg else: if justSawCons: lastVowel = None justSawCons = True result += seg return result KeyboardInterrupt >>> raiseWordLocal(raiseWordLocal('ikwebeduko')) 'ikwebeduku' >>> somebool = True >>> somebool True >>> somebool == True True >>> raiseWord(raiseWord('ikwebeduko') ) 'ikwibiduku' >>> raiseWord(raiseWord('ikwebaduko') ) 'ikwibiduku' >>> >>> raiseWord('ikwebaduko') 'ikwibeduku' >>> raiseWord(raiseWord('ikwebaduko')) 'ikwibiduku' >>> def raiseRecursively(word): newWord = raiseWord(word) if newWord == word: return newWord else: return raiseRecursively(newWord) >>> raiseRecursively('ikwebaduko') 'ikwibiduku' >>>