标签:
Python是著名的”龟叔
“Guido van Rossum(吉多·范罗苏姆)
在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python语法很多来自C,但又受到ABC语言的强烈影响。来自ABC语言的一些规定直到今天还富有争议,比如强制缩进。但这些语法规定让Python容易读。Guido van Rossum
著名的一句话就是Life is short, you need Python
,译为:人生苦短,我用Python
Python身为一门编程语言,但是他是有多种实现方式的,这里的实现指的是符合Python语言规范的Python解释程序以及标准库等。
这是Python的官方版本,使用C语言实现,使用最为广泛,新的语言特性一般也最先出现在这里。
CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
Python(RPython Python)的Python实现版本,原理是这样的,PyPy运行在CPython(或者其它实现)之上,用户程序运行在PyPy之上。它的一个目标是成为Python语言自身的试验场,因为可以很容易地修改PyPy解释器的实现(因为它是使用Python写的),PyPy的代码性能是Cpython的五倍以上。
Jython是个Python的一种实现方式,Jython编译Python代码为Java字节码,然后由JVM(Java虚拟机)执行,这意味着此时Python程序与Java程序没有区别,只是源代码不一样。此外,它能够导入和使用任何Java类像Python模块。
IronPython是Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似),然后运行,它与.NET语言的互操作性也非常好。
64位下载地址:https://www.python.org/ftp/python/2.7.11/python-2.7.11.amd64.msi
32位下载地址:https://www.python.org/ftp/python/2.7.11/python-2.7.11.msi
下载下来之后双击安装,安装时一路下一步下一步即可,Windows一贯的作风,默认的安装路径是:C:\Python27
右键计算机
—> 属性
—> 高级系统设置
—> 高级
—> 环境变量
—> 在第二个内容框中找到变量名为Path的一行,双击
—> Python安装目录追加到变值值中,用;分割
如图:
Windows 10安装后默认会把环境变量配置好。
CentOS6.7
默认自带Python2.6.6
版本,如果你不需要升级到2.7.11
请跳过这段,如果需要升级请继续往下看。
下载地址:https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
1
|
[root@mosson ~]# wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
|
1
|
[root@mosson~]# yum -y groupinstall "debugging Tools" |
1
|
[root@mosson ~]# tar xf Python-2.7.11.tgz
|
创建链接来使系统默认python变为python2.7
1
|
[root@mosson Python-2.7.11]# ln -fs /usr/local/python2.7.11/bin/python2.7 /usr/bin/python
|
查看Python版本
1
|
[root@mosson Python-2.7.11]# python -V
|
修改yum配置(否则yum无法正常运行)
1
|
[root@mosson Python-2.7.11]# vim /usr/bin/yum
|
一般情况下程序猿的第一个小程序都是简单的输出Hello Word!
,当然Python也不例外,下面就让我们来用Python输出一句Hello Word!
吧!
1
|
[root@mosson python_code]# touch hello.py
|
1
|
#!/usr/vin/env python
|
1
|
[root@mosson python_code]# python hello.py
|
输出的内容为Hello Word!
,OK,你的第一次一句木有了^_^
释意:当Python执行代码的时候,会先把源码读取到内存当中,然后由Cpython进行编译,编译成字节码,最后由Cpython的虚拟机一行一行的解释其内容,再输出到屏幕上,然后释放内存,退出程序。
执行Python代码时,如果导入了其他的.py文件,那么,执行过程中会自动生成一个与其同名的.pyc文件,该文件就是Python解释器编译之后产生的字节码。
代码经过编译可以产生字节码;字节码通过反编译也可以得到代码
在Python文件的开头加入以下代码就制定了解释器。
1
|
#!/usr/bin/python
|
告诉shell这个脚本用/usr/bin/python
执行
1
|
#!/usr/bin/env python
|
在操作系统环境不同的情况下制定这个脚本用python来解释。
执行Python文件的方式有两种
hello.py
的文件内容为
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python my.py
|
如果使用python my.py
这种方式执行,那么#!/usr/bin/python
会被忽略,等同于注释。
1
|
[root@mosson python_code]# chmod +x my.py
|
如果使用./my.py
来执行,那么#!/usr/bin/python
则是指定解释器的路径,在执行之前my.py
这个文件必须有执行权限。
python my.py
实则就是在my.py
文件顶行加入了#!/usr/bin/python
python解释器在加载.py
文件中的代码时,会对内容进行编码,python2.7内部默认ascii字符,而最新的python3.5
默认使用UTF-8。
ascii字符(26个字母,8位表示所有,字符,英文 数字 )
万国码(unicode,最少两个字节,所有的字符,一个中文汉字3个字节表示,占用字节多,浪费空间)
UTF-8(unicode加工:英文特殊字符用八位宝石,中文–24位….,解决unicode所占用的内存)
python制定字符编码的方式有多种,而编码格式是要写在解释器的下面的,常用的如下面三种:
1
|
#!/usr/bin/env python
|
1
|
#!/usr/bin/env python
|
1
|
#!/usr/bin/env python
|
单行注释只需要在代码前面加上#
号
1
|
# 注释内容
|
多行注释用三个单引号或者三个双引号躲起来
1
|
"""
|
py
脚本原文件内容
1
|
#!/usr/bin/env python
|
源文件输出的内容
1
|
[root@mosson python_code]# python note.py
|
单行注释演示
代码改为
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python note.py
|
结果Life is short, you need Pytho
print出来
多行注释演示
代码改为
1
|
#!/usr/bin/env python
|
1
|
[root@ansheng python_code]# python note.py
|
结果I‘m a Python developer
、My blog URL: https://ansheng.me
、Life is short, you need Pytho
都没有print出来
既然用单个单引号或者多引号可以注释多行,那么能不能print多行呢?
1
|
#!/usr/bin/env python
|
1
|
[root@ansheng python_code]# python note.py
|
显然这是可以得 ^_^
变量的命名规则:
[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
1
|
|
定义字符串类型是需要用单引号或者双引号包起来的
1
|
|
或者
1
|
|
证书类型定义的时候变量名后面可以直接跟数字,不要用双引号包起来。
1
|
|
布尔值就只有True(真)
,Flash(假)
1
|
|
解释:如果为真则输出0,否则输出1
if语句是用来检查一个条件:如果条件为真(true),我们运行一个语句块(你为if块),否则(else),我们执行另一个语句块(称为else块)。else子语句是可选的。
例题:如果num变量大于1,那么就输出num大,否则就输出num小,num值为5。
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python num.py
|
例题:如果num变量大于5,那么就输出num大于5,如果num变量小于5,那么就输出num小于5,否则就输出num等于5,num值为5。
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python num.py
|
while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
执行流程图如下
定义一个变量count,默认值为1,然后进去while循环,让其输出1-10,如果大于10则退出。
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python while.py
|
跳出当前循环体,下面代码不再执行,继续执行循环后面的代码
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python while.py
|
跳出本次循环,继续下一次循环
代码
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python while.py
|
条件判断适用于if
、while
等。
1
|
if 1 == 1:
|
1
|
if 1 != 2:
|
1
|
if 1 < 1
|
1
|
if 1 > 1:
|
1
|
if 1 == 1 and 1 > 0:
|
1
|
if 2 > 1 or 2 = 2:
|
1
|
if True:
|
1
|
if Flase:
|
Python的交互式输入使用的是raw_input()
和input()
函数实现的,注意在Python2.7.x
版本的时候可以使用raw_input()
和input()
函数,但是在Python3.5.x
版本的时候就没有raw_input()
函数了,只能够使用input()
代码
1
|
#!/usr/bin/env python
|
1
|
[root@mosson python_code]# python input.py
|
思路:
首先定义一个变量num,值为1,然后用while循环输出1-10的内容,在while循环内加入if语句,判断当前的值如果是7,那么就让7+1,加完之后跳出本次循环,不执行下面的print,7跳出本次循环之后,第二轮的时候num就是8了,而不是7.
1
|
# _*_ coding:utf-8 _*_
|
1
|
1
|
思路:
定义两个变量,分别是count和num,利用while语句循环输出1-100,然后每次就让count+num,这样循环一百次之后相加的结果就是1到100的和了。
1
|
# _*_ coding:utf-8 _*_
|
1
|
5050
|
思路:
利用%
整数相除的余,如果余数是1那么当前的count就是奇数,如果余0,那么当前的count就是偶数。
1
|
# _*_ coding:utf-8 _*_
|
1
|
1
|
1
|
# _*_ coding:utf-8 _*_
|
1
|
2
|
1
|
# _*_ coding:utf-8 _*_
|
1
|
50
|
需求:写一个脚本,用户执行脚本的时候输入用户名和密码,如果用户米或者密码连续三次输入错误则退出,如果输入正确则显示登陆成功,然后退出。
用户名和密码自己定义
1
|
# _*_ coding:utf-8 _*_
|
1
|
User Name:mosson #输入用户名
|
1
|
User Name:as
|
账号或密码连续三次输入错误则退出程序,并且每次提醒用户升序多少次登陆的机会。
标签:
原文地址:http://www.cnblogs.com/mosson/p/5581061.html