当前位置: 首页 > news >正文

毫无基础的人如何入门 Python ?

对于毫无基础的人想要入门Python,以下是一些建议:

了解Python基础知识:首先需要了解Python的基本语法和数据类型,以及如何进行变量赋值、条件判断、循环等操作。可以通过在线教程、书籍、视频教程等途径学习。

选择适合的学习资源:对于初学者来说,选择一本入门级别的Python书籍或在线教程是非常重要的。可以选择一些通俗易懂、循序渐进的教材,例如《笨办法学Python 3》等。

关于《笨办法学Python 3》这本书

本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。

本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。

笨办法更简单

在本书的帮助下,你将通过完成下面这些非常简单的事情来学会一门编程语言,这也是每个程序员的必经之路。

1.从头到尾完成每一个习题。

2.一字不差地录入每一段程序。

3.让程序运行起来。

就是这样了。刚开始这对你来说会非常难,但你需要坚持下去。如果你通读本书,每晚花一两个小时做做习题,你可以为自己读下一本编程书打下良好的基础。这本书可能无法让你一夜之间成为一名程序员,但它将会让你踏上学习编程方法的道路。

本书的目的是教会你编程新手需要了解的3种重要的技能:读和写、注重细节以及发现不同。

读和写

很显然,如果你连打字都成问题的话,那你学习编程也会有问题。尤其是,如果你连程序源代码中的那些奇怪字符都敲不出来的话,就更别提编程了。如果没有这些基本技能,你连最基本的软件工作原理都难以学会。

手动录入代码样例并让它们运行起来的过程,会让你学会各种符号的名称,熟悉它们的录入,最终读懂编程语言。

注重细节

区分好程序员和差程序员的最重要的一个方面就是对细节的重视程度。事实上,这是任何行业区分好坏的标准。如果缺乏对工作中每一个微小细节的注意,你的工作成果将不可避免地出现各种关键缺陷。从编程这一行来讲,你得到的结果将会是毛病多多而且难以使用的软件。

通读本书并一字不差地录入书中的每个例子,会训练你在做某件事时把精力集中到自己正在做的事情的细节上。

发现不同

大多数程序员长年累月地工作会培养出一种重要的技能,那就是观察事物间不同点的能力。有经验的程序员拿着两段仅有细微不同的代码,可以立即指出里边的不同点来。程序员甚至发明工具来让这件事更加容易,不过我们不会用这些工具。你要先用笨办法训练自己,然后再使用这些工具。

在做这些习题并且录入每段代码的时候,你一定会犯错,这是不可避免的,即使有经验的程序员也会偶尔出错。你的任务是把自己写的东西和正确答案对比,把所有的不同点都修正过来。这样的过程可以让你对程序里的错误、bug以及其他问题更加敏感。

少瞅多问

只要是写代码,就会写出“bug”(虫子)来。“bug”是你写的代码中的缺陷、错误或者问题。据说早年有一次有人的计算机工作异常,检查后发现是一只蛾子飞到计算机里导致的,于是后来人们就把计算机的问题称为bug了。要修复计算机的问题,就需要对它进行“除虫”,这也是调试(debug)一词的来历。在软件的世界里,bug简直不计其数,真的是太多了。

和那只蛾子一样,你的bug会藏在代码中,而你需要把它们找出来。别以为盯着屏幕上的代码看,“虫子”就会自己爬出来了,你需要更多信息才能找到它们,你需要站起来,挽起袖子找“虫子”。

要找“虫子”,你需要拷问你的代码,问它究竟发生了什么,或者你需要站在不同的角度去看代码。在本书里我多次提到“少瞅多问”,我演示了如何让代码“坦白交代”自己干了什么,如何把拷问的结果变成解决问题的方案。我还演示了各种不同的理解代码的方式,从而让你获得更多信息和洞察力。

不要复制粘贴

你必须手动将每个习题录进去,复制粘贴会让这些习题变得毫无意义。这些习题的目的是训练你的双手和大脑思维,让你有能力读代码、写代码和观察代码。如果你复制粘贴的话,就是在欺骗自己,而且这些习题的效果也会大打折扣。

使用视频教程

本书附带的视频解释了代码的工作原理,以及(更重要的)破坏代码的方法。视频中我会故意破坏代码,再展示修复代码的方法,通过这样的方式,我演示了很多常见错误。我还使用了调试和拷问的手段讲解代码。视频里演示了“少瞅多问”的思路。

关于坚持练习的一点提示

你通过本书学习编程时,我正在学习弹吉他。我每天至少训练2小时,至少花1小时练习音阶、和弦、琶音,剩下的时间用来学习音乐理论和乐曲演奏、训练听力等。有时我一天会花8小时来学习吉他和音乐,因为我觉得这是一件有趣的事情。对我来说,要学习一样东西,最自然、最根本的方法就是反复地练习。我知道,要学好一种技能,每日的练习是必不可少的,就算哪天的练习没啥进展(对我来说是常事),或者说学习内容实在太难,你也不必介意。只要坚持尝试,总有一天困难会变得容易,枯燥也会变得有趣。

在我写《“笨办法”学Python》和《“笨办法”学Ruby》这两本书之间的那段时间,我对绘画产生了兴趣。在39岁的时候喜欢上了视觉艺术,然后就跟以前学吉他、音乐、编程的时候一样,每天学绘画。我搜集了诸多入门教材,照着书上的去做,每天都画一些东西,并且享受着学习的过程。我离“艺术家”还差得很远,甚至连“画得好”都谈不上,不过现在我可以说我是“会画画”的了。在学习艺术的过程中,我用的就是本书教你编程的方法。只要将问题拆分成小的练习和课程,你就可以学会任何东西。只要集中精力慢慢提高,享受学习的过程,不管你最终学到什么程度,你都会从中获益的。

通过本书学习编程的过程中要记住一点,就是所谓的“万事开头难”,对于有价值的事情尤其如此。也许你是一个害怕失败的人,一遇到困难就想放弃;也许你一直没学会自律,一遇到“无聊”的事情就不想上手;也许因为有人夸你“有天分”而让你自视甚高,不愿意做这些看上去很笨拙的事情,怕有负你“天才”的称号;也许你太过激进,把自己跟像我这样有20多年经验的编程老手相比,让自己失去了信心。

不管是什么原因,你一定要坚持下去。如果遇到做不出来的巩固练习,或者遇到一个看不懂的习题,你可以暂时跳过去,过一阵子回来再看。编程中有一件经常发生的怪事就是,一开始你什么都不懂,这会让你感觉很不舒服,就像学习人类的自然语言一样,你会发现很难记住一些词语和特殊符号的用法,而且会经常感到很迷茫,直到有一天,忽然一下子你就豁然开朗,以前不明白的东西忽然就明白了。如果你坚持完成并努力理解这些习题,你最终会学会这些东西的。也许你不会成为一位编程大师,但你至少会明白编程的原理。

如果你放弃的话,你会失去达到这个程度的机会。如果你坚持尝试,坚持录入习题,坚持弄懂习题的话,你最终一定会明白里边的内容的。如果你通读了本书,却还是不懂怎样写代码,你的努力也不会白费。你可以说你已经尽力了,虽然成效不佳,至少你尝试过了,这也是一件值得骄傲的事情。

练习编写简单的程序:在掌握了基础知识之后,可以尝试编写一些简单的程序来巩固所学知识。例如,可以编写一个程序来实现两个数的加法、输出一个列表中的所有元素等。

参加编程社区或线上课程:参加编程社区或线上课程可以与其他Python学习者交流,分享学习心得和经验,也可以获取更多的学习资源和帮助。

持续学习和实践:Python是一门非常实用的编程语言,要想真正掌握它,需要不断地学习和实践。可以通过阅读Python官方文档、参与开源项目、编写自己的程序等方式来不断提高自己的编程能力。

总之,入门Python需要耐心和毅力,需要不断地学习和实践。只要坚持不懈,就一定能够掌握这门编程语言,并在实际应用中发挥它的作用。

相关文章:

  • 十分钟GIS——geoserver+postgis+udig从零开始发布地图服务
  • hadoop使用公平调度器
  • 包装组件的优点和可能的挑战
  • 鸿蒙开发系列教程(十六)--日志处理
  • B2052 简单计算器(洛谷)
  • Vue3快速上手(二)VSCode官方推荐插件安装及配置
  • IDEA 推荐插件
  • 苹果macbook电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法
  • 天线阵列车载应用——第1章 介绍 1.1节 汽车工业中的天线阵列:应用和频率范围
  • android下library打包aar并上传到maven,嵌入版的app
  • 爬虫笔记(三):实战qq登录
  • 视频上传 - 断点续传那点事
  • IDEA新建文件夹后右击不能创建class类排错方法
  • QT QDialog 中的按钮,如何按下后触发 accepted 消息?
  • Java+SpringBoot:构建稳定高效的计算机基础教学平台
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Brief introduction of how to 'Call, Apply and Bind'
  • FastReport在线报表设计器工作原理
  • Git同步原始仓库到Fork仓库中
  • java正则表式的使用
  • laravel5.5 视图共享数据
  • Linux gpio口使用方法
  • Lsb图片隐写
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • springMvc学习笔记(2)
  • vue 个人积累(使用工具,组件)
  • vue2.0项目引入element-ui
  • VuePress 静态网站生成
  • 爱情 北京女病人
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 聚簇索引和非聚簇索引
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 力扣(LeetCode)357
  • 悄悄地说一个bug
  • 如何解决微信端直接跳WAP端
  • 异常机制详解
  • Java总结 - String - 这篇请使劲喷我
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #pragma multi_compile #pragma shader_feature
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二十三)Flask之高频面试点
  • (三)mysql_MYSQL(三)
  • (转)http-server应用
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net 4.0并行库实用性演练
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径