首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

笨办法学 Python · 续 练习 13:单链表

将描述数据结构,列出你应该实现的所有操作,并给你实现需要通过的单个测试。你应该首先尝试使用此数据结构,然后再观看我的实现和审计视频,以便你了解该过程。 警告 这些都不是数据结构的高效实现。...不会一次将所有这些代码写入文件。相反,最好每次只做一个测试,并使其小部分能够工作。 注 这里,如果你不熟悉自动化测试,你可能想要观看视频,来看我怎么做。...这个流程一开始似乎很乏味,是的,但是你会越来越快,在视频中你会看到,在运行每个测试之前都这么做(或至少真的努力尝试这么做)。按照以下流程: 写一些测试代码。 编写代码使测试工作。 审计二者。...当你花了一两个 45 分钟的会话来 Hack 并试图让工作时,现在是观看视频的时候了。你首先需要尝试,以便更好地了解正在尝试的事情,这样可以使视频更容易理解。...视频中只是编程而不说话,但我会做一个旁白来讨论发生了什么。视频也更快来节省时间,我会剪切掉任何无聊的错误或时间的浪费。 一旦你看到我是怎么做的,你已经做了笔记(对吗?)

40720

疫情下技术人的宅家指南

未来,我们无法预计疫情到底什么时候可以结束,我们能够做的就是适应,做好长期抗疫的准备。 假如因为疫情被再次要求居家隔离的话,你会怎么做呢?难道你准备一直打游戏,看视频或者刷抖音吗?...如果你还希望自己能够有所提升,做一些有价值有意义的事情的话,这里给出的五点建议供大家参考,有备无患: 阅读一本好书 学习一项新技能 尝试做一个项目 培养一项兴趣 总结经验 下面,将以一名技术人的视角来具体阐述我们应该怎么做...无论什么时候,阅读一本好书都是没有错的。 尽管现在是信息化时代,我们获取知识和信息的途径有很多,但是书籍是永远不可以被替代的。...学习一项新技能,虽不能立竿见影地改善我们的生活,让我们获得更高的收入,但是作为一种知识储备,它能让我们在未来有更多选择的机会。 俗话说,机会总是留给有准备的人。...尝试做一个项目 尝试做一个项目,在实践中检验真理,重构知识体系。

35410
您找到你想要的搜索结果了吗?
是的
没有找到

Java之父接受Evrone专访:您需要的软件可靠性越高,静态类型语言的帮助就越大

学生,并且您正在尝试毕业,那么当您编写程序时,您的目标是应该运行一次。至少一次。因为你必须做一个演示并能够展示,看看它是否有效。...如果您在工业环境中,一生中的大部分时间都在那里工作,那么工作一次只会有点用处。必须每次都有效。一次工作和每次工作之间的差异是巨大的。因此,如果只需要工作一次,那么更动态的语言工作得相当好。...认为我们正在引领无论黄金时代是什么。认为可能会发生很多有趣的改进。目前,我们面临着各种围绕安全以及人们如何进行网络恐怖主义的危机。当这种事情发生时正在发生,不认为这是黄金时代。...他告诉我们,无论 Ruby 有多“慢”,都不是很重要,因为即使 Ruby 快了 100 倍并且 15% 变成了 1%,这也没有太大变化。现代语言确实“足够快”。...但是,一旦您获得了这些基于协程的语言中的一种并尝试利用多个处理器,如果您正在执行大量协程类型的操作而您没有足够的处理器,那么您只会使一个饱和处理器。

56630

更快学习 JavaScript 的 6 个思维技巧

也是经过了很多次惨不忍睹的教训才明白了这个技巧。 3.用正确的心态去做练习 很多人认为反复的练习特别无聊,所以他们通常会选择跳过或尝试走捷径。...当你学习JavaScript中一些新内容的时候,试着将它当作新玩具,新车,新鞋,或者其他任何你有兴趣尝试的东西。然后不要将练习当作工作,要将练习当作是玩耍。用新技能去尝试一些很酷的东西。...有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生的呢?或许正是因为并不打算看很长时间。万事开头难,一旦开了头,后面陷进去就变得容易多了。...再试一次,但这次,希望你能从字面上去检查每一行代码,告诉每一行的代码都发生了什么。” 这次,的朋友终于能够很好地解释代码中正在发生什么。...对了,你是怎么学习的?你有什么好的技巧吗?或者,你认为说的全是一派胡言,唯一的学习途径就是一天12小时地投入进去?无论是什么,欢迎不吝点评。

59270

更快学习 JavaScript 的 6 个思维技巧

也是经过了很多次惨不忍睹的教训才明白了这个技巧。 3.用正确的心态去做练习 很多人认为反复的练习特别无聊,所以他们通常会选择跳过或尝试走捷径。...当你学习JavaScript中一些新内容的时候,试着将它当作新玩具,新车,新鞋,或者其他任何你有兴趣尝试的东西。然后不要将练习当作工作,要将练习当作是玩耍。用新技能去尝试一些很酷的东西。...有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生的呢?或许正是因为并不打算看很长时间。万事开头难,一旦开了头,后面陷进去就变得容易多了。...再试一次,但这次,希望你能从字面上去检查每一行代码,告诉每一行的代码都发生了什么。” 这次,的朋友终于能够很好地解释代码中正在发生什么。...对了,你是怎么学习的?你有什么好的技巧吗?或者,你认为说的全是一派胡言,唯一的学习途径就是一天12小时地投入进去?无论是什么,欢迎不吝点评。

62450

Python DeBug的7个步骤【Programming】

不会说创建了一个测试,当我试图模仿一个错误调用时,通过了测试,但是,嗯,做到了,不认为这是特别不寻常的。 从的错误中吸取教训。 2....过去常常依赖于打印语句。它们有时仍然派得上用场。但是一旦开始处理复杂的代码库,尤其是那些打网络电话的代码库,打印就变得太慢了。...但是看看你把print语句放在哪里的函数,你不知道你是怎么到那里的。查看代码是一个很好的方式来了解你将要去的地方,但是对于了解你去过的地方来说是很糟糕的。...改变事物 如果你仍然感到迷茫,试着做一个新的测试,稍微改变一下。 你能让新的测试起作用吗? 有什么不同? 什么是一样的? 试着改变一些其他的东西。...无论如何,如果你在把所有事情都写下来之后仍然没有想到任何事情,试着给某人发一封邮件。首先,尝试与你的项目有关的同事或其他人,然后再进行项目电子邮件列表。不要害怕寻求帮助。

1.2K00

一个没有对手的英雄是什么体验?如何在你的Python游戏中添加反派

当还需要做更多工作以使玩家精灵充分发挥作用时,跳到敌人身上似乎显得很奇怪,但是你已经从前面的文章学到了很多,创建敌人与创建玩家精灵非常相似。...这是使用的一些资料: ·Inca tileset ·一些 invaders ·Sprites, characters, objects, 和effects 创建敌方目标 是的,无论你是否意识到,你基本上已经知道如何去处理一个敌人目标了...由于你现在正在将敌人创建为每个关卡的一部分,因此你的setup部分也需要更改。不是创建敌人就可以了,你必须定义敌人将在何处生成以及属于哪个关卡。....永远循环,因为循环中的任何事物都不是不真实的。在这种情况下,计数器始终位于0到100或100到200之间,因此敌人的精灵会永远从右向左走,从右向左走。...这是一个问题,但是在使用Python进行更多练习之后,你将在以后解决这个问题。 现在,尝试添加更多敌人。 记住将每个敌人添加到enemy_list中。

1.7K40

安装 Python 软件包遇错误,怎么办?

就像这个样子: 估计,他喜欢这个功能,或许是因为最近读 pdf 格式的论文太多了,想偷个懒吧。 这个操作,只需要终端下面的一行命令。连简单的 Python 编程,都不需要。...无论如何反复试验,用 pip 安装 pdftotext 这个软件包,总是报错。 他没有气馁,还专门用搜索引擎查了网上的资料。对于技术问答社区里,类似问题下面提及的每一种可能办法,他都做了尝试。...这位读者求助的,是遇到上图所示的报错时,应该怎么样对应操作,才能让错误消失。 很愿意帮助他,但不是这个帮法。 因为他从网上找来的这些方法,都没能解决问题。...还记得那篇《什么是第一性原理?》吗?开门见山地告诉你,应该尝试: 将事情缩减至其根本实质。 你的目的,不应该是跟报错信息较劲,而应该弄明白,到底出了什么问题。...你的机会成本,是原本可以用这几个小时好好读一两篇高水平论文,甚至是写作自己的工作报告或者论文初稿。 用这时间,通过不断折腾来尝试解决问题,还远不是最糟糕的结果。

1.4K20

我们总是梦想着对象化(三)

因为,如果这个都不知道,那么,基本是不可能发布一个完整的应用程序了。 然而,你真的洞察其中的奥秘了吗? 我们这里不讨论你是如何写具体的语句的。...就例如昨天遇到一个:“二维码显示是彩色的,怎么才能打印彩色的二维码?”你是否觉得全世界就只有一种方法可以生成二维码,而你正在使用它?此种逻辑不通的问题比比皆是,全世界都在使用黄海清汉化的VFP9吗?...VFP9SP2 7423 版,在使用XXXX 时遇到一个 XXXXX 问题,使用了 XXXXX 方法尝试解决但是并不成功,和这个问题相关的开发环境设置是这样的YYYYYY,这里是一些相关的……...是否粘贴进去的唯一标准就是:你以后永远都不会再去更改无论你的项目在磁盘上的哪个位置,无论你是否使用不同的物理路径。你以后永远都不会再去更改。 “如果不确定,怎么办?”...,只能这样回答你:写入你认为最好的代码,然后,在出现问题时,修正,一直到你以后永远都不会再去更改

22020

机器学习原来这么有趣!【第一章】

猜有很多人曾经尝试着阅读机器学习的维基百科词条,但是读着读着倍感挫折,然后直接放弃,希望能有人给出一个更直观的解释。本文就是你们想要的东西。...但是那又如何呢?只要能让读者对机器学习更感兴趣,这篇文章的任务也就完成了。 什么是机器学习?‍...这样可以将你最初的程序(全是令人抓狂的 if else 语句)简化成类似如下的样子: def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood...另外,忽略了过拟合(overfitting)的概念。得到一组能完美预测原始数据集中房价的权重组很简单,但用这组权重组来预测原始数据集之外的任何新房屋其实都不怎么准确。...怎样学到更多机器学习的知识‍ 认为,目前机器学习的最大问题是主要活跃于学术界和商业研究组织中。对于只想大体了解一下,而不打算成为专家的人们来说,简单易懂的资料不多。但是这种情况每天正在改善。

44510

笨办法学 Python3 第五版(预览)(三)

在接下来的几个练习中,希望你运行dis()在你正在学习的一些代码上,以便更深入地了解它是如何工作的: 1 from dis import dis 2 3 dis(''' 4 if people...只是希望你在这里这样做,以便为你理解正在发生的事情提供另一种可能的方式。如果dis()并没有真正帮助你更好地理解代码,那么随意这样做并忘记。...这个程序怎么运行的!? 当你在理解一段代码时遇到困难时,只需在每一行上面写一个英文注释,解释该行的作用。保持你的评论简短并与代码相似。然后要么画出代码的工作原理,要么写一段描述的段落。...现在这些行起作用了,继续下一个注释并重复这个过程,直到我将所有的注释转换成 Python。当我的脚本最终工作时,我会删除并使用所知道的重新编写。...这可能很困难,因为有些很难搜索,但无论如何都要尝试。 如果你从记忆中记错了其中一个,就制作一张正确定义的索引卡,尝试“纠正”你的记忆。

13310

9个可以提高Jupyter Notebook开发效率的魔术命令

正如的名字,魔术命令是一个特殊的命令。魔术命令通过将%符号与要运行的命令一起使用来工作。 魔术命令有很多种,但在本文中只展示最常用的9个魔术命令。让我们开始吧。...%store 如果你在一个笔记本上做一个项目,而你想在另一个笔记本上传递你的变量,那该怎么办呢?您不需要pickle或将它保存在某个目标文件中。您需要的是使用%store 魔术命令。 ?...%prun的惊人之处在于,显示了一个列表,列表中其中可以看到语句中每个内部函数被调用的次数、每次调用的时间以及函数所有运行的累积时间。 让我们通过一个示例来运行%prun 魔术命令。 ?...如果您已经编写了可以复用的函数,并希望将其保存在python文件中,该怎么办呢?当然,您可以打开另一个IDE并复制粘贴该文件,但是有一种更简单的方法可以做到这一点。...让我们尝试运行以下代码。 %%writefile test.py def number_awesome(x): return 9 ? 检查当前目录;现在应该有一个新的Python文件。

1.2K10

干货 | 如何写一个更好的Python函数?

文档字符串(Docstrings) 虽然每个人似乎都知道PEP - 8,定义了Python的样式指南,但是很少有人知道PEP - 257,它是关于文档字符串的。...即使你写的函数没有返回语句仍然会返回一些东西。而且,每个函数都应该返回一个有用的值,测试起来也会更方便。毕竟,你写的代码应该能够被测试。 试想一下,测试上面的add函会有多艰难。...如果一个函数遵循单一功能原则,很可能是相当短的。 如果它是纯函数或是幂等的(下面讨论) ,它也可能是短的。 那么,如果函数太长,应该怎么做?重构。这会改变程序的结构而不改变其行为。...无论如何在函数之外更改代码,使用相同的参数调用它的结果总是一样的。 什么是纯函数? 在函数编程中,如果一个函数既幂等又没有可观察到的副作用,它就被认为是纯函数。函数外部的任何东西都不会影响这个值。...return add_three_calls 我们现在正在打印到控制台(一个副作用)并修改一个非局部变量(另一个副作用),但是由于这两者都不影响函数返回的值,仍然是幂等的。 纯函数没有副作用。

59420

【机器学习】有趣的机器学习:最简明入门指南

但是问题来了——你可以看一眼房子就知道到底值多少钱,实习生没有经验,不知道如何估价。...这样可以将你最初的程序(全是疯狂的if else语句)简化成类似如下的样子: def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood...2.你最后写出的函数真是笨,甚至不知道什么是“面积”和“卧室数”。知道的只是搅动,改变数字来得到正确的答案。 3.很可能你都不知道为何一组特殊的权重值能起效。...步骤3中的“尝试每个数字”怎么回事? 好吧,当然你不可能尝试所有可能的权重值来找到效果最好的组合。那可真要花很长时间,因为要尝试的数字可能无穷无尽。...所以,无论怎么尝试,计算机也推导不出两者之间的关系。 ? 你只能对实际存在的关系建模。 怎样深入学习机器学习 认为,当前机器学习的最大问题是主要活跃于学术界和商业研究组织中。

75580

怎样才能写好一个 Python 函数

下面是一个反面案例: def getknn(from_df): 原文中这个代码没有放上去,我们根据上下文信息进行了补充。 这个函数命名的第一个问题是使用了缩写。...文档字符串(Docstrings) 虽然每个人似乎都知道 PEP - 8,定义了 Python 的样式指南,但是很少有人知道 PEP - 257,它是关于文档字符串的。...即使你写的函数没有返回语句仍然会返回一些东西。而且,每个函数都应该返回一个有用的值,测试起来也会更方便。毕竟,你写的代码应该能够被测试。 试想一下,测试上面的 add 函会有多艰难。...如果一个函数遵循单一功能原则,很可能是相当短的。如果它是纯函数或是幂等的(下面讨论) ,它也可能是短的。 那么,如果函数太长,应该怎么做?重构。这会改变程序的结构而不改变其行为。...return add_three_calls 我们现在正在打印到控制台(一个副作用)并修改一个非局部变量(另一个副作用),但是由于这两者都不影响函数返回的值,仍然是幂等的。 纯函数没有副作用。

55920

干货 | 如何写一个更好的Python函数?

文档字符串(Docstrings) 虽然每个人似乎都知道PEP - 8,定义了Python的样式指南,但是很少有人知道PEP - 257,它是关于文档字符串的。...即使你写的函数没有返回语句仍然会返回一些东西。而且,每个函数都应该返回一个有用的值,测试起来也会更方便。毕竟,你写的代码应该能够被测试。 试想一下,测试上面的add函会有多艰难。...如果一个函数遵循单一功能原则,很可能是相当短的。 如果它是纯函数或是幂等的(下面讨论) ,它也可能是短的。 那么,如果函数太长,应该怎么做?重构。这会改变程序的结构而不改变其行为。...无论如何在函数之外更改代码,使用相同的参数调用它的结果总是一样的。 什么是纯函数? 在函数编程中,如果一个函数既幂等又没有可观察到的副作用,它就被认为是纯函数。函数外部的任何东西都不会影响这个值。...return add_three_calls 我们现在正在打印到控制台(一个副作用)并修改一个非局部变量(另一个副作用),但是由于这两者都不影响函数返回的值,仍然是幂等的。 纯函数没有副作用。

59410

10 个 Python 秘诀将颠覆你的编码方式

就是靠着坚持不懈,不断吸收新知识,最终获得了第一份编程工作。从那时起,在每一份工作中都能"取之不尽、用之不竭",汲取到各种实用技巧和窍门。...无论何时您需要同时处理多个序列,zip 都是您的好朋友。在你的项目中试试吧,看看你的代码会变得多么简单! 秘诀 2:华勒斯运算符 (:=) 华勒斯运算符(:=)为拓展了全新的编码视野。...示例 记得在做一个需要大量计算的项目时,重复计算拖慢了一切。...的代码变得更快、更高效。请尝试在你的项目中使用 lru_cache,看看性能提升的效果! 秘诀 7:生成器和 yield 发现生成器和 yield 关键字对来说是一个转折点。...示例 正在做一个项目,其中的配置设置必须在整个执行过程中保持不变。

9710

7句话让Codex给我做了个小游戏,还是极简版塞尔达,一玩简直停不下来

所以,Andrew Mayne到底是怎么做到的? 原来,他用来做游戏的AI,是OpenAI最新版本的Codex。...这样更容易看明白AI正在处理哪条描述。 多让AI创建函数。如果直接让AI生成100项的数组,AI可能真的每一项每一项写出来,如果告诉AI创建一个生成数组的函数,AI就会用循环语句来完成了。...使用Codex的时候,甚至可以像甲方一样,无需手动调整代码,只需要对着这位“AI程序员”发号施令,就能让生成你想要的东西。 再来看看Codex的插入功能。...不仅能主动生成注释,提醒这段代码的作用: 还能根据上下文理解这段函数,主动帮你插入的定义: 无论是开发框架、还是写小软件,都不需要再担心“一条路走到黑”,可以根据需求再从中间进行调整。...无论是换人称、改格式这种小技巧: 还是随着上下文修改并插入语句都不在话下。 除了这两个功能以外,还有一些细节上的更新,例如UI变得更加简洁等等。

35420

成为一个伟大的产品经理(上)

这个列表也是自己非常重视和尝试发展的技能和方法,并且以此衡量自身的成长。 遗漏了一些明显的东西,比如“做一个正派的人”“尊重他人”“给予他人信任”等等。...此外,使用的是“产品经理”这个词,但是伟大的产品人有任何头衔:产品经理、项目经理、设计师、开发人员、营销或销售。换句话说,技能超过头衔。 故意将列表无序排列。...但是,如果必须在产品人中挑选出三点,那就是#1(从为什么开始),#13(保持好奇,珍惜好奇心)和#18(有强势的观点,但“弱势地坚持”)。...总是从用户开始,能清楚地阐明为什么有人想使用我们的产品以及我们正在解决生活中出现的什么问题。你可以写下希望得到用户什么样的反馈(这能让你明白你为什么开始)。...你需要知道信任和盲目信仰的区别,并尝试建立一个人们互相支持的工作环境。以自己的行为树立榜样,并相信人们都有良好的意图。你需要倾听并始终努力了解他们的背景、观点和视角。

58920

你觉得你的web应用只可以响应得更快一点吗——让上传速度加快10倍!

“高层次的抽象” 作者: Tomasz Urbaszek 我们会对在发现应用响应慢的时候做一些优化,但是现实效果都不怎么满意。正如它所显示的,最慢的部分是在我们应用中上传文件的时候。...问题的瓶颈可能是由以下的其中一点造成的: 极少的优化代码 服务器或客户设备运行慢 不好的网络条件 第一条,无论是遗留下来的代码,没有优化的数据库查询语句或者在浏览器的JavaScript代码块,都可以相对轻松地跟踪和修复...(轻松的意思是指“知道这该怎么做”,而不必是“这是小菜一蹀”)。...在我们不用强迫人们更换更快网络的情况下,我们可以参考在服务器那样的解决方案,尝试发送更少的数据。但是怎么才能在浏览器上传之前压缩一下数据呢? 初见Pako 什么是pako?...(在这个点上应该向你展示一个关于时间和文件大小的对比图表,但是后来觉得也许让你自己去实践获得的对比效果会更好) 你只需要传一个level选项就可以改变pako的压缩档次,就像下面语句: `**var

82110
领券