因为Python把0、空字符串''和 None看成 False,其他数值和非空字符串都看成 True
短路计算。
1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
短路计算。
1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
2015-06-17
# -*- coding: utf-8 -*- 目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
2015-06-17
r'''...''' 中间的点号替换为字符串即可,不需要转义符,本来是什么格式 输出就是什么格式(包括换行), 注意字符串本身不需要加“”或‘’了。
2015-06-17
觉得这个也是对的。 print [str(x)+str(y)+str(x) for x in range (1,10) for y in range(0,10)]
print [100*x+10*y+z for x in range (1,10) for y in range(0,10) for z in range(0,10) if x==z]
print [100*x+10*y+z for x in range (1,10) for y in range(0,10) for z in range(0,10) if x==z]
2015-06-16
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
if score<60:
return'<tr><td>%s</td><td style="color:red">%s</td></tr>'%(name,score)
return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name,score) for name, score in d.iteritems()]
def generate_tr(name, score):
if score<60:
return'<tr><td>%s</td><td style="color:red">%s</td></tr>'%(name,score)
return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name,score) for name, score in d.iteritems()]
2015-06-16
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
sum = 0.0
for k, v in d.iteritems():
sum = sum + v
print k,":",v
print 'average', ':', sum/len(d)
sum = 0.0
for k, v in d.iteritems():
sum = sum + v
print k,":",v
print 'average', ':', sum/len(d)
2015-06-16
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
sum = 0.0
for i in d.itervalues():
sum = sum + i
print sum/len(d.values())
sum = 0.0
for i in d.itervalues():
sum = sum + i
print sum/len(d.values())
2015-06-16