zoukankan      html  css  js  c++  java
  • Python开发基础-Day1-python入门

    编程语言分类

    机器语言

      使用二进制代码直接编程,直接与硬件交互,执行速度非常快,灵活,但是开发难度高,开发效率低下,缺乏移植性。 

    汇编语言

      对机器语言指令进行了英文封装,较机器语言容易记忆,直接与硬件交互,执行速度快,执行文件小,但是开发难度相对也很高,开发效率低

    高级语言

      语法简单,容易理解,开发难度低效率高,开发后测试方便,但是开发的程序需要经过转换才能执行,所以执行效率相对慢,可移植性高。

      解释执行:代码执行时候,解释器按照源代码文件中的内容,一条条解释并运行,相对编译执行速度慢,但出错方便调试,开发效率高。

        例如Python、PHP、Ruby、JavaScript等

      编译执行:程序执行前,编译器会将源代码一次性编译成机器能够识别的指令文件,然后运行编译后的文件,速度相对表解释执行要高,但是出错后修改源代码需要重新编译执行,开发效率相对低

        例如C语言、C++、GO、Swift、Object-C等

      解释执行和编译执行在执行效率上虽然有差别,但是对于当前计算机的硬件计算速度的提升,加上网络环境的限制,执行速度相对来说并不是关键,开发效率才是关键。

      像Java和C#属于混合语言,即既有编译执行也有解释执行。

    Python简介

    Python介绍

      Python是一门解释型编程语言,平台兼容性高,省略一堆屁话,这是笔记!!!!

      解释型语言依赖于解释器,python解释器执行代码文件的过程如下:

        打开python解释器

        python解释器从硬盘调用py文件到内存

        python解释器执行读入内存的文件代码,该过程详细为:py文件-字节码文件-解释器-机器码-执行

      python文件在执行过程中,不会保存字节码文件,每次执行py文件时候,都会先转化成字节码文件。

      python在import(导入)py文件的时候,会生成pyc的字节码文件保存下来。

    Python分类

      Cpython(最常用):使用C语言实现的python,官方版本,Cpython会将源代码文件转换成pyc字节码文件使用到python虚拟机上执行

      Jpython:使用Java实现的python,将Python代码动态编译成Java字节码,然后在JVM上运行

      IronPython:Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行

      PyPy(特殊):Python实现的Python,将Python的字节码字节码再编译成机器码

      RubyPython、Brython.....

      除了PyPy外,执行流程如下图:

        代码文件首先转换层字节码文件,字节码文件流入解释器,解释器转化成机器码后执行输出。

    Python解释器版本

      版本3,最新的版本为3.6.1

      版本2,最新的版本为2.7.13,2020年停止更新

    Python入门

    安装

    Python Linux版本安装

      安装过程转 http://www.cnblogs.com/zero527/p/6920965.html

    Python Windows版本安装

      双击安装,一路下一步,记得勾选自动添加环境变量

    第一行代码"hello world"

    解释器只用来测试代码,并不能保存代码,想要永久保存,需要将代码写入到文件中。

    解释器执行:

    C:UsersMr.chai>python
    Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> "hello world"     #由于解释器自带输出功能,所以输入一个字符串会自动给出输出
    'hello world'
    >>> print("hello world")  #print为输出,输出的内容是括号中的内容
    hello world
    >>>

    py文件执行:

    创建一个hello.py文件,内容写入print("hello world")

    C:UsersMr.chai>python C:hello.py
    hello world

    python文件头(linux)

    在linux执行hello.py文件,也是用python 路径/hello.py,但是在linux可以用./方法执行文件,直接执行./hello.py,会报错,原因是找不到解释器,所以要在hello.py文件中加一个头部信息,标识解释器位置

    #!/usr/bin/env python #该行只对linux有效,表示/usr/bin/所有的python解释器,可以指定一个如:/usr/bin/python
    # -*- coding: utf-8 -*- #指定字符编码
    print('hello world')

    内容注释

    注释为说明性文字

    #  单行注释

    ''' str...str '''    三引号为多行注释

    模块功能导入

    import sys    导入系统模块,允许该文件运行扩展的系统功能

    变量

    变量是用来表示程序运行时候改变的状态的,是一个抽象的概念。

    变量组成:

      [变量名]=[变量实际的值]

      变量名:变量命名一般字母或下划线开头,剩下的可以是字母和数字,变量名不能和关键字冲突,如print、and等系统关键字

      变量值:可以改变的值,一个变量名可以重复赋值,但是变量实际的值为最后赋值后的值,变量的值存放在内存空间

    变量类型:

      局部变量:只在某一段代码中生效的变量

      全局变量:在整个程序的运行中生效的变量

    变量赋值与调用:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    name="bob"  #赋值字符串
    age=20    #赋值整数
    print(name,age)  #输出变量
    print("my name is %s,i am %s years old." % (name,age))  # %s表示占位,第一个%s调用后面括号里面的第一个变量,第二个%s调用第二个变量

    重复赋值指的是改变变量名的引用,引用的值改变了。变量没有储存数据的功能,实际的值放在内存空间中,

    当内存空间的值没有了引用,引用计数为0的将变成垃圾被回收

    id后面跟变量,查看内存id号

    >>> a=1
    >>> id(a)
    1379185728
    >>> b=1
    >>> id(b)
    1379185728

    变量占用的内存空间比较小的,不再开辟内存空间,将直接引用,如果占用的内存空间大,那引用的过程中将开辟新的内存空间,这是python的一种优化机制

    >>> a="abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz"
    >>> id(a)
    2884867588944
    >>> b="abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz"
    >>> id(b)
    2884867588624

    接触变量引用,将变量改变赋值,将解除变量的原引用,或者"del 变量"将解除变量的所有引用

    常量

    python里没有常量的概念,但是可以通过语法上进行提示,即变量名用大写表示

    如OLDBOY_AGE=57

    输入输出

    python2中的raw_input()个python3中的input()功能一样,会把所有用户的输入转成str类型

    >>> name=input("name:")
    name:bob
    >>> age=input("age:")
    age:20
    >>> type(name)
    <class 'str'>
    >>> type(age)
    <class 'str'>

    getpass模块,可以隐藏输入

    >>> password=getpass.getpass("pass:")
    pass:
    >>> print(password)
    123456

    python2的input(),输入的值是什么类型那么就会存成什么类型。

    运算符

    算术运算符

    比较运算符

    赋值运算符

    位运算符

    逻辑运算符

    成员运算

    身份运算

    运算符号优先级:自上而下,优先级从高到低

  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/zero527/p/6953133.html
Copyright © 2011-2022 走看看