我想向你们推荐一门最好的python课程——CS61A学习笔记(一)

CS61A是美国伯克利分校给他们大一相关专业学生的一门必修课,可谓是神课
从开始学习到CS61A的第一周,我开始深刻感受到这门课和我们随便在B站或者知乎上看到的视频教程完全不同。以往的学习编程视频教程,就是录了一大堆然而都是一个一个语法进行介绍,系统学习好像也没什么不妥,但是看完发现好像并没有学到什么,而且还花费了很多的时间。然而,上CS61A给我的感受就是无处不动手,无处不实践。

即使是我已经会python的基本语法知识,这门课的学习还是让我觉得有些吃力,学的第二天就让学生写一个Hog(掷骰子)的小游戏,国内基本没有这样的教学模式。相信只要能够坚持上完这门课,对你的编程能力一定是质的飞跃。

课程的话可以在B站找到Spring2018版本的,不过是英文字幕,是时候逼逼自己练英语听力了。这门课程还提供了作业网址,也不需要你翻墙就可以实现基本完整的学习。

下面是我在CS61A做的第一个工程 HOG:

涉及的知识点记录一下:

高阶函数:

之前从来没见过这种骚操作,在函数里面嵌套函数,再在外层函数返回构成闭包。

例子就拿我在工程中遇到的举:

def announce_highest(who, previous_high = 0, previous_score = 0) :
 """Return a commentary function that announces when WHO's score
 increases by more than ever before in the game.
 >> > f0 = announce_highest(1) # Only announce Player 1 score gains
 >> > f1 = f0(11, 0)
 >> > f2 = f1(11, 1)
 1 point!That's the biggest gain yet for Player 1
 >> > f3 = f2(20, 1)
 >> > f4 = f3(5, 20) # Player 1 gets 4 points, then Swine Swap applies
 19 points!That's the biggest gain yet for Player 1
 >> > f5 = f4(20, 40) # Player 0 gets 35 points, then Swine Swap applies
 20 points!That's the biggest gain yet for Player 1
 >> > f6 = f5(20, 55) # Player 1 gets 15 points; not enough for a new high
 """
 assert who == 0 or who == 1, 'The who argument should indicate a player.'
 # BEGIN PROBLEM 7
 "*** YOUR CODE HERE ***"
 def say(score0, score1) :
 #判断玩家
 if not who :
score = score0
 else:
score = score1
#记录本次差值
sub = score - previous_score
if sub > previous_high:
if sub == 1 :
 print(sub, "point! That's the biggest gain yet for Player", who)
else :
 print(sub, "points! That's the biggest gain yet for Player", who)
 return announce_highest(who, sub, score)
else:
return announce_highest(who, previous_high, score)
return say
# END PROBLEM 7

益智游戏,可以玩一下
在这里插入图片描述
最近没那么多时间发博客了,先继续刷这门课吧!

希望对读者有所帮助,喜欢的话可以关注一下我的公众号,我会把学习笔记发在上面,大家可以一起共同学习!

在这里插入图片描述

Alt

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当然!我可以帮助你制定一个学习计划来学习Python。以下是一个基本的学习路径,你可以根据自己的需求和进度进行调整: 1. 学习基本概念:开始之前,了解Python的基本语法、变量、数据类型、条件语句、循环和函数等基本概念是非常重要的。你可以通过阅读Python教程、参加在线课程或观看教学视频来入门。 2. 练习编程:编程是通过实践来提高的,所以尽量多写一些简单的程序来巩固所学的知识。你可以尝试解决一些简单的编程问题,也可以参与编程挑战或者参与开源项目。 3. 掌握数据结构和算法:数据结构和算法是编程中非常重要的一部分。学习一些常见的数据结构(如列表、字典、集合、栈、队列等)和算法(如排序、查找、递归等)可以帮助你更好地解决问题。 4. 掌握面向对象编程(OOP):Python一门面向对象的编程语言,掌握面向对象编程的概念和技巧对于开发复杂的应用程序非常重要。 5. 学习常用库和框架:Python有很多强大的库和框架,如NumPy、Pandas、Matplotlib、Django等,它们可以帮助你更高效地处理数据、进行数据分析和开发Web应用等。 6. 实践项目:最好的学习方法是通过实践。尝试完成一些小型项目或者参与开源项目,这样你可以锻炼自己的编程能力并且学习到更多实际的经验。 同时,记得保持持续学习的动力和耐心,多与其他Python开发者交流和分享经验,参加编程社区或者线下活动。祝你学习顺利!如果你有任何具体的问题或者需要更多的帮助,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rosen.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值