一天入门 Python 的一些心得

1. 前言
好久没写文了。最近在搞一些好玩的技术用到了 Python 。我原以为要花些时日,谁知道第一天入门之后便没有再刻意地去学习它了。这里就写写其中的一些关键点吧。如果我去学一门语言不是因为它火了而是我用到它了。曾经闲着没事干的时候把 Kotlin 、Vue、React 学了,但是从来没有实践中用到它们,以至于现在几乎快要忘了。所以这是个惨痛的教训:有可能用不到的东西不要去学。有这个时间泡妞打游戏它不香吗?
2. 为什么选择Python
"玩蛇"其实我是拒绝的,我要搞个爬虫以及数据清洗,包括机器学习的一些东西。而这些方面 Python 具有先天性优势,所以 Python 成了不二的选择。从这里你需要知道当你要去学一个新技术时,你要知道它的优势是什么,它的场景是什么。有不少人去报个班学 Python ,当你问他为什么学 Python 的时候,他告诉你因为它火啊。这种是没有前途的。
3. 如何快速入门Python
这一篇是结合我个人的经历写的,所以想快速入门首先你要有编程的经历,掌握其它任何一门语言的前提下,有一定的学习能力,Python 对你来说是几乎没有难度的语言。
3.1 环境安装和包管理
Python 大部分人学习和使用直接去官方下对应的环境包安装就行了,当然这个也可以。事实上如果用的多了后面会涉及环境的问题。这里建议直接使用 Anacoda3 。这个可以看作 Python 中的 Maven 或者 Gradle 。将来你会遇到有得项目依赖 Python2 有的依赖 Python3 的问题,Anacoda3可以帮助你解决特定的环境管理问题。
3.2 一种以缩进来归纳代码块的语言
这个是 Python 比较特色的一个地方。它不使用大括号 {} 来控制类,函数以及其他逻辑判断的层次。如果是 Java 你会这么写:
public void test(String str){
if(str!=null){
System.out.println("str ="+ str);
}else{
System.out.println("str is null");
}
}
用 Python 就这么写了:
def test(str):
if str:
print('str')
else:
print('None')
从这里可以看出来 Python 把能省的都省了,连变量类型,返回值类型都不要了。作为面向对象的语言来说这有点”不严谨“ ,但是作为脚本语言来说这就非常受用了。写这一篇文章的时候刚好需要修改个证件照的大小,Python 随手就处理了:
file_dir = './2.jpg'
with Image.open(file_dir) as img:
x, y = img.size
x_s = 650
y_s = y * x_s / x
out = img.resize((int(x_s), int(y_s)), Image.ANTIALIAS)
out.save('./3.jpg')
在你掌握一门其它语言的前提下学习 Python 是很容易的。所以基本语法几乎是一遍过。高级特性建议边用边学,不用再这个上面浪费时间。学习任何一门语言都是多练多写。就像神枪手都是子弹喂出来一样,一名出色的 Coder 都需要代码量达到一定的量级。
3.3 难点
我觉得唯一的比较花时间的就是切片(slice)。切片就是按照范围取 list 或者 tuple 中的值。非常灵活,切片不但有正序也有逆序。这也是 Python 擅长处理数据的重要原因之一。这里要花大量的时间取练习和理解操作数据。机器学习,科学实验,数据分析都用得到。
4. 如何快速学习
建议直接自定一个小需求开始学,遇到问题就去解决问题。然后着重练习并理解自己遇到的问题的技术解决途径。我写完 HelloWorld 就没有去按部就班了。 找了个爬虫脚本去尝试爬东西。并且去理解里面的一些写法,然后把自己的一些想法实现进去。练习数据处理可以去连一个数据库,进行各种数据的聚合操作。学新东西你往往不知道什么对你有最直观的提高,只有需求才能让你找到短板、看清方向。不要纠结于某些你不知道用途的语言特性。
5. 尽情地调包
”玩蛇“ 就是玩调包!一名出色的 Python Coder 都是调包侠!Python 有非常丰富的类库让你去实现各种想法。所以用 Python 不要遇到场景就想着造轮子,先去找找有没有轮子。这里有几个常用的轮子你可以在学习的时候就能用起来:
- BeautifulSoup 玩爬虫必备
- Pillow 图片处理库。 比如我上面给美女帮忙P图的的就是它,赢得好感必备。
- Numpy 高性能科学计算和数据分析的基础包。 玩机器学习必备。
- Pandas 数据分析必学
还有非常多,不过上面的几个在某些领域非常强大,玩的好能当饭吃。
6. 总结
Python 作为第二语言非常不错,而且上手非常快。平时处理点数据很顺手,玩起来很爽。如果想搞一些人工智能的东西,需要的门槛就高些,数学、统计、概率、英语、建模一个都不能少。所以如果要吃 Python 这碗饭还是要看清楚自己的能力的。单单会 Python 并不让你具备优势,更不值得去报班学习,因为学 Python 没有难度。
一天入门 Python 的一些心得的更多相关文章
- python urllib2使用心得
python urllib2使用心得 1.http GET请求 过程:获取返回结果,关闭连接,打印结果 f = urllib2.urlopen(req, timeout=10) the_page = ...
- python视频教程:十分钟快速入门python
想要学习python这门语言,却始终找不到一个全面的Python视频教程,倘若你是真心想学好一门语言,小编建议你亲自动手实践的.下面来看看入门python的学习教程. Python的语言特性 Pyth ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(四)
本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(三)
声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群5 ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(二)
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(一)
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 一张图片入门Python
一张图片入门Python 之前已有别人整理了,一张图入门Python,快速了解各种基本的语法. 英文版: 图 5.1. Quick Python Script Explanation 中文版: 图 5 ...
- Python第一天——入门Python(1)数据定义
数据类型: 什么是数据? 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母.符号和模拟量等的统称.现在计算机存储和处 ...
- 新手如何快速入门Python
学习任何一门语言都是从入门(1年左右),通过不间断练习达到熟练水准(3到5年),少数人最终能精通语言,成为执牛耳者,他们是金字塔的最顶层.虽然万事开头难,但好的开始是成功的一半,今天这篇文章就来谈谈如 ...
随机推荐
- Oracle中组合索引的使用详解(转)
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引.在组合索引的使用方面,Oracle有以下特点: 1. 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的w ...
- PDM->OOM->C#实体类生成时,对Blob类型字段的处理
pdm中的Blob字段生成OOM时,自动变成了string类型,再生成实体类时也是string 如何将oom中对应的blob字段设置为Byte[]类型,目前没找到方法, 只能通过脚本,将生成后的OOM ...
- 2018-3-22-win10-uwp-设置-HttpClient-浏览器标识
title author date CreateTime categories win10 uwp 设置 HttpClient 浏览器标识 lindexi 2018-3-22 9:1:55 +0800 ...
- TP-admin即基于ThinkPHP5拿来即用高性能后台管理系统
TP-Admin即基于ThinkPHP5的web后台管理系统(总结一套自己的后台管理系统,方便自己后续的项目开发.) 主要特性:自适应手机端.支持国际化.吸取其他CMF框架优点.多站点部署.日志记录. ...
- docker + jenkins 自动化部署
公司书架上有本docker的书籍,正好最近事不多就写个demo来玩一玩. DevOps未死,ContainerOps已到 ContainerOps VS DevOps 避免了复杂的环境,应用之间的相互 ...
- Android 自定义界面的弹出框(可输入数据)
上午写了一篇博文,介绍了如何定义从屏幕底部弹出PopupWindow,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog 1.1 线定义 ...
- hdu 2410 Barbara Bennett's Wild Numbers
Problem - 2410 挺好玩的一道题目.这道题的意思是给出一个模糊值以及一个确定值,要求求出模糊值中大于确定值的个数有多少. 这题我是直接用dfs的方法搜索的,对于每一位如果之前位置的形成的数 ...
- fakeroot与sudo的区别
fakeroot 可以用来模拟 root 权限,以便建立特定权限与档案拥有者的压缩文件案(tar, ar, .deb 等).透过 LD_PRELOAD 的 dynamic loader 功能,用户不必 ...
- Project Euler Problem 9-Special Pythagorean triplet
我是俩循环暴力 看了看给的文档,英语并不好,有点懵,所以找了个中文的博客看了看:勾股数组学习小记.里面有两个学习链接和例题. import math def calc(): for i in rang ...
- C#循环语句练习(三)
for循环拥有两类:一.穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. (1).羽毛球拍15元,球3元,水2元.200元每种至少一个,有多少可能. (2).百鸡百钱:公鸡2文钱一 ...