1、 python版本的选择
在python的版本中,现在主要是使用python2.X和python3.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.py(python源文件)
-rw-r--r-- 1 root root 109 May 21 20:37 test.pyc(python编译之后的字节码文件)
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 (blist和alist引用同一个对象)
>>> 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中的基本相同,包括if,while,for几种,如下:
>>> 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]