Python 基础部分-1

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"
 
name1 = "wupeiqi"
name2 = name1
 
根据内存地址ID,查看变量指向
 
查看内存地址:id(变量名) 
 
变量数值在-5~257内,地址相同
变量数值在-5~257外,地址不同
 
 
查看字符串、数组长度:len(字符串、数组)
 
 
八、输入
 
raw_input 和 input 
 
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
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
 
 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 + 条件:
  执行内容一
  内容二
else:
  内容三  
  内容四
 
同一级别相同缩进 
 
条件语句

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 (213 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)
原文地址:https://www.cnblogs.com/Sam-r/p/5474631.html