热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

每天5分钟玩转Python(01)入门简介

人生苦短,我用Python!终于要写这个系列教程了,虽然我知道会很辛苦,也很难写的比较完


人生苦短,我用Python!

终于要写这个系列教程了,虽然我知道会很辛苦,也很难写的比较完美。总是有其他的事情干扰, 不过我有个特点就是一旦开始就停不下来,我相信自己会坚持写完这个入门教程的。

市面上有好多Python入门书籍,还有各种培训课程上面的教程,可能有人问我为啥还要写这个玩意。我的解释是,总会有那么一小部分人看得懂我在写啥,喜欢这种风格,就足够了。

之前看过《每天5分钟玩转docker容器》和《每天5分钟玩转kubernetes》两个系列,我比较喜欢他这种风格。所以基本上跟那个类似,从易到难,一点点突破,每天只需要花费几分钟时间。日拱一卒就可以了。最后能坚持看完的, 一定会有收获。或者也算是对自己的一种挑战吧。人总是要有点挑战才能进步吧!

Python历史

Python的创始人叫Guido van Rossum,之所以取这个名字是因为他是一个叫"Monty Python"的喜剧团体的爱好者。Python诞生于1989年,作者曾经是一个C++程序员,参加设计过ABC的教学语言,他觉得这个语言很优雅,使用简单, 天生就是为非专业程序员设计的。但是ABC语言由于过于封闭导致也没普及开来。Guido大师决定自己搞一个,参考ABC语言, 取其精华去其糟粕,然后就有了Python这门语言。

目前这门语言热度在TIOBE排行榜上稳居第三,已经超过了C++语言。

Python应用领域

Python应用领域非常广泛,我列一下目前比较热门的应用领域。

WEB开发

Python的Web开发框架逐渐成熟,比如耳熟能详的Django和Flask, 你可以快速地开发功能强大的Web应用。个人首推Flask,强烈建议所以有志于从事Python Web开发的人掌握这门框架。无论是建大型网站, 开发OA或Web API,Flask都可以轻松胜任。

网络爬虫

使用python,几行代码搞定爬虫,可以节省大量时间,能够编写网络爬虫的编程语言有不少,但Python绝对是其中的主流之一。Python自带的urllib库,第三方的requests库和Scrappy框架让开发爬虫变得非常容易。

科学计算和数据分析

随着NumPy,SciPy,Matplotlib等众多程序库的开发和完善,Python越来越适合于做科学计算和数据分析了。它不仅支持各种数学运算,还可以绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比, Python比Matlab所采用的脚本语言的应用范围更广泛,可以处理更多类型的文件和数据。

人工智能

这个就不需要我多说了,将来的十年必定是AI的天下,现在AI的热度已经席卷全球。Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言, 得到广泛的支持和应用。最流行的神经网络框架如Facebook的PyTorch和Google的TensorFlow都采用了Python语言。你不学Python, 你会用那些框架吗?

自动化运维

运维工程师最喜欢使用的脚本语言,很多运维工具都是用python实现,一般说来, Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

云计算

Python的最强大之处在于模块化和灵活性,而构建云计算的平台的IasS服务的OpenStack就是采用Python的, 云计算的其他服务也都是在IasS服务之上的。

网络编程

Python提供了丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet, BitTorrent和Google都在广泛地使用它。

游戏开发

很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小,然而Python则支持更多的特性和数据类型。Python的PyGame库也可用于直接开发一些简单游戏。

编程语言简介和特点

编程语言主要从以下几个角度为进行分类

  • 编译型和解释型

  • 静态语言和动态语言

  • 强类型定义语言和弱类型定义语言

每个分类代表什么意思呢。

编译和解释型语言

CPU不能直接认识并执行我们写的语句,它只能认识机器语言(CPU指令集,二进制的形式)。因此我们开发语言的Virtual Machine要将识别的开发语言转换成机器语言让CPU去执行;那么就有两种以下两种方式:

  1. 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

  2. 解释器则是只在执行程序时才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的;

编译型解释型混合型
CJava ScriptJava
C++PythonC#
GORubyN/A
SwiftPHPN/A
Ojbect-CPerlN/A

静态和动态语言

动态类型语言是指在运行期间才去做数据类型检查的语言实现不需要声明变量的数据类型; 而静态类型语言的数据类型是在编译期间检查的,也就是说在写程序时要声明所有变量的数据类型。

Python就是一种典型的动态类型语言,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

强类型和弱类型定义语言

强类型定义语言是指一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

Python是强类型定义语言。

Python哲学

可以使用 importthis
来打印python哲学。

  1. The Zen of Python, by Tim Peters


  2. Beautiful is better than ugly.

  3. Explicit is better than implicit.

  4. Simple is better than complex.

  5. Complex is better than complicated.

  6. Flat is better than nested.

  7. Sparse is better than dense.

  8. Readability counts.

  9. Special cases aren't special enough to break the rules.

  10. Although practicality beats purity.

  11. Errors should never pass silently.

  12. Unless explicitly silenced.

  13. In the face of ambiguity, refuse the temptation to guess.

  14. There should be one-- and preferably only one --obvious way to do it.

  15. Although that way may not be obvious at first unless you're Dutch.

  16. Now is better than never.

  17. Although never is often better than *right* now.

  18. If the implementation is hard to explain, it's a bad idea.

  19. If the implementation is easy to explain, it may be a good idea.

  20. Namespaces are one honking great idea -- let's do more of those!

我只列出其中几个:

  1. 优雅 - 语法非常的简短干练,没有一点多余的语法结构。

  2. 明确 - python对格式进行强制的限制;将格式整齐划一,就感觉在写诗一样优雅美丽;

  3. 简单 - 在python的设计哲学中,要实现任何一件事情,都应该有一种并且我们认为是最好的一种方式去实现。



推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
author-avatar
mobiledu2502926527
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有