基础语法入门学习推荐: 简明 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. Linux系统下安装Gitlab

    Linux系统下安装Gitlab 一.简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与 ...

  2. 故障排除:无法启动、访问或连接到 Azure 虚拟机上运行的应用程序

    有多种原因可导致无法启用或连接到在 Azure 虚拟机 (VM) 上运行的应用程序.原因包括应用程序未在预期端口上运行或侦听.侦听端口受到阻止,或网络规则未将流量正确传递到应用程序.本文说明有条理地找 ...

  3. 在 IDEA 中 配置 Maven

    1.从 Maven官网下载 最新版的 Maven  2.设置Java相关环境变量 JAVA_HOME       AVA_HOME=C:\jdk1.5.0_06 PATH                ...

  4. javaEE版本的eclipse中导入工程,发现server里面找不到工程,根本发布不了也不能运行

    原文:http://www.cnblogs.com/sxmcACM/p/3674545.html 1.具体解决方法 首先确保,你导入的工程所用的JDK版本和你的机器上安装的版本是同一版本, 如果不同做 ...

  5. Oracle实例初始化参数详解

    BACKGROUND_DUMP_DEST 显示和设置Oracle数据库相关日志的存放地,Oracle11g后不再可配置,但其值仍可显示相关日志的存放地,对应配置参数为diagnostic_dest U ...

  6. WiFi安全测试工具WiFiPhisher

    官方下载地址:https://github.com/sophron/wifiphisher打不开的要翻GFW好事做到底wifiphisher-master.zip=================== ...

  7. Steeltoe

    谈谈Circuit Breaker在.NET Core中的简单应用 http://www.cnblogs.com/catcher1994/p/8975192.html 前言 由于微服务的盛行,不少公司 ...

  8. Redis客户端 Spring Data Redis(未完)

    官网:http://projects.spring.io/spring-data-redis/ 1.0  参考之前的一片文章:Gradle入门实战(Windows版) 构建java applicati ...

  9. BIND简易教程(1):安装及基本配置

    首先,为什么说是简易教程呢?因为BIND的功能实在太多,全写出来的话要连载好久,我觉得我没有那么多精力去写:而我了解的仅仅是有限的一点点,不敢造次.百度上的文章也是一抓一大把呐!所以,教点基本使用方法 ...

  10. python 浮点运算 及 小数点精确位数

    >>> 1050 / 3133>>> 1050 / float(31)33.87096774193548                     # 分子或者分母用 ...