zoukankan      html  css  js  c++  java
  • [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python、如何安装python、py解释器解释过程、字符集转换知识、传参、流程控制

    初识Python

    一、什么是Python

    Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
     

    为什么要使用Python

    优点:

    • 学习成本低
    • 开发效率高–拥有丰富而且强大的第三方库
    • 高级语言–不用关心底层运作细节
    • 可扩展性–Python是一门胶水语言,能于其他语言如C ,C#进行扩展

    缺点:

    • 执行速度慢
    • 代码不能够加密

    • 多线程问题

    三、安装Python

    Ubuntu14.04自带Python2.7python3.x,Windows则需要去官方网站下载exe安装文件

    四、第一个Python程序

    运行第一个“Hello World”程序,我们需要做的是在编辑器写好以下代码,然后保存为hello.py。

    在Linux的终端中输入 python  文件保存路径+hello.py运行程序;Windows请在cmd窗口运行。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    print 'hello world!'
    print 'bye-bye world!' 

    Python基础

     
    解释器
    前面的第一个Python程序中"#!/usr/bin/env python"为在程序文件头上声明需要调用的解释器,这样做的目的是让python程序能在类unix系统上正确执行。
     
    执行过程
     
    Python程序的执行过程是:
    加载内存–>词法分析–>语法分析–>放入编译–>生成机器码–>执行机器码文本编码
     
    三、字符集问题
    前面的第一个Python程序中"# -*- coding: utf-8 -*-"为程序文本编码的声明,其作用是告诉解释器此程序的文本以UTF-8格式显示字符。

    ASCII码编码方式表示字符数有限,表示诸如汉字等其他语系文字必须使用unicode,但unicode会有存储浪费的问题,所以采用改进型的UTF-8编码方式以节省磁盘空间:)

    几个字符集转换过程如图所示:

    python2编解码小程序,

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #temp为utf-8格式代码,需要先decode成unicode然后再encode为gbk格式
    
    temp = "张三" # utf-8
    
    temp_unicode = temp.decode('utf-8')
    temp_gbk =  temp_unicode.encode('gbk')
    print(temp_gbk)

    Python 3.x默认采用UTF-8方式进行编码

    python3 socket默认以bytes方式传送

    所以:

    s = "李露"
    new_bytes_utf = bytes(s, encoding="utf-8")
    print(new_bytes_utf)
    
    new_bytes_gbk = bytes(s, encoding="gbk")
    print(new_bytes_gbk)
    
    
    # 还原成字符串
    new_str = str(new_bytes_utf, encoding="utf-8")
    print(new_str)
    
    
    # utf8编码一个字符三个字节
    b'xe6x9dx8exe9x9cxb2'
    # gbk编码一个字符两个字节
    b'xc0xeexc2xb6'
    # 李露

    四、注释符

    给Python代码加注释非常简单,对于单行注释使用" # ",对于多行注释则使用"""进行注释。

     

    五、如何传入参数


    Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

    1. Python内部提供的模块
    2. 业内开源的模块
    3. 程序员自己开发的模块

    Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import sys
    sys.argv

    变量名命名规则

    1.字母,数字,下划线

    2.第一个字母不是数字

    3.避开Python关键字:

    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']

    七、条件判断

    1.if else语句

     python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #输入用户名和密码
    #如果输入用户名和密码与系统内记录相符合则登录成功
    #否则失败
    import getpass user = 'alex' pw = '0000' input_user = raw_input("Login:") input_pw = getpass.getpass("Password:") if input_user == user and input_pw == pw : print "Welcome %s" %user else: print "Fail,check your name or password"

    2.if elif语句

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #根据用户输入的名字打印名字相应的权限
    #eric 普通
    #tony 超级
    #alex 超神
    name = raw_input('please input name: ') if name == 'eric': print 'simple' elif name == 'tony': print 'super' elif name == 'alex': print 'god' else: print 'ur not user on this system,bye-bye!'

    八、循环

    1.while循环

    while 语句用于循环执行程序,判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #打印1到4的数字
    #起始值为1
    #当数字到5则break结束程序
    count = 1 while True: if count == 5: break print(count) count += 1
    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #从1开始打印数字
    #打印到3时放弃打印
    #打印到10退出程序不打印
    
    count = 1
    while True:
        if count == 10:
            break
        if count == 3:
            count += 1
            continue
        print(count)
        count += 1

    2.for循环

    for循环可以用来遍历任何序列的项目,比如一个列表或者一个字符串。

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #遍历一个字典
    dic = {"k1":123,"k2":456}
    for k in dic:
        print(k,dic[k])

    3.continue,break,pass

    continue,break 是用来跳过循环的,continue 用于跳过本次循环,break 则是用于彻底退出循环;
    如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

    pass是空语句,在判断条件下面加上pass的意思是什么也不执行。保证程序语法完整并且让程序能正常运行。

  • 相关阅读:
    学习opencv跟轮廓相关的
    opencv 连通域需要的函数解析
    【7.4】__new__和__init__的区别
    【7.3】属性描述符和属性查找过程
    【7.2】__getattr__、__getattribute__魔法函数
    【7.1】property动态属性
    【6.4】一个经典的参数错误
    【6.3】del语句和垃圾回收
    【6.2】==和is的区别
    【6.1】python中的变量是什么
  • 原文地址:https://www.cnblogs.com/yaohan/p/5445420.html
Copyright © 2011-2022 走看看