如果有n是1,那就直接AtoC,所以是a to c,因为输入顺序是ABC
如果n是2,需要先把第一个移动到b(B),所以调用自身,输入顺序是ABC,然后将最后一个移动到目标,a to c,然后将b(B)上的再次移动到c(C),调用自身,输入顺序是BAC
如果n是2,需要先把第一个移动到b(B),所以调用自身,输入顺序是ABC,然后将最后一个移动到目标,a to c,然后将b(B)上的再次移动到c(C),调用自身,输入顺序是BAC
2015-01-04
题目要求输出'\"To be, or not to be\": that is the question.\nWhether it\'s nobler in the mind to suffer.'结果最后答案要求输出的是不带'的\"To be, or not to be\": that is the question.\nWhether it\'s nobler in the mind to suffer.
可以严谨一些么?
可以严谨一些么?
2015-01-03
L = [0,1,2,3,4,5,6,7,8,9]
i = 0
for x in L:
for y in L:
i = i +(x*10+y)*(x*10+y)
print i+100*100
这样也可以,因为循环不出来100,只能在后面加上一个100*100
i = 0
for x in L:
for y in L:
i = i +(x*10+y)*(x*10+y)
print i+100*100
这样也可以,因为循环不出来100,只能在后面加上一个100*100
2015-01-03
sum = 0
x = 0
while True:
x = x + 1
if x > 100:
break
if not (x % 2) :
continue
sum += x
print sum
x = 0
while True:
x = x + 1
if x > 100:
break
if not (x % 2) :
continue
sum += x
print sum
2015-01-03
正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:
>>> t = (1,)
>>> print t
(1,)
Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
多元素 tuple 加不加这个额外的“,”效果是一样的:
>>> t = (1, 2, 3,)
>>> print t
(1, 2, 3)
>>> t = (1,)
>>> print t
(1,)
Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
多元素 tuple 加不加这个额外的“,”效果是一样的:
>>> t = (1, 2, 3,)
>>> print t
(1, 2, 3)
2015-01-01
创建包含1个元素的 tuple 呢?来试试:
>>> t = (1)
>>> print t
1
好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?
因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:
>>> t = (1,)
>>> print t
(1,)
>>> t = (1)
>>> print t
1
好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?
因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:
>>> t = (1,)
>>> print t
(1,)
2015-01-01
要解释上述结果,又涉及到 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。
2015-01-01
这是一个常见的陷阱,在使用raw string时,反斜杠虽然不再做转义用,但它仍然保留了一部分“魔力”——保护字符串。如
>>> print r"abc\"xyz"
abc\"xyz
在反斜杠之后的那个引号由于反斜杠的魔力,不被视为字符串终结。那么对应到开头那个路径r"C:\mydir\mysubdir\",最后那个引号也是由于反斜杠的魔力,不被视为终结,python认为其后应该还有东西,结果没有,就报错了
>>> print r"abc\"xyz"
abc\"xyz
在反斜杠之后的那个引号由于反斜杠的魔力,不被视为字符串终结。那么对应到开头那个路径r"C:\mydir\mysubdir\",最后那个引号也是由于反斜杠的魔力,不被视为终结,python认为其后应该还有东西,结果没有,就报错了
2015-01-01