python学习笔记(1)--Python介绍

本节点标题
1、什么是 Python?
2、Python能干啥?
3、Python3解释器
3.1. 调用 Python 解释器
3.1.1. 参数传递
3.1.2. 交互模式
3.2. 解释器及其环境
3.2.1. 源程序编码


=======================================================================================================================

1、什么是 Python?

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象、直译式的计算机程序语言,具有近二十年的发展历史。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python‘s Flying Circus)的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并获取了非常好的效果,完美结合了C和其他一些语言
就这样,Python在吉多手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。目前吉多仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社区经常称呼他是仁慈的独裁者。
Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进度的影响逐渐扩大。Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

官网: www.etiantian.org

python中文开发者社区: http://bbs.pythontab.com/

python在线中文手册: http://docs.pythontab.com/


2、Python能干啥?
Web程序Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。
Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络蠕虫。第三方库Twisted支持异步在线编写程序和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。另有gevent这个流行的第三方库,同样能够支持高性能高并发的网络开发。

GUI开发Python本身包含的Tkinter库能够支持简单的GUI开发。但是越来越多的Python程序员选择wxPython或者PyQt等GUI包来开发跨平台的桌面软件。使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。通过PyInstaller还能将程序发布为独立的安装程序包。

操作系统在很多操作系统里,Python是标准的系统组件。大多数Linux发布版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端机下直接运行Python。有一些Linux发布版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器、Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用作业系统功能的库。通过pywin32这个第三方软件包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。

其他NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。有些公司会使用Scons代替make构建C++程序。很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。很多游戏,如EVE Online使用Python来处理游戏中繁多的逻辑。YouTube、Google、Yahoo!、NASA都在内部大量地使用Python。OLPC的作业系统Sugar项目的大多数软件都是使用Python编写

3、Python3解释器

3.1. 调用 Python 解释器
Python 解释器通常被安装在目标机器的 /usr/local/bin/python3.5 目录下。将 /usr/local/bin 目录包含进 Unix shell 的搜索路径里,以确保可以通过输入:
python3.5
命令来启动他。[1] 由于 Python 解释器的安装路径是可选的,这也可能是其它路径,你可以联系安装 Python 的用户或系统管理员确认(例如,/usr/local/python 就是一个常见的选择)。
在 Windows 机器上,Python 通常安装在 C:\Python35 位置,当然你可以在运行安装向导时修改此值。要想把此目录添加到你的 PATH 环境变量中,你可以在 DOS 窗口中输入以下命令:
set path=%path%;C:\python35
通常你可以在主窗口输入一个文件结束符(Unix 系统是 Control-D,Windows 系统是 Control-Z)让解释器以 0 状态码退出。如果那没有作用,你可以通过输入 quit() 命令退出解释器。
Python 解释器具有简单的行编辑功能。在 Unix系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑和历史记录等功能。在 Python 主窗口中输入 Control-P 可能是检查是否支持命令行编辑的最简单的方法。如果发出嘟嘟声(计算机扬声器),则说明你可以使用命令行编辑功能;更多快捷键的介绍请参考 交互式输入行编辑历史回溯。如果没有任何声音,或者显示 ^P 字符,则说明命令行编辑功能不可用;你只能通过退格键从当前行删除已键入的字符并重新输入。
Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互的解释并执行命令;当使用文件名参数或以文件作为标准输入调用时,它读取文件并将文件作为 脚本 执行。
第二种启动 Python 解释器的方法是 python -c command [arg] ...,这种方法可以在 命令行 执行 Python 语句,类似于 shell 中的 -c 选项。由于 Python 语句通常会包含空格或其他特殊 shell 字符,一般建议将 命令 用单引号包裹起来。
有一些 Python 模块也可以当作脚本使用。你可以使用 python -m module [arg] ... 命令调用它们,这类似在命令行中键入完整的路径名执行 模块 源文件一样。
使用脚本文件时,经常会运行脚本然后进入交互模式。这也可以通过在脚本之前加上 -i 参数来实现。

3.1.1. 参数传递
调用解释器时,脚本名和附加参数传入一个名为 sys.argv 的字符串列表。
你能够获取这个列表通过执行 import sys,列表的长度大于等于1;没有给定脚本和参数时,它至少也有一个元素:sys.argv[0] 此时为空字符串。
脚本名指定为 '-' (表示标准输入)时, sys.argv[0] 被设定为 '-',使用 -c 指令 时,sys.argv[0] 被设定为 '-c'。使用 -m 模块 参数时,sys.argv[0] 被设定为指定模块的全名。
-c 指令 或者 -m 模块 之后的参数不会被 Python 解释器的选项处理机制所截获,而是留在 sys.argv 中,供脚本命令操作。

#!/usr/bin/env python
import sys
print(sys.argv)

演示1如下:
[root@zookeeper-server-01 Node2]# cat test9.py
import sys
print(sys.argv)

[root@zookeeper-server-01 Node2]#
[root@zookeeper-server-01 Node2]# python36 test9.py
['test9.py']
[root@zookeeper-server-01 Node2]# python36 test9.py a
['test9.py', 'a']
[root@zookeeper-server-01 Node2]# python36 test9.py a b
['test9.py', 'a', 'b']
[root@zookeeper-server-01 Node2]# python36 test9.py a b haha
['test9.py', 'a', 'b', 'haha']

以上说明sys.argv是个列表类型,传入的参数都会存到sys.argv列表里。

演示2如下:
• python2.x版本:
[root@zookeeper-server-01 Node2]# cat test9.py
#coding=utf-8
import sys
print(sys.argv)

print "第1个参数为脚本名:",sys.argv[0]

a = sys.argv[1]
b = sys.argv[2]
c = int(sys.argv[1]) + int(sys.argv[2])

print "把第2个参数和第3个参数做运算:%s + %s = %s" %(a,b,c)

[root@zookeeper-server-01 Node2]# python27 test9.py 1 2
['test9.py', '1', '2']
第1个参数为脚本名: test9.py
把第2个参数和第3个参数做运算:1 + 2 = 3
[root@zookeeper-server-01 Node2]#

• python3.x版本:
[root@zookeeper-server-01 Node2]# cat test9.py
#coding=utf-8
import sys
print(sys.argv)

print("第1个参数为脚本名:",sys.argv[0])

a = sys.argv[1]
b = sys.argv[2]
c = int(sys.argv[1]) + int(sys.argv[2])
print("把第2个参数和第3个参数做运算:{0} + {1} =".format(a,b) ,c)
[root@zookeeper-server-01 Node2]# python36 test9.py 1 2
['test9.py', '1', '2']
第1个参数为脚本名: test9.py
把第2个参数和第3个参数做运算:1 + 2 = 3


3.1.2. 交互模式
从 tty 读取命令时,我们称解释器工作于 交互模式。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(>>>);继续的部分被称为 从属提示符,由三个点标识(...)。在第一行之前,解释器打印欢迎信息、版本号和授权提示:
$ python3.5
Python 3.5.2 (default, Mar 16 2014, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
输入多行结构时需要从属提示符了,例如,下面这个 if 语句:
>>> the_world_is_flat = 1
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!


3.2. 解释器及其环境

3.2.1. 源程序编码
默认情况下,Python 源文件是 UTF-8 编码。在此编码下,全世界大多数语言的字符可以同时用在字符串、标识符和注释中 — 尽管 Python 标准库仅使用 ASCII 字符做为标识符,这只是任何可移植代码应该遵守的约定。
如果要正确的显示所有的字符,你的编辑器必须能识别出文件是 UTF-8 编码,并且它使用的字体能支持文件中所有的字符。
你也可以为源文件指定不同的字符编码。为此,在 #! 行(首行)后插入至少一行特殊的注释行来定义源文件的编码:
# -*- coding: encoding -*-
通过此声明,源文件中所有的东西都会被当做用 encoding 指代的 UTF-8 编码对待。
在 Python 库参考手册 codecs 一节中你可以找到一张可用的编码列表。
例如,如果你的编辑器不支持 UTF-8 编码的文件,但支持像 Windows-1252 的其他一些编码,你可以定义:
# -*- coding: cp-1252 -*-
这样就可以在源文件中使用 Windows-1252 字符集中的所有字符了。
这个特殊的编码注释必须在文件中的 第一或第二 行定义。
在 Unix 系统上,Python 3.X 解释器默认未被安装成名为 python 的命令,所以它不会与同时安装在系统中的 Python 2.x 命令冲突。



转载于:https://www.cnblogs.com/helloxwr/p/6503465.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值