zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    编写 unix和 windows的 Scala 脚本
    4种复制文件的方式性能比较
    Cacheable key collision with DefaultKeyGenerator
    Spring Cache 介绍
    Centos提示-bash: make: command not found的解决办法
    Scala的sealed关键字
    Groupby
    scala break & continue
    Scala implicit
    Scala可变长度参数
  • 原文地址:https://www.cnblogs.com/Sam-r/p/5474631.html
Copyright © 2011-2022 走看看