1、解决用户输入空行的办法使用startwith判断或者len(strs)>0
2、字符串运用方法中strip和replace特别有用。
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。语法:
str.strip([chars]);
#!/usr/bin/python str = "0000000this is string example....wow!!!0000000"; print str.strip( '0' ); #输出结果为 this is string example....wow!!!
只移除字符串头尾指定的字符,中间部分不会移除:
#!/usr/bin/python
str = "0000000this is string 0000example....wow!!!0000000"; print str.strip( '0' ); 结果为: this is string 0000example....wow!!!
Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。语法:
str.replace(old, new[, max])
#!/usr/bin/python str = "this is string example....wow!!! this is really string"; print str.replace("is", "was"); print str.replace("is", "was", 3); 结果为: thwas was string example....wow!!! thwas was really string thwas was string example....wow!!! thwas is really string #old -- 将被替换的子字符串。 #new -- 新字符串,用于替换old子字符串。 #max -- 可选字符串, 替换不超过 max 次
3、于find方法可以寻找一个 字符串在另一个字符串中出现的次数,也可以返回字符串的位置或-1(表示字符串没有找到)
4、exit() #直接退出程序
5、内置函数repr可以解决空格带来的问题。因为空格符、制表符和换行符是隐藏的,它将任一对象作为参数,返回该对象的一个字符串表示。字符串中用反斜杠序列代表空白 字符
>>> s = '1 2 3 4' >>> print s 1 2 3 4
使用repr后
>>> print repr(s) '1 2 3 4'
6、.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,并且readlines()返回的是一个数组。
7、 print len(array) #返回数组的长度 find返回值为-1时表示没有找到,否则返回的是索引值
8、列表即序列,列表里的值可以是任意类型,创建简单方法为[]将元素括起来。列表里的元素不要求是同一类型 例:
['spam', 2.0, 5, [10, 20]] #含一个字符串,一个浮点数,一个整数,以及另一个列表
一个列表作为另一个列表的元素称为列表嵌套。不含任何元素的列表称为空列表,使用空的方括号([])创建一个空列表。
9、与字符串不同,列表是可变的。你可以改变列表中元素的顺序,或者对列表中的元素重新赋值。当括号运算符出现在赋值语 句的左边时,就可以给列表中指定的元素赋值。
>>> numbers = [17, 123] >>> numbers[1] = 5 >>> print numbers [17, 5] #numbers列表的第二个元素之前是123,现在是5。
任何整数表达式都可作为索引。
试图读写一个不存在的元素时,你会得到IndexError索引错误提示。
如果索引值为负,表示从列表的尾部算起。
对于空列表来说,for循环不会执行函数体。
in运算符也适用于列表:
>>> cheeses = ['Cheddar', 'Edam', 'Gouda'] >>> 'Edam' in cheeses True >>> 'Brie' in cheeses False
尽管一个列表可以包含另一个列表,但被包含的列表只能被看作一个元素。以下列表的长度为4:
['spam', 1, ['Brie', 'Roquefort', 'Pol le Veq'], [1, 2, 3]]
“+”运算符连接多个列表:
>>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> c = a + b >>> print c [1, 2, 3, 4, 5, 6]
类似地,“*”运算符对列表进行给定次数的重复:
>>> [0] * 4 [0, 0, 0, 0] >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
列表的分割即切片操作:
>>> t = ['a', 'b', 'c', 'd', 'e', 'f'] >>> t[1:3] ['b', 'c'] >>> t[:4] ['a', 'b', 'c', 'd'] >>> t[3:] ['d', 'e', 'f']
10、列表的操作方法:append在列表尾部添加一个新元素。
t = ['a', 'b', 'c'] >>> t.append('d')
extend可以将列表作为参数,并把一个列表的所有元素添加到另一个列表的尾部。
>>> t1 = ['a', 'b', 'c'] >>> t2 = ['d', 'e'] >>> t1.extend(t2) >>> print t1 ['a', 'b', 'c', 'd', 'e'] #这个示例中t2没有发生改变。
大多数列表方法是没有返回值的,它们会修改列表,但返回为None。如果你不小心写了下面这样的语句 t = t.sort() ,得到 的t不是你所预期的排序。
删除列表元素使用pop,如果没有指定索引位置,pop会删除并返回最后一个元素。
列表t.pop(索引号)
果无需返回删除过的元素,可以直接使用del操作符:
del t[1]
如果只知道要删除的元素,但不知道它的索引位置,可以使用remove方法:
>>> t = ['a', 'b', 'c'] >>> t.remove('b') #remove方法返回值为None。 >>> print t ['a', 'c']
当需要删除多个元素,可以根据切片索引,使用del来实现:
>>> t = ['a', 'b', 'c', 'd', 'e', 'f'] >>> del t[1:5] >>> print t #,切片会删除两个索引位置之间的所有元素,实际上切片不会删除第二个索引参数所对应的元素。 ['a', 'f']
列表中有许多内嵌函数可用来遍历,无需另写循环代码如 len(nums)、max(nums)、min(nums)、sum(nums) sum(nums) 即是将nums列表各个数相加的总和、
字符串转换为字符列表:
>>> s = 'spam'
>>> t = list(s) #list函数将一个字符串转化成一些单独的字母。
>>> print t
['s', 'p', 'a', 'm']
把一个字符串分成单独的单词 :
>>> s = 'pining for the fjords' >>> t = s.split() #相当于以空格来分割 >>> print t ['pining', 'for', 'the', 'fjords'] >>> print t[2] the
split(可选参数): split函数有一个可选参数,称为分隔符(delimiter)。它可以指定特定字符作为单词之间的界限
join函数与split函数的作用相反。它使用字符串列表,把列表元素连接起来。join是字符串方法,所以必须指定分隔符,将列 表作为参数。
>>> t = ['pining', 'for', 'the', 'fjords'] >>> delimiter = ' ' #分隔符为空格 >>> print delimiter.join(t) 结果:'pining for the fjords'
append方法修改了列表,而“+”运算符新建了一个 列表:
>>> t1 = [1, 2] >>> t2 = t1.append(3) >>> print t1 [1, 2, 3] >>> print t2 None >>> t3 = t1 + [3] >>> print t3 [1, 2, 3] >>> t2 is t3 False
易错点:
下面的函数就并没有达到删除列表头元素的目的:
def bad_delete_head(t): t = t[1:] # WRONG!
切片操作会新建一个列表,赋值语句将t作为列表的引用。但这对于之前作为参数的列表来说没有任何影响。
另一种可行的办法是编写一个函数,创建并且返回一个新列表。例如,tail函数会返回一个新的列表,其包含除第一个元素之 外的其他所有元素。
def tail(t): return t[1:]
这个函数并不会改变原始列表。以下是它的用法:
>>> letters = ['a', 'b', 'c'] >>> rest = tail(letters) >>> print rest ['b', 'c']
11、sorted函数。这个函数会返回一个排序后的新列表,而不会改变原始列表。