一、Python简介
1、什么是Python
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。
2、Python的设计理念
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。
3、Python的标准库
Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库命名接口清晰、文档良好,很容易学习和使用。
Python标准库的主要功能有:
(1)文本处理
包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能
(2)文件处理
包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能
(3)操作系统功能
包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、写日记(logging)等功能
(4)网络通信
包含网络套接字,SSL加密通信、异步网络通信等功能
(5)网络协议
支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架
(6)W3C格式支持
包含HTML,SGML,XML的处理。
(7)其它功能
包括国际化支持、数学运算、HASH、Tkinter等
4、Python常见的开发环境
(1)IDLE:Python内置IDE (随python安装包提供)
(2)PyCharm[6]:详见百度百科PyCharm,由著名的JetBrains公司开发,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工 具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
(3)PythonWin:ActivePython或pywin32均提供该IDE,仅适用于Windows
(4)PyPE:一个开源的跨平台的PythonIDE。
(5)eclipse + pydev插件:方便调试程序
(6)emacs:自带python支持,自动补全、refactor等功能需要插件支持
(7)Vim: 最新7.3版编译时可以加入python支持,提供python代码自动提示支持
(8)Visual Studio 2010 + Python Tools for Visual Studio
(9)TextMate
(10)Netbeans IDE
另外,诸如EditPlus、UltraEdit等通用的程序员文本编辑器软件也能对Python代码编辑提供一定的支持,比如代码自动着色、注释快捷键等,但是否够得上集成开发环境的水平,尚有待评估。
5、Python常见的解释器
(1)Python
是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器。
(2)CPython
ClassicPython,也就是原始的Python实现,需要区别于其他实现的时候才以CPython称呼;或解作C语言实现的Python。这是最常用的Python版本。
(3)Jython
原名JPython;Java语言实现的Python,现已正式发布。Jython可以直接调用Java的各种函数库。
(4)PyPy
使用Python语言写的Python。
二、Python程序的基本架构
Python跟其他的编程语言一样,基本架构都如下图所示:
说明:
1、输入方式有变量赋值和输入语句两种(当然不局限这两种);
2、处理方式有算术运算、逻辑运算和算法处理;
3、输出方式有打印输出,写入文件和写入数据库(后面两种输出方式后面再介绍)。
为了更好说明Python程序的基本架构,我们通过几个例子进行说明:
例子一:
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> x = 12 >>> y = 13 >>> z = x + y >>> print (z) 25
上述例子的执行过程是:
输入(变量赋值)->处理(算术运算)->输出(打印输出)
例子二:
>>> str1=raw_input("Please input your name: ") Please input your name: lee >>> print (str1) lee
上述例子的执行过程是:
输入(输入语句)->处理(逻辑运算)->输出(打印输出)
例子三:
继续例子二
>>> str1=raw_input("Please input your name: ") Please input your name: lee >>> print (str1) lee >>> n = len (str1) >>> print (n) 3
上述例子的执行过程是:
输入(输入语句)->处理(逻辑处理)->输出(打印输出)->处理(逻辑处理)->输出(打印输出)
三、Python的输入和输出语句
(一)Python的输出语句
1、print()简单输出
前面我们已经初步使用了print函数进行打印输出,那么print函数的使用时怎么样的呢?以例子进行说明:
(1)print()打印整型数据
>>> print (12) 12
或者
>>> x = 12 >>> print (x) 12
(2)print()打印浮点型数据
>>> print (12.4) 12.4
或者
>>> y = 12.4 >>> print (y) 12.4
(3)print()打印字符型数据
>>> print ('lee') lee
或者
>>> z = 'lee' >>> print (z) lee
(4)print()打印字符串
>>> print ('www.baidu.com') www.baidu.com
或者
>>> str1 = 'www.baidu.com' >>> print (str1) www.baidu.com
注意:比较以下的输出方式:
>>> x = 1 >>> y = 2 >>> z = 3 >>> print x,y,z 1 2 3 >>> print (x,y,z) (1, 2, 3)
2、print()格式化输出
(1)格式
print(format(value,format_modifier))
即 print(format(value,'m,nf'))
(2)说明:
value:数值
format_modifier:格式字
m:输出占位符
n:精度
(3)例子:
>>> print (format(12.3456,'6.2f')) 12.35 >>> print (format(12.3456,'6.9f')) 12.345600000 >>> print (format(12.3456,'9.2f')) 12.35 >>> print (format(12.3456,'3.2f')) 12.35 >>> print (format(0.3456,'.2%')) 34.56% >>> print (format(0.3456,'3.2%')) 34.56% >>> print (format(0.3456,'1.3%')) 34.560%
(二)Python的输入语句
Python输入语句主要采用raw_input函数,我们先查看一下raw_input函数的帮助信息
>>> help (raw_input)
Help on built-in function raw_input in module __builtin__:
raw_input(...)
raw_input([prompt]) -> string
Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
从raw_input([prompt]) -> string这里看出,raw_input函数输入的是string类型的。
1、raw_input函数的格式如下所示:
re = raw_input([prompt])--说明:[]符号表示可用可不用
说明:
prompt:指提示字符
re:返回值
2、例子:
>>> str1 = raw_input() www.baidu.com >>> print (str1) www.baidu.com >>> type (str1) <type 'str'>
比较:
>>> str2 = raw_input('Please input your name: ') Please input your name: lee >>> print (str2) lee >>> type (str2) <type 'str'>
由于raw_input函数处理的是str型,那么有没有办法处理整型和字符型呢?答案是肯定的,请看下面的例子:
>>> age = raw_input('Please input your age: ') Please input your age: 22 >>> type (age) <type 'str'> >>> age = age + 1 Traceback (most recent call last): File "<pyshell#66>", line 1, in <module> age = age + 1 TypeError: cannot concatenate 'str' and 'int' objects >>> age = int (age) >>> age = age + 1 >>> print (age) 23
可以简化为一下的语句:
>>> age = int (raw_input('Please input your age: ')) Please input your age: 22 >>> print (age) 22 >>> type (age) <type 'int'>
继续实验浮点型的例子:
>>> weight = float(raw_input('Please input your weight: ')) Please input your weight: 67.23 >>> print (weight) 67.23 >>> type (weight) <type 'float'>