-
L = ['Adam', 'Lisa', 'Bart', 'Paul'] L.pop() 'Paul' print L ['Adam', 'Lisa', 'Bart']查看全部
-
name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。
查看全部 -
a = True print a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?
因为Python把
0
、空字符串''
和None
看成 False,其他数值和非空字符串都看成 True,所以:True and 'a=T' 计算结果是 'a=T' 继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
1. 在计算
a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。2. 在计算
a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。查看全部 -
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀
r
,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:r'\(~_~)/ \(~_~)/'
但是
r'...'
表示法不能表示多行字符串,也不能表示包含'
和"
的字符串(为什么?)如果要表示多行字符串,可以用
'''...'''
表示:'''Line 1 Line 2 Line 3'''
上面这个字符串的表示方法和下面的是完全一样的:
'Line 1\nLine 2\nLine 3'
还可以在多行字符串前面添加
r
,把这个多行字符串也变成一个raw字符串:r'''Python is created by "Guido". It is free and easy to learn. Let's start learn Python in imooc!'''
查看全部 -
如果字符串既包含
'
又包含"
怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用
\
进行转义。要表示字符串
Bob said "I'm OK".
由于 ' 和 " 会引起歧义,因此,我们在它前面插入一个\
表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为'Bob said \"I\'m OK\".' 常用的转义字符还有:\n 表示换行 \t 表示一个制表符 \\ 表示 \ 字符本身
查看全部 -
print语句可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:
>>> print 'hello, world'
注意:
1.当我们在Python交互式环境下编写代码时,
>>>
是Python解释器的提示符,不是代码的一部分。2.当我们在文本编辑器中编写代码时,千万不要自己添加 >>>。
查看全部 -
Python中数据类型
一、整数
二、浮点数
三、字符串,以
''
或""
括起来的任意文本,比如'abc'四、布尔值,一个布尔值只有
True
、False
五、空值,空值是Python里一个特殊的值,用
None
表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。查看全部 -
进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
查看全部 -
:Python代码的缩进规则。具有相同缩进的代码被视为代码块,
查看全部 -
for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。
>>> [m + n for m in 'ABC' for n in '123'] ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
查看全部 -
条件过滤
只想要偶数的平方,不改动 range()的情况下,可以加上 if 来筛选:
>>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100]
编写一个函数,它接受一个 list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略。
def toUppers(L): return [x.upper() for x in L if isinstance(x,str)]
查看全部 -
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
可以通过一个复杂的列表生成式把它变成一个 HTML 表格:
tds = ['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()] print '<table>' print '<tr><th>Name</th><th>Score</th><tr>' print '\n'.join(tds) print '</table>'
字符串可以通过 % 进行格式化,用指定的参数替代 %s字符串的join()方法可以把一个 list 拼接成一个字符串。
把打印出来的结果保存为一个html文件,就可以在浏览器中看到效果了:
<table border="1"> <tr><th>Name</th><th>Score</th><tr> <tr><td>Lisa</td><td>85</td></tr> <tr><td>Adam</td><td>95</td></tr> <tr><td>Bart</td><td>59</td></tr> </table>
查看全部 -
>>> range(1, 11) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> L = [] >>> for x in range(1, 11): ... L.append(x * x) ... >>> L [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
查看全部 -
如何同时迭代 key和value呢?
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } >>> print d.items() [('Lisa', 85), ('Adam', 95), ('Bart', 59)]
items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value。
>>> for key, value in d.items(): ... print key, ':', value ... Lisa : 85 Adam : 95 Bart : 59
查看全部 -
dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } print d.values() # [85, 95, 59] for v in d.values(): print v # 85 # 95 # 59
查看全部
举报