機能モジュール
定義された関数:
- 機能ブロックで DEF 名と機能識別子括弧が続く、キーワードを開始 () 。
- 括弧内のすべての受信パラメータ及び引数はパラメータを定義するために使用することができる括弧の間、中央に配置されなければなりません。
- 最初の文関数は、選択的に説明文字列を使用することができます - 機能命令を格納するため。
- 機能の内容コロン、およびインデントを開始します。
- 戻る[式] エンド機能は、選択的に呼び出し元に値を返します。Noneを返すための発現同等ずに返します。
関数のパラメータ:
関数パラメータは、デフォルト値を有する可変パラメータの使用をサポートする(ことができるパラメータの名前の前に可変パラメータである*引数を示し、合格ゼロ以上のパラメータであってもよいです)
モジュール管理機能:(Pythonの各ファイルには、モジュール(モジュール)を表します)
Pythonは、関数の概念を過負荷に同じの.pyファイルに同じ名前の2つの関数を定義していない、以前に定義された後の定義は、このような状況を避けるために、カバーする、モジュールが同じ名前で異なる機能を持つことができ、使用中私たちがすることによって機能する際にimport
指定されたモジュールをインポートするキーワードは、エンドその中で使用するためにどの機能モジュールを区別することができ、
第二に、データ構造
- 弦
Pythonはとして使用されているPythonの単一の文字列での単一の文字の種類を、サポートしていません。
角カッコは、文字列を傍受するために使用することができます
Pythonのエスケープ文字
エスケープ文字 | 説明 |
---|---|
\(とき行の終わり) | 継続文字 |
\\ | バックスラッシュ |
\」 | 単一引用符 |
\」 | 二重引用符 |
\ A | ベル |
\ B | Backspaceキー(バックスペース) |
\ 000 | 空の |
\ nは | ラップ |
\ V | 垂直タブ |
\トン | 水平タブ |
\ rを | 入ります |
\ F | フィード |
\ oyy | オクタル、YYの 文字は、例えば、表現:\ O12 文字Oではなく数字のゼロで改行を表します。 |
\ XYY | 文字の16進数、表現YY、例えば:\ X0A代わっラップ |
\その他 | 共通のフォーマットで他の文字を出力 |
Pythonの文字列演算子
演算子 | 説明 | 例 |
+ | 文字列の連結 | + B出力:HelloPython |
* | 繰り返し出力文字列 | 出力A * 2:HelloHello |
[] | インデックスによる文字列を取得します。 | [1]出力 E |
[:] | 文字列の一部をインターセプト、続い左右の開閉原理を、STR [0,2]最初の3つの文字が含まれていません。 | [1:4]出力 エル |
に | メンバーのオペレータ - 文字列を指定された文字がtrueを返す場合 | で「H」 出力トゥルー |
ありませんで | メンバーのオペレータ - 文字列は、指定された文字がTrueを返すが含まれている場合 | で「M」ではない 出力トゥルー |
R / R | 元の文字列-元の文字列:すべての文字列は文字通りの意味であるが使用され、そこにはエスケープ特殊文字ではありませんか印刷することはできません。文字の最初の引用符で囲まれた文字列の前に元の文字列に加えて、 R&LT(場合によっては)通常の文字列よりもほぼ同じシンタックスを有します。 | プリント(R '\ N' )プリント(R '\ N' ) |
% | 書式文字列 | 次のセクションを参照してください。 |
Pythonの文字列フォーマット記号:
シンボル | 説明 |
%のC | フォーマット文字とそのASCIIコード |
%sの | 書式文字列 |
%D | 整数形式 |
%で | unsigned int型のフォーマット |
% | フォーマット符号なしオクタル |
%バツ | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
- 列表:
一个方括号内的逗号分隔值出现
列表索引从0开始。列表可以进行截取、组合等
可以使用append()方法来添加列表项
使用下标索引来访问列表中的值,也可以使用方括号的形式截取字符
使用 del 语句来删除列表的的元素:(del list[1])
+ 号用于组合列表,* 号用于重复列表
Python包含以下方法:
序号 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort( key=None, reverse=False) 对原列表进行排序 |
10 | list.clear() 清空列表 |
11 | list.copy() 复制列表 |
- 元组:
- 使用小括号,
- 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
- 元组可以使用下标索引来访问元组中的值,下标索引从0开始,可以进行截取,组合等,使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组
- 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
- 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
- 字典:
- 字典是另一种可变容器模型,且可存储任意类型对象。
- 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,如:d = {key1 : value1, key2 : value2 }
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
- 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
- 字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的
- 集合:
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
parame = {value01,value02,...} 或者 set(value)
三、面向对象(三大要素:封装、继承、多态)
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
在Python中可以使用class
关键字定义类
类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用(self代表类的实例,而非类)
类之间的关系:(类和类之间的关系有三种:is-a、has-a和use-a关系)
-
- is-a关系也叫继承或泛化,比如学生和人的关系、手机和电子产品的关系都属于继承关系。
- has-a关系通常称之为关联,比如部门和员工的关系,汽车和引擎的关系都属于关联关系;关联关系如果是整体和部分的关联,那么我们称之为聚合关系;如果整体进一步负责了部分的生命周期(整体和部分是不可分割的,同时同在也同时消亡),那么这种就是最强的关联关系,我们称之为合成关系。
- use-a关系通常称之为依赖,比如司机有一个驾驶的行为(方法),其中(的参数)使用到了汽车,那么司机和汽车的关系就是依赖关系。
- 方法:类中定义的函数。
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例
私有方法__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用
使用@staticmethod 定义静态方法,
Python还可以在类中定义类方法(@classmethod),类方法的第一个参数约定名为cls,它代表的是当前类相关的信息的对象。通过这个参数我们可以获取和类相关的信息并且可以创建出类的对象
- 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便
- 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法
如果重写了__init__ 时,要继承父类的构造方法,可以使用 super 关键字:super() 函数
- 局部变量:定义在方法中的变量,只作用于当前实例的类。
- 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
- 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
方法名后的小括号中添加需要继承的类,需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法
- 实例化:创建一个类的实例,类的具体对象。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。