python快速入门系列_十五分钟快速入门系列:Python基础

Python是一种面向对象的解释型语言, 源码和解释器CPython遵循 GPL协议。

年份

事件

1989

荷兰人Guido van Rossum发明

1991

第一个公开发行版发行

当前版本

3.5.2

TIOBE年度语言

被TIOBE编程语言排行榜2007/2010两度评为年度语言,其他同样拥有这一殊荣的在总多的语言中目前只有Object-C和Java加上今年新晋的Go

年份

年度语言

2003年

C++

2004年

PHP

2005年

Java

2006年

Ruby

2007年

Python

2008年

C

2009年

Go

2010年

Python

2011年

Objective-C

2012年

Objective-C

2013年

Transact-SQL

2014年

JavaScript

2015年

Java

2016年

Go

安装

Linux或者Unix一般都会缺省安装,下载或者文档查询可以参照如下链接

环境变量:PATH

将Python的安装目录加入到PATH中即可

Python自身环境变量

环境变量名

详细

PYTHONPATH

PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。

PYTHONSTARTUP

Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此文件中变量指定的执行代码。

PYTHONCASEOK

加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写.

PYTHONHOME

另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,使得两个模块库更容易切换。

版本确认

python版本确认可以通过如下命令进行

[root@liumiaocn ~]# python --version

Python 2.7.5

[root@liumiaocn ~]#

第一个Helloworld.py

内容:Helloworld.py

#!/usr/bin/python

print "Hello World"

执行:python Helloworld.py

结果

[root@liumiaocn ~]# python Helloworld.py

Hello World

[root@liumiaocn ~]#

#!/usr/bin/python为第一行信息,和shell脚本一样,是用来说明解释所用的shell或者python所在路径。

指导思想

The Zen of Python:There should be one– and preferably only one –obvious way to do it.同时有意的设计限制性很强的语法,比如缩进不正确可能通过编译的语言大概除此之外少有分店。如下代码将不能通过编译,会提示你”expected an indented block”,只有在第3行的print前加一个空格才能通过。其实仔细确认一下可能也会理解,因为在python中不像很多语言用{}来区分代码块。

#!/usr/bin/python

if True:

print "Hello World"

确认

[root@liumiaocn ~]# cat IndentSample.py

#!/usr/bin/python

if True:

print "Hello World"

[root@liumiaocn ~]# python IndentSample.py

File "IndentSample.py", line 3

print "Hello World"

^

IndentationError: expected an indented block

[root@liumiaocn ~]#

加上一个空格的缩进, 则能正常执行。

[root@liumiaocn ~]# cp IndentSample.py IndentSampleFixed.py

[root@liumiaocn ~]# vi IndentSampleFixed.py

[root@liumiaocn ~]# diff IndentSample.py IndentSampleFixed.py

3c3

< print "Hello World"

---

> print "Hello World"

[root@liumiaocn ~]# python IndentSampleFixed.py

Hello World

[root@liumiaocn ~]#

所以,在Python里,缩进还真不是小事,缩进表示块的开始,逆缩进表示块的结束。把这件事情重视起来,统一缩进必须上升到上纲上线的地步,不然,连编译都通不过的代码谈什么质量呢。

python保留字

python主要的保留字如下所示,全为小写

保留字

保留字

保留字

and

exec

not

assert

finally

or

break

for

pass

class

from

print

continue

global

raise

def

if

return

del

import

try

elif

in

while

else

is

with

except

lambda

yield

大小写敏感

Python属于大小写敏感的编程语言,不过不敏感的语言也越来越少了

多行的写法

使用连接符:\

sum = 1 + 2 + 3

print sum

{}或[]或()中不需要使用连接符

注释

注释类型

注释Sample

单行注释

注释内容

单行注释

sum=1+1 #注释内容

多行注释

三个单引号开始 到 三个单引号结束中间的内容全为注释

多行注释

三个双引号开始 到 三个双引号结束中间的内容全为注释

帮助

使用python的在线帮助,比如string相关的方法的方法,使用如下方法(help查看详细文档,dir查看方法列表)

>>> import string

>>> help(string)

>>> dir(string)

python的各种库确认:ls -l /usr/lib64/python*/*.py

变量和作用域

python的变量根据其定义的位置分为全局变量和局部变量两种。局部变量只能用于被声明的函数内部,而全局则可在整个程序范围内使用。

标准数据类型

python支持的标准数据类型

项目

类型

说明

Numbers

数字

支持int/float/long/complex

String

字符串

List

列表

类似数组。下标从0开始,-1表示最后一个元素

Tuple

元组

类似只读数组

Dictionary

字典

类似Hash

python所支持的复数类型complex的虚部和实部的类型为float,一般表示为complex(a,b)

数据类型转换函数

函数

描述

int(x [,base])

将x转换为一个整数

long(x [,base] )

将x转换为一个长整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

unichr(x)

将一个整数转换为Unicode字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

常见比较和判断

类型判断例

判断内容

详细说明

是否数字类型

type(x) is types.IntType 需要import types

是否数字类型

type(x) == types(0)

是否String类型

type(x) is types.StringType 需要import types

是否String类型

type(x) is type(” “)

条件判断

条件判断入门实例

[root@liumiaocn ~]# cat basic-if1.py

#!/usr/bin/python

score = 50

if score < 60 :

print 'E'

elif score < 70 :

print 'D'

elif score < 80 :

print 'C'

elif score < 90 :

print 'B'

else :

print 'A'

[root@liumiaocn ~]#

执行确认

[root@liumiaocn ~]# python basic-if1.py

E

[root@liumiaocn ~]#

循环控制

循环控制入门实例

[root@liumiaocn ~]# cat basic-loop.py

#!/usr/bin/python

level = 0

while level < 10 :

cnt = 0

while cnt < 10-level :

cnt = cnt + 1

print(" ") ,

ascnt = 0

while ascnt < 2*level-1 :

ascnt = ascnt + 1

print("*") ,

print("")

level = level + 1

[root@liumiaocn ~]#

执行

[root@liumiaocn ~]# python basic-loop.py

*

* * *

* * * * *

* * * * * * *

* * * * * * * * *

* * * * * * * * * * *

* * * * * * * * * * * * *

* * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * *

[root@liumiaocn ~]#

函数

使用def进行定义,简单示例如下:

[root@liumiaocn ~]# cat basic-func.py

#!/usr/bin/python

def hellofun( str ):

print "Hello : ",

print str;

return;

hellofun("liumiao")

[root@liumiaocn ~]#

执行确认

[root@liumiaocn ~]# python basic-func.py

Hello : liumiao

[root@liumiaocn ~]#

debug

调试有很多种方式,使用pdb(python debugger)是最常见的方式也不受IDE等的限制,此处简单介绍pdb的用法

gdb命令

描述

break 或 b

设置断点

continue 或 c

继续执行程序

list 或 l

查看当前行的代码段

step 或 s

进入函数

return 或 r

执行代码直到从当前函数返回

exit 或 q

中止并退出

next 或 n

执行下一行

pp

打印变量的值

help

帮助

执行方式:python -m pdb python脚本名称

调试示例

对上文的循环例子的脚本使用pdb进行调试如下:

[root@liumiaocn ~]# python -m pdb basic-loop.py

> /root/basic-loop.py(3)()

-> level = 0

(Pdb) l 很多与gdb使用方式都一样,l for list,列出上下文source

1 #!/usr/bin/python

2

3 -> level = 0

4 while level < 10 :

5 cnt = 0

6 while cnt < 10-level :

7 cnt = cnt + 1

8 print(" ") ,

9

10 ascnt = 0

11 while ascnt < 2*level-1 :

(Pdb) b 11 设定断点

Breakpoint 1 at /root/basic-loop.py:11

(Pdb) c 继续执行

> /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) pp ascnt 查询变量值

0

(Pdb) p cnt

10

(Pdb) c

> /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) c

* > /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) c

> /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) c

* > /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) c

* > /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) c

* > /root/basic-loop.py(11)()

-> while ascnt < 2*level-1 :

(Pdb) help 查看帮助

Documented commands (type help ):

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

EOF bt cont enable jump pp run unt

a c continue exit l q s until

alias cl d h list quit step up

args clear debug help n r tbreak w

b commands disable ignore next restart u whatis

break condition down j p return unalias where

Miscellaneous help topics:

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

exec pdb

Undocumented commands:

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

retval rv

(Pdb) clear 清除断点

Clear all breaks? y

(Pdb) c

* * * * *

* * * * * * *

* * * * * * * * *

* * * * * * * * * * *

* * * * * * * * * * * * *

* * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * *

The program finished and will be restarted

> /root/basic-loop.py(3)()

-> level = 0

(Pdb) q 退出

[root@liumiaocn ~]#

总结

至此,基本的词法,简单的语法应该基本能写了,问题解决时候的debug也有些微涉猎,很基础的问题应该可以接触了。但是这还远远不够,需要我们在实际的工作中慢慢的升级我们的技能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值