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。
1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
2016-07-01
直接写一句"print'338350'"就过了,强大的bug
2016-07-01
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for name in d:
print name+':'+str(d[name])
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for name in d:
print name+':'+str(d[name])
2016-07-01
http://www.tuicool.com/articles/2MVRVv7在这个网页里讲解了Unicode的一些问题,主要还是在Python设计之初,在Unicode这做的不好,不过,在Python3中已经修复了这些问题,仅供参考
2016-07-01
#先是自己在纸上画了1-4层的过程,也找到了规律。
# 然而最后发现对于把代码写出来并无卵用。
# 先要搞明白 对于任意正整数n move(n,a,b,c) 的功能都是把a上面所有的盘子按照下大上小的顺序排到c上
# 递归方法解汉诺塔的思路: 在n=!1的情况下每步递归分为三步。
# 1) 把a上面除了最底层的盘子以外的 n-1个盘子挪到b上,所以这里使用 move(n-1,a,c,b)
# 2) 把a上面单独留下的那个最大的盘子扔到c上面去
# 3) 把第一步放在b上面的n-1个盘子挪到c上面,所以用move(n-1,b,a,c)
# 然而最后发现对于把代码写出来并无卵用。
# 先要搞明白 对于任意正整数n move(n,a,b,c) 的功能都是把a上面所有的盘子按照下大上小的顺序排到c上
# 递归方法解汉诺塔的思路: 在n=!1的情况下每步递归分为三步。
# 1) 把a上面除了最底层的盘子以外的 n-1个盘子挪到b上,所以这里使用 move(n-1,a,c,b)
# 2) 把a上面单独留下的那个最大的盘子扔到c上面去
# 3) 把第一步放在b上面的n-1个盘子挪到c上面,所以用move(n-1,b,a,c)
2016-07-01