http://www.cnblogs.com/wupeiqi/articles/4906230.htmlhtml
http://www.cnblogs.com/wupeiqi/articles/5433925.htmjava
电脑语言进化史python
机器语言(二进制)linux
0101010110101011010101101010110101010程序员
汇编 shell
A54 <===> 1010110101编程
C语言windows
JAVA, C#, PHP, PYTHON数组
虚拟机 分配内存ruby
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
程序员:掌握一种规则的cPython
jPython, ironPython, rubyPython
程序运行过程
Pyhton > jPython > 中间代码 > java虚拟机 > 机器码 >计算机
pypy
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 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 li = raw_input("Username") li 代指raw_input输入的内容 4 name = "wupeiqi"
上述代码声明了一个变量,变量名为: name,变量name的值为:"wupeiqi"
变量的做用:昵称,其代指内存里某个地址中保存的内容
变量定义的规则:
二、变量的赋值
name1 = "wupeiqi" name2 = "alex"
name1 = "wupeiqi" name2 = name1
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:
执行语句……
#赋值
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)