正确的学python方式
首先呢,和其他的各种学习都一样,你一定要明白你学习的目标是什么。有的人想要通过学习Python,转行成程序员,实现行业上的转变;有的人希望通过学习Python,在现有的岗位上提升自己;当然也有很多人只是从众,说看到很多人都在学,那不如就学一学。
学习的目的性很重要,因为这样第一是可以给你树立一个远方的方向,你朝着这个方向奔跑,那跑起来就没有那么辛苦,每天都可以看到离目标前进了一些;第二是你可以根据自己的目标,去针对性的学习,例如运维开发、Web服务、数据分析、机器学习等等各个方面的细分领域,去安排自己的学习路径。
回到我自己身上,当年在学校中开始学习,C++是必修的课程,学完之后虽然能够用来完成一些有意思的功能(比如我们当年的大作业就是使用MFC去编写一个地图应用),但是当时一点都没有让我感到编程的乐趣。
我是如何开始Python的学习的呢?当时我有一个目标,是想要去喜欢的一个网站实习,那个网站是用Python进行开发的,以此为契机开始了自己的学习。
对于学习编程而言,可能很多课程、很多同学都会陷入一个陷阱,那就是只知道要学什么,但却不知道为什么去学。如果没有跳出这个陷阱,别看课程上教授的内容很多(我们当年的C++就学了一年呢),但完全没法将学习编程的过程变为自驱的过程——也就是学习本身应该是推动你去进一步学习的。
我们回过头来看看编程的基础,总共就四大块:

这四个基本元素难么?实际上很多同学可能用一天的时间就扫完了对应的知识点。但是简单么?实际上也不简单,因为很多同学,甚至可以毫不夸张的说:有超过70%的普通工程师都还不能脱离搜索引擎写出只有上述的逻辑的业务代码。
编程的本质是什么?本质是利用编程语言,命令计算机按照自己的意思,符合一定的流程去完成功能。学习Python和学习其他的各种编程语言没有特别大的区别,都是要理解“我学的这段代码,它能让计算机完成什么样的事情”。
举几个栗子:
二进制
有很多计算机基础的书籍和课程,上来就是一大堆二进制的计数规则,有的同学可能理解得好些,知道在计算机里,我们只能够用01来表示各种数据,因此也知道了整型是如何存储上去、浮点型是如何存储到二进制上去的。但是随着时间的推移,一般的编程工作根本不会涉及到如何去操纵二进制的数据,只要不经常用,很快这个知识点就会被淡忘了
实际上二进制还可以怎么在现实世界中发挥作用呢?0和1,实际上是可以表达某个事物是否具有某一属性的,比如数据分析中常用的RFM,就是要去判断是否新用户、是否充值、是否大客户、是否频繁购买。而这样的表示实际上就可以通过二进制进行操作:

既然可以用二进制存储某一个用户的标志了,那么就会涉及到:如何读取出来、如何设置上去,也就是读-写的逻辑。
计算机世界有非常多的地方都用到了这个技巧:如下图所示:

控制流:循环、判断
控制是编程最核心的内容之一,因为直接决定了我们如何让计算机帮我们完成繁琐的、重复的工作。
在Python中,循环也和各种数据结构能够无缝连接起来。
基础类型
除了上面我们讲到的整型,字符串这个数据类型也非常重要,整个互联网都是基于字符串和更底层的字节流的。
我们在网页上看到的知乎,也是由客户端组装HTTP请求、服务端返回HTML、CSS、JS、json完成的整个过程,这里面涉及到的都是如何处理字符串。
在使用爬虫,在各种网页中读出数据的时候,就一定会涉及如何处理字符串。
而绝大部分对字符串的处理,Python的字符串成员函数都已经包含了。

数据结构
Python中有四种最常用数据结构,tuple、list、dict、set。
什么是数据结构,实际上是数据按照一定的规则,排布在我们的内存中,以及可以通过数据结构的特性,完成一定的功能,例如列表可以用来做顺序的数据存储,排队、堆积的书籍,都是列表的一种具象表现。字典则可以用来做快速的查找,平时由首字母查到字典中的范围、查看对应关系都可以用字典来表示。

在理解了这些数据结构之后,完成日常的工作就基本没有问题了。
记得当时我学完这一块,就可以用它算出每天空闲的自习室了,实际上就是set的求交集的功能:第一节课没有课的自习室是S1,第二节课没有课的自习室是S2……最后拿到一整天的全部自习室的安排,就把这些个自习室全部求一边交集就好了。这个功能还是相当方便的。
标准库和第三方库
为了简化自己的工作,标准库和第三方库都是非常有必要的,因为很多功能都是前人已经完成的,例如实现一个计数器、发起http请求、解析html网页,以至于现在Python丰富的数据处理生态,从pandas,到numpy,到机器学习sklearn,到深度学习也有TensorFlow和PyTorch。
这些库实际上提供的就是拆箱即用的工具包,可以免费、自由地获取,然后通过短短的几行代码,完成特别繁杂的操作。
最后,学习Python到底是在学什么,很多工作了很多年的工程师都无法脱离搜索引擎,这是为什么,实际上就是他们并没有完整地掌握Python的基础。这些基础实际上就是建筑师的砖头、画家的颜料、印刷术的活字。
编程就是将自己学会的东西组装出程序来,因此真正属于自己的这部分,是你能够用来自由地舞动键法的武器。在编程世界中大杀四方,不仅要学好基础,把自己的武器打造得锋利,而且学习剑法最好的方式是上场杀敌,不如你想想最近有什么工作如何用编程解决,它可以是处理一大批excel文档,也可以是从网页上把所有数据一次取下来,还可以是把庞杂的文件夹整理清楚。
当然!千万别忘了:一场战争之后,最重要的事情是仔细回顾,前面写的程序涉及了哪些基础知识,哪些基础知识是你还掌握不好的,能不能用更Pythonic的方式解决对应的逻辑。
正确的学python方式的更多相关文章
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 简学Python第一章__进入PY的世界
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- 小朋友学Python(4)
Mac下安装Python 3 Mac系统会自带Python 2.7.x.安装Python 3时,不要卸载Python 2.7.x,因为有Mac系统有一些库会依赖于Python 2.7.x. 安装步骤: ...
- D06——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D06 20180821内容纲要: 面向对象初级学习 1 面向对象 2 类 (1)封装 (2)继承 (3)多态 3 小结 4 练习:选课系统 5 课外拓展:答题系 ...
- 我们一起学Python之——认识Python"规则"
前言: 开学后,跟预想的一样,开学第一天我们就开了Python,虽然之前早就预料到了,但对于一直学Java的我来说,内心还是有一些涟漪的.总归还是要接受的,还不如振作起来,认真对待.我决定从最简单并且 ...
- 小白学 Python 爬虫(7):HTTP 基础
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(10):Session 和 Cookies
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(21):解析库 Beautiful Soup(上)
小白学 Python 爬虫(21):解析库 Beautiful Soup(上) 人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前 ...
- 小白学 Python 爬虫(32):异步请求库 AIOHTTP 基础入门
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
随机推荐
- python 启动时报错无法正常启动(0xc000007b)请单击“确定”关闭应用程序的解决办法
这是一个自己非常傻逼的问题,但是还是想记录下来 晚上安装python,不管是命令提示符中运行还是python直接打开,都提示报错 各种百度,各种查找排除以后,皆不能解决错误 最后发现:特么64位系统下 ...
- 20155208徐子涵 《网络对抗技术》Web基础
20155208徐子涵 <网络对抗技术>Web基础 实验要求 Web前端HTML Web前端javascipt Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密 ...
- adb 安装安卓包
1.搭建安卓环境,或者下载安装ADB工具 2.adb version检查是否安装成功 3.用数据线连上手机,并在手机中打开USB调试模式,使用adb devices 查看链接的设备 这样表示成功连接上 ...
- 二、2.1 Java的下载和安装
1.下载Java 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- 关于crontab
crontab是一个linux系统自带的定时执行任务的功能,有两种方法可以实现 1: 使用命令 crontab -e 然后直接编辑定时脚本,实际是编辑/var/spool/cron 目录下,一个和用户 ...
- MySQL下载与安装
百度云网盘: https://pan.baidu.com/s/11ZIuXcNowp4_bVH4FLhyYA 提取码:ocuh MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发, ...
- 在Django中运行ExtJS 事例
网上关于ExtJS的事例挺多的,但是在Django中使用ExtJS挺少的,当然了,一些大牛觉得ExtJS运用在页面上是很简单的事,但是对于菜鸟来说,实在有点困难. 我这个例子是用在了sublime3这 ...
- 我发起了一个 ILBC 的 子项目 ILBC Studio
ILBC 见 <ILBC 规范> https://www.cnblogs.com/KSongKing/p/10354824.htm 发起这个项目的原因是, 本来想用 VsCode 来写 ...
- pycrypto安装出错的问题 intmax_t C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.
前言: 需要安装 Microsoft Visual Studio2017 Community 或者buildtools 解决方案一(解决了python3.7上安装pycrypto-2.6.1的错误问题 ...
- Getting Started with XlsxWriter
下面是一些关于使用XlsxWriter模块的简单介绍. 安装XlsxWriter 下面的是几个安装XlsxWriter模块的方法: 1.使用Pip 使用pip 方式是最推荐的从PyPi安装Python ...