http://www.cnblogs.com/wupeiqi/articles/4906230.html
http://www.cnblogs.com/wupeiqi/articles/5433925.htm
电脑语言进化史
机器语言(二进制)
0101010110101011010101101010110101010
汇编
A54 <===> 1010110101
C语言
JAVA, C#, PHP, PYTHON
虚拟机 分配内存
print("Hello world!") >>>Hello world!
http://coolshell.cn//wp-content/uploads/2010/10/EvolutionOfComputerlanguages.png
Python简介
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。(祖师爷还真够无聊的-_-!)
2016年1月计算机语言排行,Python排行第五
l
python种类
cPython
- 使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上
程序员:掌握一种规则的cPython
jPython, ironPython, rubyPython
- Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
- IronPython将Python代码编译成C#字节码,然后在CLR上运行。
程序运行过程
Pyhton > jPython > 中间代码 > java虚拟机 > 机器码 >计算机
pypy
- 将Python的字节码字节码再编译成机器码
pypy > 机器码 >计算机
PyPy在兼容和效率都有很强大,有兴趣可以看看。
http://www.oschina.net/translate/why-are-there-so-many-pythons
python语言的缺点:
运行速度慢。话说是1.001秒和1.1秒的区别...
代码不能加密。经济共享时代,连google都共享代码,这个就略去吧...
安装Python
windows:
1、下载安装包 https://www.python.org/downloads/ 2、安装 默认安装路径:C:python27 3、配置环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 如:原来的值;C:python27,切记前面有分号
Linux 更新Python
Linux和Mac系统已经自带Python
查看默认Python版本 python -V 1、安装gcc,用于编译Python源码 yum install gcc 2、下载源码包,https://www.python.org/ftp/python/ 3、解压并进入源码文件 tar -xvf file.tar 4、编译安装 ./configure make all make install 5、查看版本 /usr/local/bin/python2.7 -V 6、修改默认Python版本 mv /usr/bin/python /usr/bin/python2.7 ln -s /usr/local/bin/python2.7 /usr/bin/python 7、防止yum执行异常,修改yum使用的Python版本 vi /usr/bin/yum 将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.7
编码
最小的单元是位(bit),接着是字节(Byte),一个字节=8位,英语表示是1 byte=8 bits 。机器语言的单位Byte。1 KB=1024 Byte; 1 MB=1024 KB; 1 GB=1024 MB ; 1TB=1024 GB。
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)
8位:所有英文,字符,数值,ascii
01001010==2**8 = 256
Unicode (Universal Multiple-Octet Coded Character Set) 通用多八位编码字符集的简称,支持世界上超过650种语言的国际字符集。
A=65= '000000000B1000001' 前8个零为补齐
最少用2个字节(16bit):
1byte(字节) = 8bit =01010101
2byte(字节) = 16bit = 0101010101010101 = 2**16
gbk 汉字 (3字节):
陈:
3 byte (字节) =
010101010101010101010101
UTF -8 Unicode Translation Format,UTF-8是Unicode的其中一个使用方式, 即把Unicode转做某种格式的意思。
unicode加工:
英文:8位
欧洲:16位
中文:24位
......
转码实例 python2.7
1 # -*- coding: -*- 2 3 temp = "李杰" #utf-8 4 #解码,需要指定原来的什么编码 5 temp_unicode = temp.decode('utf-8') 6 #先转成unicode,再转成gbk 7 temp_gbk = temp_unicode.encode("gbk") 8 print(temp_gbk)
#-*- conding:utf-8 -*- 适用于 python 2.7
转码实例 python 3.X
1 #py3 2 #py3, 自动安装 utf-8, unicode, gbk 3 #py3,移除了python的unicode类型 4 tmp = "李杰" 5 #自动转换 utf-8, unicode, gbk 6 temp_gbk = temp.encode('gbk')
unicode, gbk, utf -8 的转换
py2.7:以unicode为中间互相转码
utf-8 > unicode > gbk
utf-8 解码unicode编码gbk
py3.5:系统自带编码转译
utf -8 > gbk
window上输出
utf-8 > unicode
Python 入门
python内部执行过程如下:
简单程序模板(Python2.7)
#!/usr/bin/env python #声明执行python解释器 # -*- coding: utf-8 -*- #声明UTF-8编码 "This a test module" #注析 import sys import os #模块导入 debug = True #(全局)变量导入 局部变量可代替全局变量 class FooClass(object): "Foo class" pass def test(): #函数定义 "test function" # modules, function执行 foo = FooClass() if debug: print"run test()" if __name__ == '__main__': #主程序 test()
linux 系统中
.py文件首行 #!/usr/bin/env python 编译器的位置
Linux终端 ./h.py (需要首行注明 #!/usr/bin/env python)
或 python h.py (启动python执行程序)
注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
内库和导入
/python/lib/model.py 内库文件
import model #在内库中找到lib.py,将内容替换
创建执行代码
1. 创建XXX.py文件
使用英文名字路径
2. 写代码
a. 头部两行
b. 写功能代码
3.执行代码
a.打开终端
功能键+R,CMD
b. python代码文件路径
变量
1、声明变量
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 li = raw_input("Username") li 代指raw_input输入的内容 4 name = "wupeiqi"
上述代码声明了一个变量,变量名为: name,变量name的值为:"wupeiqi"
变量的作用:昵称,其代指内存里某个地址中保存的内容
变量定义的规则:
- 变量名只能是 字母、数字或下划线__的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名, 不能是python内部关键字
['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']
2、变量的赋值
name1 = "wupeiqi" name2 = "alex"
![](https://images2015.cnblogs.com/blog/425762/201510/425762-20151024180236677-1430341076.png)
name1 = "wupeiqi" name2 = name1
![](https://images2015.cnblogs.com/blog/425762/201510/425762-20151024180334849-979288684.png)
![](https://images2015.cnblogs.com/blog/948834/201605/948834-20160514080512187-304663822.png)
![](https://images2015.cnblogs.com/blog/948834/201605/948834-20160514083317890-1711859066.png)
![](https://images2015.cnblogs.com/blog/948834/201605/948834-20160514111432343-1372998572.png)
1 >>> B = raw_input("raw_input: ") 2 raw_input: 123 3 >>> type(B) 4 <type 'str'> #‘raw_input’输出的是字符串 5 >>> C = input("input: ") 6 input: 123 7 >>> type(C) 8 <type 'int'>#‘input’输出的是整数 9 >>>
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 # 将用户输入的内容赋值给 name 变量 5 name = raw_input("请输入用户名:")#raw_input()只能在python2.x使用 6 7 # 打印输入的内容 8 print name
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass #导入getpass模块 5 6 # 将用户输入的内容赋值给 pwd 变量 7 pwd = getpass.getpass("请输入密码:") 8 9 # 打印输入的内容 10 print pwd
if 判断条件:
执行语句……
elif:
执行语句……
else:
执行语句……
![](https://images2015.cnblogs.com/blog/948834/201605/948834-20160514130727530-22940156.png)
#赋值
name = "alex" #一个等号是赋值 #两个等号的比较 if 1 == 1: print("11111")# 1 == 1为True,执行本句 else: print("22222")
if 1 != 1:
print("1111")
else:
print("2222")# 1!= 1 为False,执行本句
1 if True: 2 print("11111") # if为True将执行本句 3 else: 4 print("22222") 5 6 if False: 7 print("11111") 8 else: 9 print("22222")# if为False将执行本句
1 inp = raw_input(">>>") 2 3 if inp == "1": 4 print('111')#条件一 5 6 elif inp == "2": 7 print('222')#条件二 8 9 elif inp == "3": 10 print('333')#条件三 11 12 else: 13 print('...')#条件四
if 条件应用
用户登陆验证
1 # 提示输入用户名和密码 2 3 # 验证用户名和密码 4 # 如果错误,则输出用户名或密码错误 5 # 如果成功,则输出 欢迎,XXX!
#!/usr/bin/env python # -*- coding: encoding -*- import getpass name = raw_input('请输入用户名:') pwd = getpass.getpass('请输入密码:') if name == "alex" and pwd == "cmd": print "欢迎,alex!" else: print "用户名和密码错误"
name = raw_input("Username: ") pwd = raw_input('Password: ') if name == "alex" and pwd == "123":#判断用户输入name是否等于alex, pwd是否等于123; print ('yes') else: print('no')
根据用户输入内容输出其权限
1 # 根据用户输入内容打印其权限 2 3 # alex --> 超级管理员 4 # eric --> 普通管理员 5 # tony --> 业务主管 6 # 其他 --> 普通用户
1 #!/usr/bin/env python 2 # -*- coding: encoding -*- 3 4 name = raw_input('请输入用户名:') 5 6 7 if name == "alex": 8 print "超级管理员" 9 elif name == "eric": 10 print "普通管理员" 11 elif name == "tony": 12 print "业务主管" 13 else: 14 print "普通用户"
外层变量,可以被内层变量使用
内层变量,无法被外层变量使用
条件 and 和 or
if name == 'alex' or name == 'eric': 只要满足任何一个or的条件,进入当前代码块
1 if 条件: 2 代码块 3 elif 条件: 4 代码块 5 else: 6 代码块 7 8 条件 9 True False 10 1>2 n1 > n2 n1 == n2 11 name == 'alex' or name == 'eric' 12 name != 'alex' 13 name == 'alex' and pwd == '123'
while 条件: #条件成立,代码会一直循环执行 代码块 import time while True: print('1') time.sleep(1) #程序在while = True, print('1')一直循环 print('end') n1= True while n1: #n1 = True程序进入循环, print('1') #代码块1 time.sleep(1) n1 = False #n1= False程序跳出n1=True的循环执行下面代码块 print('end')
while循环
在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
while 条件: #条件成立,代码会一直循环执行 代码块 import time while True: print('1') time.sleep(1) #程序在while = True, print('1')一直无限循环 print('end')
import time n1= True while n1: #n1 = True程序进入循环, print('1') #代码块1 time.sleep(1) n1 = False #n1= False程序跳出n1=True的循环执行下面代码块 print('end')
1
end
>>>
break
用于跳出所有循环,并且break下面的代码不在执行
break原理应用
flag =True, falg = False设定终止循环标示
1 import time 2 3 begin = 1 #begin = 1 #7 begin = 2 4 flag = True #2 5 while flag: #3 6 print('begin')#4 7 if begin == 10:#终止条件 8 flag = False # 跳出 flag = True; while循环,到print('end') 9 begin += 1 #5(begin = 1+1) 10 time.sleep(1) #6 11 12 print('end')
1 begin = 1 2 3 while True: 4 print('begin') 5 if begin == 10: 6 break #break跳出整个循环,并且不执行下面任何代码 7 begin += 1
continue
终止当前循环,回到循环开始
continue实例
1 while True: 2 print('123') 3 break 4 print('456') 5 6 >>>123
8 while True: #1 #4 9 print('123') #2 #5 10 continue #3 #6 11 print('456') 12 13 >>>123 14 >>>123 15 >>>123 16 >>>123
#练习
#输出1-10之间的数字 不包含7 start = 1 while True: if start == 7: start += 1 #为了跳出 start==7的循环无限continue,start+=1 = 8 continue #跳出本次循环,回到while True print(start) if start == 10 #当start == 10时 break #跳出程序循环 start += 1
i = 1
while i <= 10:
if i != 7:
print(i)
i += 1
#练习
1 1 - 100相加(先循环获取1-100的数,然后再设定) 2 3 (1) 获取1-100的数字 4 start = 1 5 6 while True: 7 print(start) 8 if start == 100 9 break 10 start += 1 11 12 (2) 13 sum = 0 14 start = 1 15 16 while True: 17 start = 1 18 19 while True: 20 print(start) 21 sum = sum +start 22 if start == 100 23 break 24 start += 1 25 #1+2+3+4+5+6...+100 26 print(sum)