1 python版本的选择

         python的版本中,现在主要是使用python2.Xpython3.X,但是一般公司用的比较多的都是python2.X,所以还是直接使用2.X吧。

         在选择版本的时候,直接使用python2.7即可。集成开发环境在linux中使用vim即可,在windows中使用pycharm

[root@python ~]# python

Python 2.7.11 (default, May 21 2017, 11:56:40)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Type "help", "copyright","credits" or "license" for more information.

>>> 


2 python的启动方式

         在使用python的时候,基本上有两种方式,一种是使用交互方式,一种则是直接使用python file.py,如下所示:

[root@python ~]# python交互式模式启动python

Python 2.7.11 (default, May 21 2017, 11:56:40)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Type "help", "copyright","credits" or "license" for more information.

>>> print "Hello"

Hello

>>> exit()

[root@python ~]# python test.py 命令行启动

hello

[root@python ~]# chmod +x test.py 给予python执行权限

[root@python ~]# ./test.py 命令行启动

hello


3 python语言

         python动态语言,也就是在使用变量的时候,可以不声明变量的类型,从而可以直接使用,如下:

[root@python ~]# python

Python 2.7.11 (default, May 21 2017, 11:56:40)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Type "help", "copyright","credits" or "license" for more information.

>>> name = "kel" 给变量name进行赋值

>>> print name 查看变量的值

kel

>>> type(name) 查看变量的类型

<type 'str'>

 

         python是一门解释性语言,在运行的时候,是一边解释一边执行的,也就是python的解释器在解释,python的源文件以.py结尾,在编译之后生成.pyc文件,也就是python的字节码文件,然后在系统中进行运行,如下所示文件:

[root@python ~]# ls -l

total 8

-rw-r--r-- 1 root root  36 May 21 20:31 test.pypython源文件

-rw-r--r-- 1 root root 109 May 21 20:37 test.pycpython编译之后的字节码文件


4查看python安装模块的路径

         在查看python安装模块路径所示:

>>> import sys导入sys模块

>>> sys.path模块的搜索路径

['','/usr/local/python/lib/python2.7/site-packages/pip-8.1.0-py2.7.egg','/usr/local/python/lib/python2.7/site-packages/Django-1.10.1-py2.7.egg','/usr/local/python/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg','/root', '/usr/local/python/lib/python27.zip','/usr/local/python/lib/python2.7','/usr/local/python/lib/python2.7/plat-linux2','/usr/local/python/lib/python2.7/lib-tk','/usr/local/python/lib/python2.7/lib-old','/usr/local/python/lib/python2.7/lib-dynload', '/usr/local/python/lib/python2.7/site-packages']

 [root@python~]# ls -l /usr/local/python/lib/模块的安装路径

total 10244

-r-xr-xr-x.  1root root 10463424 May 21 11:59 libpython2.7.a

drwxr-xr-x.  2root root     4096 May 21 12:04 pkgconfig

drwxr-xr-x. 28 root root    20480 May 21 12:04 python2.7


5输入输出

         python中,输入使用的是print,输入使用raw_input,如下:

>>> name = "kel"

>>> print name 输出

kel

>>> name = raw_input("输入名字:")读取输入

输入名字:kel

>>> print name

kel


6注释

         python中,注释和shell一样,已#开头的表示注释,在执行python的时候,会直接忽略相关的注释,在大片段的注释中,可以使用三个单引号,或者三个双引号,都是一样的效果,三个的时候,可以进行换行,如下所示:

>>> def test():

...     #this is comment

...     print"hello" #this is comment too

...


7运算

         python中,存在三种运算符,标准运算符为+.-,*,/,//,%,**,分别表示为加减乘除,整除,取余,平方。

         比较运算符为<.>,>=,<=,!=

         逻辑运算符为and,or,not


8核心数据类型

         数据类型分为可变类型和不可变类型,主要的含义是指在内存中是否可以修改,数字,字符串,元祖都是不可变类型,而字典,列表都是可变类型,如下所示:

>>> name = "kel"变量赋值

>>> id(name) 查看name的内存地址

139956330052824

>>> name = "some"

>>> id(name) 字符串发生了改变,内存地址发生了改变

139956330104464

         也就是表示name这个变量的值发生变化时,由于字符串是不可变类型,从而name会指向一个新的地址,name中仅仅是引用了这个值的地址,也就是id的值。

         在可变类型和不可变类型,主要是注意在使用修改的时候,使用的都是引用,而不是值。如下:

>>> alist = [1,2,3]

>>> id(alist)

139956330071536

>>> blist = alist blistalist引用同一个对象

>>> id(blist)

139956330071536

>>> blist

[1, 2, 3]

>>> alist[2]="changed"

>>> id(alist)

139956330071536

>>> id(blist)

139956330071536

>>> blist alist发生改变的时候,blist也会发生改变

[1, 2, 'changed']

         字符串,列表和元祖都是属于序列,也就是可以通过下标来进行引用,并且可以进行切片,如下所示:

>>> name = "kel"字符串

>>> alist = [1,2,"age"]列表

>>> atuple = (1,2.9,"test")元祖

>>> name[0]通过下标引用得到值

'k'

>>> alist[1]

2

>>> atuple[2]

'test'

>>> name[0:1]切片操作

'k'

>>> alist[0:2]

[1, 2]

>>> atuple[0:1]

(1,)

>>> alist[-1]-1表示最后一个元素,0表示第一个元素

'age'

         列表中的值可以修改,但是元祖中的值不可修改如下:

>>> alist[1] ="changed"

>>> atuple[1] = "changed"元祖是不可变

Traceback (most recent call last):

  File"<stdin>", line 1, in <module>

TypeError: 'tuple' object does not support itemassignment

         字典是键值对形式,如下所示:

>>>adict={"key":"value"}

>>> adict

{'key': 'value'}

>>> type(adict)

<type 'dict'>

>>> adict['key']

'value'

>>> adict['key'] = "changed"

>>> adict

{'key': 'changed'}


9、控制语句

         python中的控制语句和shell中的基本相同,包括ifwhilefor几种,如下:

>>> if age <0:

...  print"not"

... else:

...  print age

...

20

>>> i = 0

>>> while True:

...  print i

...  ifi>10:

...   break

...  i += 1

...

0

1

2

3

4

5

6

7

8

9

10

>>> for i in range(2):

...  print i

...

0

1


10、列表解析

         列表解析主要使用for循环和条件判断生成一个新的列表,如下所示:

>>> [x for x in range(5) if x%2 == 0]

[0, 2, 4]