为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
学习人数
综合评分9.43
3762人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.2 逻辑清晰
总结如下:
1、要想写出编程,必须亲自玩汉诺塔的游戏,至少玩到7层以上!
2、要自己尝试去写,不用直接看答案,思考过程比答案更痛苦,也更有趣!
3、关键之处在于递归里的第一个move(n-1,a,c,b)。意思是把 (n-1) 个圆盘移动到 b。这个move的动作之后需要最下面一个盘移动a-c,就是print a-->c。
4、之后再把b上面的盘移动回到c,就是move(n-1,b,a,c)
思考一周,亲自玩汉诺塔的游戏,玩到10层(用半个小时才做完,正确步骤是1023步,我用了1110步,错了87步)。对游戏有实际操作理解后,才进行编程。 当时觉得难点如下: 1、如何在移动的时候,还打印出正确的步骤。 2、开始觉得n是偶数和奇数,第一步移到的塔不一样。(偶数是b塔,奇数是c塔)。觉得是否要添加一个判断语句。 3、递归函数里,要写几个特例,开始我写到了n==1,n==2,n==3的三种情况。觉得应该分不了这么多。 4、递归函数里,要递归几次(就是要用到move几次?)。我是只用了一次,就是最后一个move(n-1,b,a,c)写对了。所以显示出来的步数少了,比如n=4时,才11步。

最新回答 / hawke
作为编程,直接理解提示,照写代码即可。
刚接触,请多指教
这道题的双引号不需要转义吧
for key,value in d.items():

print key,':',value

#结果为#lisa : 85

#adam : 95

#bart : 59

并不是初始化序列,因为dic是无序的

可以把key和value分开成list,然后zip(key,value)

keys = ["adam", "lisa", "bart"]

values = ["95", "85", "59"]



for key,value in zip(keys, values):

print key,":",value
L = [x*x for x in range(1,101) ]

print sum(L)
一下子跨越好大 完全不懂在说些什么。
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in enumerate(L):
index = index + 1
print index, '-', name
d = { 'Adam': 95.0, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
print sum(d.values())/len(d.values())
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for t in zip(range(1, len(L) + 1), L):
index = t[0]
name = t[1]
print index, '-', name
print 'true'
print 'false'
def firstCharUpper(s):
return s[0].upper()+s[1:]

print firstCharUpper('hello')
print firstCharUpper('sunday')
print firstCharUpper('september')
L = range(1, 101)
print L[-10:]
print L[-46::5]
为什么才完成了99%呢?
课程须知
如果您了解程序设计的基本概念,会简单使用命令行,了解中学数学函数的概念,那么对课程学习会有很大的帮助,让您学起来得心应手,快速进入Python世界。
老师告诉你能学到什么?
通过本课程的学习,您将学会搭建基本的Python开发环境,以函数为基础编写完整的Python代码,熟练掌握Python的基本数据类型以及list和dict的操作。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消