[TOC]
L1
编码规范
- 包名尽量短小,全小写字母,不推荐使用下划线
- 模块名尽量短小,全小写字母,可以使用下划线分隔多个字母
- 类名采用单词首字母大写形式,即 Pascal 风格。
- 常量命名时全部采用大写字母,可以使用下划线
- 变量、函数名也是全小写字母,多个字母间用下划线
_
进行分隔 - 使用单下划线
_
开头的模块变量或者函数是受保护的 - 使用双下划线
__
开头的实例变量或方法是类私有的
Pycharm 常用快捷键
快捷键 | 作用 |
---|---|
Tab键 | 跳制表域 |
Ctrl + / | 代码注释 |
Ctrl + F | 查找 |
Ctrl + R | 替换 |
Alt + Enter | 问题修复 |
Ctrl + Alt + L | 代码格式化 |
Ctrl + D | 复制当前光标所在行代码 |
Ctrl(Alt) + Shift + 上下方向键 | 上下移动光标所在行代码 |
Ctrl + G / Command + L | 跳转到指定行:列 |
- 帮助手册查找路径
菜单-> Help -> Keyboard Shortcuts PDF
基础语法
输入与输出
-
输入函数:
input()
-
输出函数:
print()
-
指定分隔符
在输出多个数据时,如果不想使用默认的空格做为分隔符,可以通过
sep
参数指定分隔符。 -
指定结束符
print
函数默认一次输出后,都会以换行符结束,下一次输出会重启一个新行输出print("Python", end="---")
-
函数定义与调用
-
函数定义
def function_name([parameter_list]): ['''注释信息'''] [function_body] return [result]
-
def
: 自定义函数的关键字。 -
function_name
: 函数名称,在调用函数时使用,命名需要符合标识符命名规则。 -
()
: 函数的特征,用来书写参数列表。 -
parameter_list
: 用来接收函数运行时所需的外部数据(此章节不讲解)。 -
:
:Python 固定语法。 -
注释信息
:非必须部分,函数的注释内容,通常是说明该函数的功能、要传递的参数的作用等。 -
function_body
:函数体,用来实现函数功能的逻辑代码。 -
return [result]
: 用来结束函数或将函数运行结果返回
-
-
函数调用
function_name([parameters_value])
-
function_name
:函数名称,要调用的函数名称,必须是已经创建好的(包括内建的和自定义的)。 -
parameters_value
:参数列表,用来提供函数运行时使用的数据,可省略。 -
()
: 函数的特征,参数列表可省略,但圆括号不能省略。
-
标识符
标识符是用来标识变量、函数、类、模块和其他对象的名称。
变量
内置函数 id()
可以获取变量的内存地址,也就是这个变量在计算机内存中的唯一标识,通常是用一串数字表示。
数据类型
-
Python3 中标准数据类型有:
-
基本数据类型
-
Number(数字)
-
String(字符串)
-
bool(布尔类型)
-
复合数据类型(容器类型)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
- Set(集合)
-
-
空类型
- None
-
-
Python3 根据数据的特性可分为:
-
不可变数据(3 个):Number(数字)、bool(布尔)、String(字符串)、Tuple(元组);
-
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
-
-
数字类型:
数字类型(Number) 包括整数(int)、浮点(float)数和复数(complex)
-
布尔类型
-
布尔类型只有两个值,即
True
和False
-
常见的假值类型:
-
False
-
None
-
数值中的零,包括 0、0.0、虚数 0。
-
空序列,包括字符串、空元组、空列表、空字典。
-
-
-
类型转换
-
自动转换
自动转换也称为隐式类型转换,程序在执行过程中自动完成,将数据精度低转换为数据精度高的类型。
-
强制转换
强制转换也称为显式类型转换,需要在代码中使用类型函数来转换。以下是常见强制转换函数
-
int(x):将 x 转换为整数。如果 x 是一个字符串,那么它必须是一个表示整数的字符串,否则将会抛出异常。
-
float(x):将 x 转换为浮点数。如果 x 是一个字符串,那么它必须是一个表示浮点数的字符串,否则将会抛出异常。
-
complex(x):将 x 转换为复数。如果 x 是一个字符串,那么它必须是一个表示复数的字符串,否则将会抛出异常。
-
bool(x):将 x 转换为布尔值。如果 x 是一个空对象、0、空字符串、空列表、空元组、空字典或者 False,那么将返回 False,否则将返回 True。
-
str(x):将 x 转换为字符串。如果 x 是一个对象,那么将会调用该对象的 str()方法,将其转换为字符串。
-
chr(x): 将一个整数转换为一个字符,虽然结果是一个字符,但其本质依然是一个字符串类型
-
-
运算符
运算符是用于进行各种运算操作的符号或关键词。
-
Python 语言常用运算符如下:
-
算术运算符
-
比较(关系)运算符
-
赋值运算符
-
逻辑运算符
-
成员运算符
-
身份运算符
-
运算符优先级
-
-
运算符,根据使用操作数的不同,可分为:
-
单目运算符
-
双目运算符
-
三目运算符
-
-
算数运算符
运算符 描述 + 加法 : 两个操作数相加 - 减法 : 两个操作数相减 * 乘法 : 两个操作数相乘 / 除法 : 两个操作数相除,结果为浮点数类型 % 取模 : 也称为求余运算符, 两个操作相除,取余数为计算结果 ** 幂运算 :返回x的y次幂 // 整除 : 两个操作数相除,取商,结果为整数类型| -
赋值运算符
运算符 描述 实例 = 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c += 加法赋值运算符 c += a 等效于 c = c + a -= 减法赋值运算符 c -= a 等效于 c = c - a *= 乘法赋值运算符 c *= a 等效于 c = c * a /= 除法赋值运算符 c /= a 等效于 c = c / a %= 取模赋值运算符 c %= a 等效于 c = c % a **= 幂赋值运算符 c **= a 等效于 c = c ** a //= 取整除赋值运算符 c //= a 等效于 c = c // a -
关系运算符
-
逻辑运算符
-
成员运算符
-
身份运算符
Python 中的身份运算符用来判断两个对象的引用是否为同一个,换言之,就是用来比较两个对象的内存地址是否相同。
Python 对数字和字符串做了一些优化以提高性能和减少内存开销。以下是 Python 对数字和字符串做的一些优化:
- 整数池(Integer Pool):Python 会在程序运行时预先创建一些整数对象,并将其保存在整数池中。这样,在创建整数对象时,可以重用已存在的对象,而不是创建新的对象。这在一定程度上减少了内存开销。
- 字符串池(String Pool):对于较短的字符串,Python 会使用字符串池进行优化。字符串池是一个缓存区,保存着所有共享相同内容的字符串对象。当创建新的字符串对象时,Python 会首先检查是否已经存在相同内容的字符串对象,如果存在,则直接重用已有的对象,避免重复创建新的对象。
-
is 和 == 的区别:
-
==
运算符: 只比较两个对象的值,相同返回True
,不同返回False
。 -
is
运算符: 比较两个对象的id,相同返回True
,不同返回False
。
-
-
三目运算符
[on_true] if [expression] else [on_false]
-
on_true
: 条件为真时的结果 -
on_false
: 条件为假时的结果 -
expression
: 判断条件
-
-
运算符优先级
数据结构
字符串
-
字符串是由引号包裹的任意字符组成的不可变序列,用于表示文本类型数据。字符串可以通过使用
单引号
或双引号
或三引号
来定义,用于表示文本信息,如姓名、消息等。 -
转义字符在字符串中用于表示一些特殊字符或序列,以及插入难以直接输入的字符。
常见的转义字符包括:
\n
表示换行符,\t
表示制表符,\"
表示双引号,\'
表示单引号,\\
表示反斜杠。 -
下标是指从
0
开始的数字编号,也称为索引。 -
常用字符串相关函数
-
len()
用来获取参数字符串的字符个数 -
count()
返回str
在string
里面出现的次数,如果start
或者end
指定则返回指定范围内str
出现的次数 格式:count(str, start, end)
-
index()
检测sub
是否包含在string
中,如果start
和end
指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则抛出一个异常 格式:index(sub, start, end)
-
rindex()
作用同index()
,查找子串时从右侧查找,若找不到会抛出一个异常 格式:rindex(sub, start, end)
-
find()
检测sub
是否包含在string
中,如果start
和end
指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 格式:find(sub, start, end)
-
rfind()
作用同find()
,查找子串时从右侧查找,若找不到会抛出一个异常 格式:rfind(sub, start, end)
-
replace()
把 string 中的 old 替换成 new,如果 max 指定,则替换不超过 max 次. 格式:replace(old, new, max)
-
startwith()
检查字符串是否是以 prefix 开头,是则返回 True,否则返回 False。如果 start 和 end 指定值,则在指定范围内检查. 格式:startwith(prefix, start, end)
-
endswith()
检查字符串是否是以 suffix 开头,是则返回 True,否则返回 False。如果 start 和 end 指定值,则在指定范围内检查. 格式:endwith(suffix, start, end)
-
isalpha()
如果 string 至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False -
isdigit()
如果 string 只包含数字则返回 True 否则返回 False. -
isalnum()
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False -
isspace()
如果 string 中只包含空格,则返回 True,否则返回 False -
isupper()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False -
islower()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False -
istitle()
如果 string 是标题化的(所有单词首字符是大写)则返回 True,否则返回 False -
capitalize()
把字符串的第一个字符大写 -
title()
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写 -
upper()
转换 string 中的小写字母为大写 -
lower()
转换 string 中的小写字母为小写 -
center()
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串,如果指定fillchar参数,则使用指定字符填充,fillchar参数长度只能为1 格式:center(width, fillchar)
-
ljust()
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串,如果指定fillchar参数,则使用指定字符填充,fillchar参数长度只能为1 格式:ljust(width, fillchar)
-
rjust()
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串,如果指定fillchar参数,则使用指定字符填充,fillchar参数长度只能为1 格式:ljust(width, fillchar)
-
strip()
删除 string 左右两侧的空白字符, 如果指定chars参数,则删除左右两侧指定的字符 -
lstrip()
删除 string 左边的空白字符, 如果指定chars参数,则删除左侧指定的字符 格式:lstrip(chars)
-
rstrip()
删除 string 左边的空白字符, 如果指定chars参数,则删除右侧指定的字符 格式:lstrip(chars)
-
split()
以 sep 为分隔符分割 string,如果指定 maxsplit 参数,则仅分割 maxsplit次 格式:split(sep, maxsplit)
-
splitlines()
使用换行符\n
分割 string,如果指定keepends
参数,则结果中会保留\n
符号 格式:splitlines(keepends)
-
partition()
从 sep 出现的第一个位置起,把 string 分成一个3元素的元组 (string_pre_sep,sep,string_post_sep),如果 string 中不包含 sep 则 string_pre_str == string,其余元素为空字符串 -
rpartition()
从右向左 sep 出现的第一个位置起,把 string 分成一个3元素的元组 (string_pre_sep,sep,string_post_sep),如果 string 中不包含 sep 则 string_post_str == string,其余元素为空字符串 -
+号
将两个字符串连接生成一个新字符串,+
号两侧必须都是字符串 -
*号
将字符串重复N次后生成一个新字符串 -
join()
使用 string 连接可迭代对象中的所有元素,可迭代对象参数中的所有元素必须是字符串 -
encode()
使用 encoding 指定的字符集,对 string 进行编码,转换成二进制字符串 -
decode()
使用 encoding 指定的字符集,对 string 进行解码,转换成字符串对象, string必须是二进制字符串 -
对字符串按指定的范围进行截取,得到一个子字符串,指定范围时,起始下标必须小于结束下标,且子字符串不包含结束下标
格式:
str[start: end: step]
-