1、python: 优雅 简洁 美丽 www.python.org
简单易用,逻辑明确,机器自动学习,大数据方面,网页,数据怕取等方面,开发工具,自动化运维工具等,重要是方面入门学习;
2、python的安装: yum install -y python
[root@localhost_002 ~]# rpm -q python #查看是否安装python
python-2.7.5-58.el7.x86_64
[root@localhost_002 ~]# python -V #查看python的版本
Python 2.7.5
直接输入python 回车,就可以查看进入到python提示符下; <<<
[root@localhost_002 ~]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
>>> print 'hello world'
hello world
退出:使用ctrl+d 或者 exit() 则可以退出;
3、由于python不支持在命令行下补齐,所以需要用到ipython,支持命令用tab补全;
而安装ipython只能通过pip来安装; pip install ipython
那么如何安装pip,可以通过yum 来安装: yum install python-pip #需要安装 epel-release 源
安装ipython需要联网安装,通过在网站 pypi.python.org/pypi/ipython 来安装
[root@localhost_002 ~]# yum install -y python-pip
[root@localhost_002 ~]# pip install ipython
4、pip list 查看安装了那些模块;
[root@localhost_002 ~]# pip list
Package Version
---------------------------- -------
backports.ssl-match-hostname 3.5.0.1
chardet 2.2.1
configobj 4.7.2
slip 0.4.0
slip.dbus 0.4.0
urlgrabber 3.10
yum-metadata-parser 1.1.4
发现里面没有ipython,可以通过pip install ipython 去安装(默认会去pypi.python.org/pypi/)这里下载最高版本的ipython;
当然:也可以在安装的指定要安装的版本号: pip install ipython-1.2.1 适用于2.6
5、那么如何使用ipython,直接输入ipython就可以进入其命令行下; 支持补全格式;
[root@localhost_002 ~]# ipython
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
Type "copyright", "credits" or "license" for more information.
IPython 5.8.0 -- An enhanced Interactive Python.
In [1]: print 'helle world'
helle world
注释:如何用源码包编译安装python:
1:首先下载源码包,然后解压;
2:使用setup.py install (这个脚本是在压缩包里存在的);
安装完后,就可以用pip查看到了;
6、python文件类型有三种方式:
一种是源码文件 是.py结尾,通过在python解释器来执行; python 1.py
[root@localhost_002 day01]# cat 1.py
#!/bin/python #指定解释器
print 'hello world'
[root@localhost_002 day01]# python 1.py #执行
hello world
再一种是编译文件,也就是python源码经过编译后生成了一个扩展名为.pyc结尾的文件;
通过使用import 来插入compile模块来支持编译; 然后来编译; 查看当前目录生成了一个.pyc结尾的文件;
[root@localhost_002 day01]# cat 2.py
#!/bin/python
import py_compile
py_compile.compile('./1.py')
[root@localhost_002 day01]# ls
1.py 1.pyc 2.py
[root@localhost_002 day01]# file 1.pyc
1.pyc: python 2.7 byte-compiled
[root@localhost_002 day01]# python 1.pyc #执行
hello world
注释:如上图所示,1.py为之前的文件; 此时需要编译的就是1.py这个文件;
注释:执行时需要 python 1.pyc 就可以; 如果把源文件(1.py)删除,也是可以执行的;
第三种是编译并优化代码,扩展名为.pyo -O 优化 -m 模块 python -O -m py_compile 1.py
[root@localhost_002 day01]# python -O -m py_compile 1.py
[root@localhost_002 day01]# ls
1.py 1.pyc 1.pyo 2.py
[root@localhost_002 day01]# python 1.pyo
hello world
注释: .pyc .pyo
3、python 变量;存在于内存中,值可以改变的;对数据的应用;
变量名:大小写字母,数字 下划线 ,数字不能开头;
a = 1 给a 赋值123;
id(a) 查看这个变量;
In [3]: a = 5
In [4]: id(a)
Out[4]: 15674376
运算符; 赋值运算符 算术运算符 关系运算符 逻辑运算符
1: 赋值运算符; = += -= *= /= %=
没有引号的表示数值,带引号的表示字符串;
x = 2 #符值成数值;
x = 'abc' #赋值成字符串; #注释:字符串要用引号引起来的;
通过type(x) #查看它的类型;
In [7]: x =2 #赋予一个数值;
In [8]: type(x)
Out[8]: int
In [9]: a = 'abc' #赋予一个字符串;
In [10]: type(a) #查看它的类型;
Out[10]: str
In [11]: id(a)
Out[11]: 139947466827656
+= 表示 x = 原来x的值 加 3;
In [30]: x = 2
In [31]: x += 3
In [32]: print(x)
5
-= 表示 x= 原来x的值 减 2 ;
In [39]: print(x)
5
In [40]: x -= 2
In [41]: print(x)
3
x *= 表示x= 原来x的值乘以2;
In [42]: print(x)
3
In [43]: x *=2
In [44]: print(x)
6
x /= 表示x= 原来x的值除以3;
In [45]: print(x)
6
In [46]: x /=3
In [47]: print(x)
2
x %= 表示x = 原来x的值除以3,并取余数;
In [49]: x=10
In [50]: print(x)
10
In [52]: x %=3
In [53]: print(x)
1
算术运算符; + - * / // % **
注释:加号如果连接是数字,则当做算术运算符,把两个数字相加之和; 3 + 4 7
加号如果连接的是字符串,则把两个字符串拼接到一起; 'a' + 'b' ab
/ 和 // 都表示除; 前者表示显示小数点后的部分, 后者表示整除; 只取整数部分;
In [60]: 4 / 3
Out[60]: 1
In [61]: 4.0 / 3
Out[61]: 1.3333333333333333
In [62]: 4.0 // 3
Out[62]: 1.0
,吗* 和 ** ; 前者表示乘; 后者表示乘方 2 ** 3 表示2的3次方;
关系运算符; > < >= <= == != 通过返回值 true 和flase 来判断;
In [72]: 1 > 2
Out[72]: False
In [73]: 1 < 2
Out[73]: True
In [74]: 1 <= 2
Out[74]: True
In [75]: 1 >= 2
Out[75]: False
In [76]: 1 == 1
Out[76]: True
In [77]: 1 != 1
Out[77]: False
3:逻辑运算符; and逻辑与 or逻辑或 not逻辑非
and逻辑与 true and flase 只有两个表达式都成立时才会返回true;否则是flase; 相当于 shell 下的 &&
or 逻辑或 flase and true 只有两个表达式有一个成立,返回的就是true;两个不成立则是flase; 相当于 shell 下的 ||
not 逻辑非 not flase 取反,比如本来应该是true,显示为flase;
In [78]: 1 == 1 and 2 > 1 #使用and逻辑与,两个表达式都成立则是true;
Out[78]: True
In [79]: 1 == 1 and 2 < 1 #and逻辑与,只要有一个表达式不成立则是flase;
Out[79]: False
In [80]: 1 == 1 or 2 > 1 #or逻辑或,两个表达式成立显示true;
Out[80]: True
In [81]: 1 == 2 or 2 < 1 #or逻辑或,只要有一个表达式成立则是true;
Out[80]: True
In [83]: not 1 == 1
Out[83]: False
注释: 算术运算符 关系运算符 逻辑运算符
如下图是一个运算符类型,同一个框内的越往右优先级越高;
注释:
help(input) 查看帮助函数;
练习:写一个四则运算,输入两个字符,可以进行 加 减 乘 除;
需要从键盘输入的话,我们需要使用到 input() 或者 raw_input() 这两个函数的其中一个;
input 接受的是一个表达式;更适合于出来数字,而字符串需要用单引号或者双引号引起来的;
In [86]: input("please input: ")
please input: 123
Out[86]: 123
注释:如果输入字符串,则需要加单引号或者双引号;如下:不然会报错;提示变量没有定义;
In [91]: input("please input: ")
please input: abc
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-91-b5de685b17dd> in <module>()
----> 1 input("please input: ")
<string> in <module>()
NameError: name 'abc' is not defined
In [92]: input("please input: ")
please input: "abc"
Out[92]: 'abc'
raw_input “会把键盘的输入当做字符串;你输入了数字,也会认为是字符串;无论你输入了什么;
In [93]: name = raw_input("please input: ")
please input: 123
In [94]: type(name)
Out[94]: str
In [95]: name = raw_input("please input: ")
please input: abc
In [96]: type(name)
Out[96]: str
脚本内容如下;
[root@localhost_002 python]# cat szys.py
#!/usr/bin/python
num1 = input("Please input: ")
num2 = input("Please input: ")
print "%s + %s = %s" % (num1, num2, num1+num2)
print "%s - %s = %s" % (num1, num2, num1-num2)
print "%s * %s = %s" % (num1, num2, num1*num2)
print "%s / %s = %s" % (num1, num2, num1/num2)
#print num1 + num2
#print num1 - num2
#print num1 * num2
#print num1 / num2
[root@localhost_002 python]# python szys.py
Please input: 3
Please input: 445
3 + 445 = 448
3 - 445 = -442
3 * 445 = 1335
3 / 445 = 0