python四 语法 一

一、语法结构
1、 缩进、文档注释(Docstring)、块注释、行注释
1)python代码块通过缩进对齐表达代码逻辑而不是使用大括号
2) 缩进表达一个语句属于哪个代码块
3)缩进风格:4个空格,最为流行。用Tab键缩进。
4)缩进相同的一组语句构成一个代码块,称之为代码组
5) 首行以关键字开始,以冒号:结束,该行之后的一行或者多行代码构成代码组
6)如果代码组只有一行,可以将其直接写在冒号后面,但是不易读,不推荐。
7)文档注释(Docstring) :作为文档的Docstring一般出现在模块头部、函数和类的头部,这样在python中可以通过对象的__doc__对 象获取文档。
文档注释以 “”" 开头和结尾, 首行不换行, docstring 的结束"""应该独占一行,除非此 docstring 只有一行。
8) 块注释 :“#”号后空一格,段落件用空行分开
9)行注释 :至少使用两个空格和语句分开

2、注释及续行、空行、编码、空格
1)注释用#,用反斜杠\分解行
2)分号;允许将多个语句写在同一行上,不推荐
3) 空行 :模块级函数和类定义之间空两行; 类成员函数之间空一行;可以使用多个空行分隔多组相关的函数;
4) 编码 :文件使用 UTF-8 编码 ——文件头部加入#--conding:utf-8--标识
5)空格 :在二元运算符两边各空一格[=,-,+=,==,>,in,is not, and] ;
函数的参数列表中,,之后要有空格 ;
函数的参数列表中,默认值等号两边不要添加空格;
左括号之后,右括号之前不要加多余的空格;
字典对象的左括号之前不要多余的空格;
不要为对齐赋值语句而使用的额外空格

3、Python 变量
1)变量的定义:
——第一个字符只能是大小写字母或下划线
——后续字符只能是大小写字母或数字或下划线
——区分大小写
Python 是动态类型语言,不需要预先声明变量的类型
2)推荐变量命名方法:
——变量名全部采用小写字母
——简短、有意义
——多个单词之间用下划线分割
——变量名用名词,函数名用谓词
——类名采用驼峰形式
3)变量赋值 用= 号
运算符:
——标准算术运算符:+ - * / //(取商) % (取余) **(次方)
——比较运算符: < <= > >= == !=
——逻辑运算符 and not or

4、数据类型
4.1 数字
1) 基础数字类型
—— int :有符号整数
——bool:布尔值 (True :1 False :0)
——float :浮点数
——complex:复数
——python默认以十进制数显示 (Linux中文件的权限是8进制数字)
——数字以0o或0O开头表示为8进制数
——数字以0x或0X开头表示为16进制数
——数字以0b或0B开头表示为2进制数

2) 字符串
——定义为:引号之间的字符集合,单引号或者双引号,意义相同。
引号:自然语言 使用双引号 “…” ;机器标识 使用单引号 ‘…’ ;
三引号(三个连续的单引号或双引号),可以用来包含特殊字符,文档字符串 (docstring) 使用三个双引号 “”"…"""
python 不区分字符和字符串;
——字符串切片
使用索引运算符[ ] 和切片运算符 [ : ]可得到子字符串;
第一个字符索引是0,最后一个字符的索引是 -1;
子字符串包含切片中的起始下标,但不包含结束下标;
——字符串连接
使用 + 号可以将多个字符串拼接在一起;
使用 * 号可以将一个字符串重复多次

4.2 序列对象
1) 列表
列表可以当成普通的“数组”,能保存任意数量,任意类型的python对象。
列表也支持下标和切片操作,列表中的项目可以改变。
列表操作:
使用 in 或 not in 判断成员关系
使用append 方法向列表中追加元素
2) 元组
元组可以认为是静态的列表,一旦定义,不能改变。
4.3 字典
字典是由键—值(key-value)对构成的映射数据类型。
通过键取值,不支持下标操作。
4.4 数据类型比较
——按存储模型分类:
》标量类型:数值、字符串
》容器类型:;列表、元组、字典
——按更新模型分类:
》可变类型:列表、字典
》不可变类型:数字、字符串、元组
——按访问模型分类:
》直接访问:数字
》顺序访问:字符串、列表、元组
》映射访问:字典

5、判断语句
5.1 if
if 判断语句 :
if_suit
elif 判断语句:
if_suit
else:
if_suit
注意:如果表达式的值非0或者为布尔值True,则代码组if_suit被执行,否则继续执行后面的判断。
只要表达式数字为非零值即为True;
空字符串、空列表、空元组、空字典的值均为Flase;

5.2 while
Python 中循环有while循环和for循环
》循环次数未知的情况下,建议采用while循环;
》循环次数可以预知的情况下,用for循环;
》break语句 :可以结束当前循环然后跳转下一条语句;
》continue语句:当遇到continue时,程序会终止当前循环,并忽略剩余的语句,然后回到循环的顶端继续做条件判断。
》Python 中的while语句也支持else子句,else子句只在循环完成后执行,break语句也会跳过else语句。

5.3 for
Python中的for接受可迭代对象(列入序列或迭代器)作为参数,每次迭代其中一个元素。
for循环也支持break 、continue、else 语句。
range 函数 ,常与for循环一起使用,range函数提供循环条件:
range语法格式:range( start 、end 、step=1)
列表解析:[expr for iter_var in iterable ]
expr :应用于序列的每一个成员,最后的结果值是该表达式产生的列表,该语法的核心是for循环。

6、文件对象
6.1 文件打开方式
open 及file 内建函数,提供了初始化输入/输出(I/O)操作的通用接口
open() 和 file() 语法格式: file_object = open(file_name,access_mode=‘r’,buffering=-1)
文件对象访问模式:
r ——以读方式打开(文件不存在则报错)
w——以写方式打开(文件存在则清空,不存在则创建)
a——以追加模式打开(必要时创建新文件)
r+ ——以读写模式打开(同r)
w+ —— 以读写模式打开(同 w)
a+ ——以读写模式打开(同 a)
b —— 以二进制模式打开

6.2 文件输入
1) read 方法 :用来直接读取字节到字符串中,最多读取给定数目个字节。
如果没有给定size参数(默认值为-1)或者size值为负,文件将被读取直至末尾。
2) readline 方法:读取打开文件的一行(读取该行结束符之前的所有字节,包括行结束符),作为字符串返回。它也有size参数,默认为-1,代表读至行结束符。
3) readlines 方法 :读取所有(剩余的)行然后把它们作为一个字符串列表返回。
4) 文件迭代
需要逐行处理文件时,可以结合for循环迭代文件

6.3 文件输出
1)write()内建函数,作用:把包含文本数据或二进制数据块的字符串写入文件中去,写入文件时,不会自动添加行结束标志,需要程序员手工输入。
2)writelines 方法 :它接受一个字符串列表作为参数,将它们写入文件。writelines()是针对列表的操作。
行结束符并不会被自动加入,需要有换行符的话,必须在调用writelines()前给每行加上行结束符。

6.4 操作文件
1) with子句
用来简化代码的。在将打开文件的操作放在with语句中,代码块结束后,文件将自动关闭。
2) 文件内移动
seek(offset [, whence ]):移动文件指针到不同的位置。
——offset是相对于某个位置的偏移量
—— whence的值,0表示文件开头,1表示当前位置,2表示文件的结尾。
tell() :返回当前文件指针的位置。
3) 标准文件:程序一执行,就可以访问三个标准文件
import sys
——标准输入:一般是键盘,使用sys.stdin
——标准输出:一般是显示器缓冲输出,使用sys.stdout
——标准错误:一般是显示器的非缓冲输出,使用sys.stderr

7、函数基础
函数是对程序逻辑进行结构化或者过程化的一种编程方式。
1)函数是用def语句来创建的,语法:
def function_name(arguments):
“function_documentation_string”
function_body_suit
标题行由def关键字,函数的名字,以及参数的集合组成。def子句的剩余部分包括了一个文档字串(可选)和必须的函数体。
2)调用函数,python用一对圆括号调用函数,如果没有圆括号,则只是对函数的引用。
3)多数情况下,函数不直接输出数据,而是向调用者返回值,函数的返回值使用return关键字,没有return的话,函数默认返回None。
4)函数参数:
——形式参数:函数定义时,紧跟在函数名后(圆括号内)的参数被称为形参,由于它不是实际存在变量,即又称为虚拟变量。
——实际参数:在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)为实际参数,即实参。
——调用函数时,实参的个数需要跟形参个数一致,实参将依次传递给形参。
——位置参数 :程序名以及参数都以位置参数的方式传递给python程序,使用sys模块的argv列表接收。
——默认参数:就是声明了默认值的参数,若是给参数赋予了默认值,在函数调用时,不向该参数传入值也可以。

8、模块基础
1)定义模块
——创建模块
模块物理层面上组织模块的方法是文件,每个以.py作为结尾的python文件都是一个模块。
模块文件名字去掉后面的扩展名(.py)即为模块名。
——导入模块(import)
使用import 导入模块,模块被导入后,程序会自动生成pyc的字节码以提升性能。
模块属性通过“模块名.属性” 的方法调用,如果仅需要模块中的某些属性,也可以单独导入。
——模块加载(load)
一个模块只能被加载一次,模块加载时,顶层的代码会自动执行,所有将函数放入模块的顶层是好习惯。
——模块导入的特性:
模块具有一个_name_特殊属性,当模块文件直接执行时,_name_的值为‘main’,当模块被另一个文件导入时,_name_的值就是该模块的名字。

9、命名规范
1) 模块命名:模块尽量使用小写字母命名,首字母保持小写,尽量不要用下划线
2)类名: 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头
3) 函数:函数名一律小写,如有多个单词,用下划线隔开;私有函数在函数前加一个下划线_
4)变量名:变量名尽量小写, 如有多个单词,用下划线隔开
5) 常量:采用全大写,如有多个单词,使用下划线隔开


二 、语句语法
2.1 import 语句
import语句应该放在文件头部,置于模块说明及docstring之后,于全局变量之前;
import语句应该按照顺序排列,每组之间用一个空行分隔;
import语句应该使用 absolute import —— # from foo.bar import Bar

2.2 基本数据类型转换
方法 ———— 说明
int(x [,base ]) ————将x转换为一个整数
float(x ) ————将x转换到一个浮点数
complex(real [,imag ]) ——————创建一个复数
str(x ) ————将对象 x 转换为字符串
repr(x ) ————将对象 x 转换为表达式字符串
eval(str ) ————用来计算在字符串中的有效 Python 表达式,并返回一个对象
tuple(s ) ————将序列 s 转换为一个元组
list(s ) ————将序列 s 转换为一个列表
chr(x ) ————将一个整数转换为一个字符
unichr(x ) ————将一个整数转换为 Unicode 字符
ord(x ) ————将一个字符转换为它的整数值
hex(x ) ————将一个整数转换为一个十六进制字符串
oct(x ) ————将一个整数转换为一个八进制字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值