python的起源和发展_Python入门第一课——Python的起源、发展与前景!

我们在做任何一件事情之前,我们都会通过各种渠道去搜集事情的信息,了解事情的来龙去脉,学习一门编程语言也是如此,只有知根知底,我们才能有明确的方向和目标,以及底气去完成这件事情,今天我带大家来看看Python的前世今生,希望能够帮助到大家学习Python。

77f7dace-7134-49bc-970a-29f9f4cccbf6

诞生

创始人:Guido van Rossum。

国籍:荷兰。

主要成就:发明 Python 语言。

发明日期:1989年圣诞节。

发明初衷:为了打发圣诞节的无趣,决心开发一个新的脚本解释程序。

名字由来:从作者喜欢的肥皂剧「Monty Python飞行马戏团」中得名。

8c32042c541e4986ac8f20e2db37925b

Guido van Rossum

语言特点

Python 的设计哲学是「优雅」、「明确」、「简单」。

Python 的设计理念是:用一种方法,最好是只有一种方法来做一件事。

所以,python 源码具备好的可读性。

为了证明 Python 的简洁,我给大家准备了一个福利,在七夕节送给你爱的人。

这个福利只需一行代码就够了。

print('\n'.join([''.join([('AndyLove'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))

执行结果:

a7a76f28eaf847c58f63a0a61b25e4a1

心动了吗?心动不如行动。赶紧详细了解下强大的 Python。

Python 是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python 支持重载运算符和动态类型。

Python 提供了丰富的 API 和工具,以便程序员能够轻松地使用 C 语言、C++、Cython 来编写扩充模块。Python 编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把 Python 作为一种“胶水语言”(glue language)使用。使用 Python 将其他语言编写的程序进行集成和封装。

主要特点如下:

1 简单

Python 是一种代表简单思想的语言。

2 易学

Python 有极其简单的语法。

3 免费、开源

Python 是 FLOSS(自由/开放源码软件)之一。

4 高层语言

使用 Python 编写程序时无需考虑如何管理程序使用的内存一类的底层细节。

5 可移植性

Python 已被移植到很多平台,这些平台包括 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE 甚至还有 PocketPC。

6 解释性

可以直接从源代码运行。在计算机内部,Python 解释器把源代码转换为字节码的中间形式,然后再把它翻译成计算机使用的机器语言。

7 面向对象

Python 既支持面向过程编程也支持面向对象编程。

8 可扩展性

部分程序可以使用其他语言编写,如c/c++。

9 可嵌入型

可以把 Python 嵌入到 c/c++ 程序中,从而提供脚本功能。

10 丰富的库

Python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk 和其他与系统有关的操作。

Python版本

Python 主要版本有 2.x 和 3.x。2.x 和 3.x 相比主要有哪些变化?

print

在进行程序调试时用得最多的语句可能就是 print,在 Python 2 中,print 是一条语句,而 Python 3 中作为函数存在。有人可能就有疑问了,我在 Python 2 中明明也看到当函数使用。

# py2

print("hello")

#输出:

hello

#py3

print("hello")

#输出:

hello

然而,你看到的只是表象,那么上面两个表达式有什么区别?从输出结果来看是一样的,但本质上,前者是把 ("hello") 当作一个整体,而后者 print() 是个函数,接收字符串作为参数。

# py2

print("hello","brucepk")

#输出:

('hello', 'brucepk')

#py3

print("hello","brucepk")

#输出:

hello brucepk

这个例子就很明显了,在 py2 中,print 语句后面接的是一个元组对象,而在 py3 中,print 函数可以接收多个位置参数。

编码

Python2 的默认编码是 asscii,这也是导致 Python2 中经常遇到编码问题的原因之一,至于是为什么会使用 asscii 作为默认编码,原因在于 Python 这门语言诞生的时候还没出现 Unicode。Python 3 默认采用了 UTF8 作为默认编码,因此你不再需要在文件顶部写 # coding:utf-8 了。

其他的不同点就不一一列举了,因为作者已经通知大家了。

2018年3月,该语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

版本选择

所以有选择困难症的同学不用纠结了,小白们直接选 python3 学习吧。

但是有些小白在我技术交流群反馈他们现在学习 Python 还是选择 Python2,原因是:网上找的教程资料都是 Python2 的,扎心了,老铁们。我网盘里有大量 Python3 的学习资料,公众号回复「py」获取。

人生苦短,我用 Python

7 月 20 日,IEEE 发布 2017 年编程语言排行榜:Python 高居首位。

Python 如今这么火爆的原因是什么呢?以下几点分析供参考。

12 年到 14 年是云计算最火爆的几年,大批创业公司和巨头挤破头地进军云计算领域,大家都在做 IAAS,最著名的云计算开源平台 OpenStack 就是基 于Python 开发的,为此催生出不少 Python 岗位。

14 年到 15 年是「大众创新,万众创业」口号喊得最响两年,北京大街小巷似乎人人都是创业者,O2O、P2P 产品如雨后春笋般冒出,什么语言最适合快速搭建原型?当然是 Python,Python 的开发速度一个顶三。

16 年 17 年人工智能火遍大江南北,AlphaGO 的出现让业界为之兴奋,人工智能不再是概念,而人工智能、机器学习的首选语言就是Python。

这两年特别是网络爬虫火得一塌糊涂,10个写爬虫的9个在用Python,为什么爬虫这么火,这个还是跟大数据有关,因为数据挖掘、分析、机器学习、人工智能都需要大数据的支撑,而真正有大数据的厂商没几个,所以小厂不得不通过爬虫去获取数据。

Python 如此简洁和强大,所以,人生苦短,我用 Python。

所以我给想转行入 IT 的人一些建议,当你还在是选择 Java 还是选择 Python 这个问题面前徘徊时,不妨想想趋势,虽然 Java 仍然是现在世界上最流行的语言,但是你现在学 Java,和入行多年的人来说,你毫无胜算。Python 作为新生代的宠儿,是未来的趋势语言。所以,当你毫无优势时,你应该把赌注全部押在趋势上,这是最有可能让你弯道超车的方式。

好了,以上就是小编为大家带来的Python的相关消息,希望对打算学习Python的你,或是在学习Python中的你给到帮助。

本文到此告一段落了,喜欢本文的小伙伴可以点波关注或转发,以此帮助更多的人!

本文来自网络,如有侵权,请联系小编删除!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL分页查询语句

单表分页查询语句&#xff1a; select * from tbl_name limit start_index, rows_per_page&#xff1b;start_index&#xff1a;每页数据的起始行的索引值&#xff0c;行的索引值从 0 开始 rows_per_page&#xff1a;每页显示的行数 page_num&#xff1a;查询的页码 关系式&a…

spring依赖注入_Spring依赖注入

spring依赖注入介绍&#xff1a; 在设计良好的Java应用程序中&#xff0c;这些类应尽可能独立。 这样的设计提高了组件的可重用性。 它还使对各个组件进行单元测试变得更加容易。 依赖注入的概念促进了Java对象之间的松散耦合。 在本教程中&#xff0c;我们将讨论Spring框架中…

excel 时间戳_我没有Excel基础,可以学Power BI吗

当然可以&#xff01;没有Excel基础一样可以熟练掌握Power BI !Excel基础可以略微影响Power BI的上手速度&#xff0c;却不能决定最终对Power BI的运用能力。如果有Excel基础学习Power BI在最初阶段会更快&#xff0c;但经过实践证明&#xff0c;Excel基础对于PBI的学习进度影响…

Windows下查看wifi密码的命令

netsh wlan show profiles namewifi名称 keyclear

lemon geci_创建一个Java :: Geci生成器

lemon geci几天前&#xff0c;我写了有关Java :: Geci架构&#xff0c;代码生成原理以及生成Java源代码的可能不同方式的文章。 在本文中&#xff0c;我将讨论在Java :: Geci中创建生成器有多么简单。 您好&#xff0c;Wold生成器 HelloWorld1 最简单的生成器是Hello, World…

安卓 图像清晰度识别_OCR文字识别的功能及注意事项

首先OCR文字识别是指电子设备检查纸上打印的字符&#xff0c;然后用OCR文字识别技术翻译成计算机文字的过程&#xff1b;就是对文本资料进行扫描&#xff0c;然后对图像文件进行分析处理&#xff0c;获取文字及版面信息的过程。那么在日常生活中有很多公司有文字识别这方面需求…

薪资/薪水/金额的数据类型

MySQL 数据库中&#xff0c;金额字段使用的数据类型和长度建议为&#xff1a;decimal(11,2) 而对应的实体类的成员变量的数据类型建议为&#xff1a;BigDecimal

java中list去除空值_Java –从列表中删除所有空值

java中list去除空值介绍&#xff1a; 在本文中&#xff0c;我们将学习如何使用普通的Java&#xff0c;Java 8 lambda表达式和某些第三方库从Java 列表中删除空值 。 所以&#xff0c;让我们开始吧&#xff01; 从Java中的 让我们探索从Java 列表中删除null的不同方法&#xf…

URI is not registered (Settings | Languages Frameworks | Schemas and DTDs)

参考&#xff1a; https://www.cnblogs.com/ttflove/p/6341469.html https://blog.csdn.net/c_learner_/article/details/107228678

无法识别的属性“targetframework”。请注意属性名称区分大小写。_神奇!你思考过计算机是怎么识别玻璃和透明物体的吗?...

真实场景中的镜面/玻璃检测和语义分割Charmve | English | Chinesehttps://github.com/Charmve/Mirror-Glass-Detection在这个项目中&#xff0c;我正在学习反射镜和玻璃检测/分段技术。镜子是反射表面&#xff0c;可以反射前面的场景&#xff0c;而玻璃是透明表面&#xff0c;…

Java中的out.write()和out.print()的区别

out 就是 PrintWriter 对象。 out.print() 有处理空值&#xff0c;如果传入的字符串为 null&#xff0c;则会转换为"null"字符串&#xff0c;print() 后续还是调用的 write() 方法&#xff0c;write() 传入的字符串不能为空。这个可以通过 PrintWriter 的源码中看到…

python if else用法_python列表推导式中使用if-else

今天在处理自动化邮件数据时碰到数据行中包含字符串后&#xff0c;从hive中拿到的整数型数据自动转化成了浮点数&#xff0c;严重影响美观性。因此想到了用列表推导式来做转化&#xff0c;将其中的数字型数据全部转化为整型&#xff0c;而字符型数据保留原样。 列表推导式总共有…

java使用:: 表达式_Java 12:开关表达式

java使用:: 表达式在Java 12中&#xff0c;对switch语句进行了增强&#xff0c;以便可以将其用作表达式。 现在也可以在一种情况下打开多个常量&#xff0c;从而使代码更简洁易读。 这些增强功能是一种预览语言功能 &#xff0c;这意味着必须使用--enable-preview标志在Java编译…

jsp中request.getAttributeNames()报红

缺少 servlet-api 依赖&#xff1a; <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency>

fluent瞬态_Java中的瞬态关键字及其使用

fluent瞬态最近&#xff0c;我在一个朋友的一个研究项目中遇到了一个十字架&#xff0c;他们正在学习Java编程的基础知识&#xff0c;其中一些被遗忘的敏感信息打印在文本文件中&#xff0c;并记住了Java中的瞬时关键字。 Java中的瞬时关键字在安全性方面起着重要作用&#xf…

jsp中out.println()报红

需要引入 jsp-api&#xff1a; <dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2.1-b03</version> </dependency>

graphql 有必要吗_您准备好观看GraphQL了吗?

graphql 有必要吗在上一篇文章中&#xff0c;我们讨论了GraphQL与REST相比的优势。 在本文中&#xff0c;我们将看到GraphQL的实际应用。 我创建了一个示例应用程序来展示REST和GraphQL之间的差异。 首先&#xff0c;我们将看到简单产品细节端点的REST实现。 我已经使用Spring …

报错java.lang.NoClassDefFoundError: ognl/DefaultMemberAccess

不要使用新版的 ognl&#xff0c;从 3.2 开始&#xff0c;会报各种乱七八糟的错误。建议使用 3.1.x 版本的&#xff0c;例如下面的版本&#xff1a; <dependency><groupId>ognl</groupId><artifactId>ognl</artifactId><version>3.1.15&l…

spring 注释_Spring核心注释

spring 注释介绍&#xff1a; org.springframework.beans.factory.annotation和org.springframework.context.annotation包中存在的Spring注释通常称为Spring Core注释。 我们可以将它们分为两大类&#xff1a;DI相关的注释和上下文配置注释&#xff1a; 在本教程中&#xff0…

Struts2 <s:debug/> 标签无法显示

首先&#xff0c;确保在 JSP 页面中引入 Struts2 的标签库&#xff1a; <% taglib uri"/struts-tags" prefix"s"%>在 Struts 2 项目中需要查看值栈&#xff08;Value Stack &#xff09;的内容&#xff0c;但是在 JSP 页面中添加了 <s:debug/&g…