基础语法入门学习推荐: 简明 Python 教程


下文仅为入门推荐书籍的补充与重点

  • 多行语句:末尾使用斜杠 ( \ ) ,将一行分为多行

    var = item1 +

    item2 +

    item3

  • 注释:

    单行:#

    多行:''' 内容 ''' """ 内容 """ (三个单引号或者三个双引号)

  • 空行:

    函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

    空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

  • 分号:

    一般不用分号,如果单行需要写多个语句则需要。

  • 缩进:

    python非常注重缩进,2个空格或4个空格或1个Tab键。



一、变量

标志符

二、数据类型

  1. Number
  2. 字符串
  3. 列表 (list)
  4. 元组 (turple)
  5. 字典 (dictionnary)
可变数据类型
* 整型
* 浮点型
* 字符串型
* 元组
不可变数据类型
* 列表
* 字典

有关可变与不可变数据类型,如要了解详细内容,请点这里

类型转换:

chr(i) 把一个ASCII数值,变成字符

ord(i) 把一个字符或者unicode字符,变成ASCII数值

oct(x) 把整数x变成八进制表示的字符串

hex(x) 把整数x变成十六进制表示的字符串

str(obj) 得到obj的字符串描述

list(seq) 把一个sequence转换成一个list

tuple(seq) 把一个sequence转换成一个tuple

dict(),dict(list) 转换成一个dictionary

int(x) 转换成一个integer

long(x) 转换成一个long interger

float(x) 转换成一个浮点数

complex(x) 转换成复数

max(...) 求最大值

min(...) 求最小值

三、运算符 详解

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

四、条件语句

if 判断条件:
执行语句……
else:
执行语句……

五、循环语句

while 判断条件:
执行语句...... (迭代)
for iterating_var in sequence:
执行语句......

六、函数

  1. 形式:

    def function( parameters ):

    语句

    return [expression]

  2. 参数:

    • 必备参数 (默认参数)
    • 关键字参数 (调用函数时,参数位置为:形参=实参)
    • 缺省参数 (定义函数时,形参已赋值)
    • 不定长参数 ( *args: 除必备参数外其余参数全存在一个元组,**kwargs:除必备参数外其余键值形式的参数全存在一个字典中)
  3. 匿名函数:

    变量 = lambda [arg1 [,arg2,.....argn]]: 表达式

  4. return 语句:

    返回多个参数时:return [arg1,arg2,...] 返回列表,元组,字典都行

  5. 函数内使用全局变量,需用global 声明已有全局变量。

七、对象

类(class)
  • 属性

    实例变量(每个实例内存中)

    类变量(类内存中)

    私有属性 __var

  • 方法

    构造方法

    析构函数(默认就有,代码为空,写了则相当于重构它)

  • 对象(object):类的实例(实例化一个类之后得到的对象)

     

  • 三大特性:

    • 封装

      把一些功能的实现细节不对外暴露
    • 继承

      先覆盖、再继承、再添加

      代码复用

      单继承

      多继承

      - 2.7 经典类 深度优先

      -- 新式类 广度优先

      - 3.x 均广度优先
    • 多态

      接口重用(一种接口,多种实现)

       
  • 继承方式:

    继承

    组合

八、命名空间和作用域

命名空间

  • python中的几个命名空间:

    1.全局命名空间: 包含函数、类以外的变量(全局变量)

    2.局部命名空间:包含局部变量

    3.内置(built-in)命名空间: 包含了内置的变量及关键字等

  • 命名空间的生命周期:

    1.局部命名空间:函数定义的命名空间:在函数调用时创建,函数结束或发生异常时销毁;类:在解释器从上到下读到类定义时创建,类定义结束后销毁。

    2.全局命名空间:模块的全局命名空间在模块定义被解释器读入时创建,解释器退出时销毁

    3.内置命名空间:在Python解释器启动时创建,解释器退出时销毁

  • 变量查找顺序:(按照LEGB)

    1.Local:首先搜索,包含局部名字的最内层(innermost)作用域,如函数/方法/类的内部局部作用域;

    2.Enclosing:根据嵌套层次从内到外搜索,包含非局部(nonlocal)非全局(nonglobal)名字的任意封闭函数的作用域。如两个嵌套的函数,内层函数的作用域是局部作用域,外层函数作用域就是内层函数的 Enclosing作用域;

    3.Global: 倒数第二次被搜索,包含当前模块全局名字的作用域;

    4.Built-in:最后被搜索,包含内建名字的最外层作用域。

作用域

作用域是Python的一块文本区域,这个区域中,命名空间可以被“直接访问”。这里的直接访问指的是试图在命名空间中找到名字的绝对引用(非限定引用)。

直接引用;直接使用名字访问的方式,如name,这种方式尝试在名字空间中搜索名字name。
间接引用;使用形如objname.attrname的方式,即属性引用,这种方式不会在命名空间中搜索名字attrname,而是搜索名字objname,再访问其属性。

详见:

Python命名空间和作用域窥探

Python命名空间的本质

详解python命名空间和作用域

九、异常

一些特性:

十、模块

import moudle
from moudle import tool

包:

部分函数

系统相关的信息模块: import sys

sys.argv 是一个 list,包含所有的命令行参数.

sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.

sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a

sys.exit(exit_code) 退出程序

sys.modules 是一个dictionary,表示系统中所有可用的module

sys.platform 得到运行的操作系统环境

sys.path 是一个list,指明所有查找module,package的路径.

操作系统相关的调用和操作: import os

os.environ 一个dictionary 包含环境变量的映射关系

os.environ["HOME"] 可以得到环境变量HOME的值

os.chdir(dir) 改变当前目录 os.chdir('d:\outlook')

注意windows下用到转义

os.getcwd() 得到当前目录

os.getegid() 得到有效组id os.getgid() 得到组id

os.getuid() 得到用户id os.geteuid() 得到有效用户id

os.setegid os.setegid() os.seteuid() os.setuid()

os.getgruops() 得到用户组名称列表

os.getlogin() 得到用户登录名称

os.getenv 得到环境变量

os.putenv 设置环境变量

os.umask 设置umask

os.system(cmd) 利用系统调用,运行cmd命令

内置模块(不用import就可以直接使用)常用内置函数:

help(obj) 在线帮助, obj可是任何类型

callable(obj) 查看一个obj是不是可以像函数一样调用

repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝

eval_r(str) 表示合法的python表达式,返回这个表达式

dir(obj) 查看obj的name space中可见的name

hasattr(obj,name) 查看一个obj的name space中是否有name

getattr(obj,name) 得到一个obj的name space中的一个name

setattr(obj,name,value) 为一个obj的name

space中的一个name指向vale这个object

delattr(obj,name) 从obj的name space中删除一个name

vars(obj) 返回一个object的name space。用dictionary表示

locals() 返回一个局部name space,用dictionary表示

globals() 返回一个全局name space,用dictionary表示

type(obj) 查看一个obj的类型

isinstance(obj,cls) 查看obj是不是cls的instance

issubclass(subcls,supcls) 查看subcls是不是supcls的子类

十一、文件

  1. Python File(文件) 方法:

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:

方法名 描述
file.close() 关闭文件。关闭后文件不能再进行读写操作。
file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
file.next() 返回文件下一行。
file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size]) 读取整行,包括 "\n" 字符。
file.readlines([sizehint]) 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
file.seek(offset[, whence]) 设置文件当前位置
file.tell() 返回文件当前位置。
file.truncate([szie]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str) 将字符串写入文件,没有返回值。
file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

2.Python OS 文件/目录方法:

详见这里

os 模块提供了非常丰富的方法用来处理文件和目录。

附:python内置函数详解

Python入门 —— 02基础语法的更多相关文章

  1. Python入门篇-基础语法

    Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...

  2. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

  3. Python之路,第一篇:Python入门与基础

    第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...

  4. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  5. Python:笔记(1)——基础语法

    Python:笔记(1)——基础语法 我很抱歉有半年没有在博客园写过笔记了,客观因素有一些,但主观原因居多,再多的谴责和批判也都于事无补,我们能做的就是重振旗鼓,继续出发! ——写在Python之前 ...

  6. python面向对象的基础语法(dir内置函数、self参数、初始化方法、内置方法和属性)

    面相对象基础语法 目标 dir 内置函数 定义简单的类(只包含方法) 方法中的 self 参数 初始化方法 内置方法和属性 01. dir 内置函数(知道) 在 Python 中 对象几乎是无所不在的 ...

  7. python2.7入门---简介&基础语法

    Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构.基于上述原因, ...

  8. JavaScript快速入门-ECMAScript基础语法

    一.JavaScript引入方式 1.行内式 <script> alert(123); </script> 2.外链式 <script src='custom.js'&g ...

  9. Python学习①. 基础语法

    Python 简介 Python 是一种解释型,面向对象的语言.特点是语法简单,可跨平台 Python 基础语法 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编 ...

随机推荐

  1. 数据结构----线性表顺序和链式结构的使用(c)

    PS:在学习数据结构之前,我相信很多博友也都学习过一些语言,比如说java,c语言,c++,web等,我们之前用的一些方法大都是封装好的,就java而言,里面使用了大量的封装好的方法,一些算法也大都写 ...

  2. 【Supervised Learning】支持向量机SVM (to explain Support Vector Machines (SVM) like I am a 5 year old )

    Support Vector Machines 引言 内核方法是模式分析中非常有用的算法,其中最著名的一个是支持向量机SVM 工程师在于合理使用你所拥有的toolkit 相关代码 sklearn-SV ...

  3. SQL Server ->> SQL Server 2016新特性之 -- AlwaysOn的增强改进

    1)标准版也开始支持AlwaysOn了,只不过限制太多,比如副节点不能只读访问和只能有一个副节点. 2)副节点(只读节点)的负载均衡,这是我认为最有用的改进 3)自动failover的节点从2个增加到 ...

  4. mongodb数据库集合操作

    1:更新update update() 方法用于更新已存在的文档.语法格式如下: db.collection.update( <query>, <update>, { upse ...

  5. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  6. QT的mouseMoveEvent事件失效

    void TalkWindow::enterEvent(QEvent *event){ grabMouse();}void TalkWindow::leaveEvent(QResizeEvent *e ...

  7. tree结构统一修改属性名(递归)

    1 //data为需要修改的tree,这里主要是为antd design 里面select规范数据 const ass = (data) => { let item = []; data.map ...

  8. Centos大文件切割和合并

    现在很多公司都会把项目放在云服务器上,当我想把云服务器里面的代码和生成的文件 “sz 文件名称” down下来的时候,发现太大.云服务器不支持下载很大的文件.那么这种情况就需要使用split命令切割文 ...

  9. ZT 初始化 const 成员和引用类型成员(C++)

    初始化 const 成员和引用类型成员(C++) 初始化 const 成员和引用类型成员的问题,在 C++ 教材中讲述初始化列表的章节应该都有讲过,但是因为平时用得少,所以可能有不少人没注意到.待到用 ...

  10. 使用burpsuite对移动app抓包分析

    测试移动APP的联网请求,需要获取路径或者参数的时候,使用该工具burpsuite非常方便! 要求: 移动终端和PC处于同一个wlan环境下 第一步:获取本地地址,cmd-->ipconfig  ...