• 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)
  • 相关阅读:
    C#深入浅出 修饰符(二)
    HDU 5785 Interesting
    HDU 5783 Divide the Sequence
    HDU 5781 ATM Mechine
    UVA 714 Copying Books
    uva 1471 Defense Lines
    UVA 11134 Fabled Rooks
    UVA 11572 Unique Snowflakes
    UVA 11093 Just Finish it up
    UVA 10954 Add All
  • 原文地址:https://www.cnblogs.com/Sam-r/p/5474631.html
Copyright © 2020-2023  润新知