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\t 3\n 4'
>>> print s
1 2 3
4
使用repr后
>>> print repr(s)
'1 2\t 3\n 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函数。这个函数会返回一个排序后的新列表,而不会改变原始列表。