Python
解释器
解释器的行为就像是一个计算器,可以说输入一个表达式,它会返回结果。
出现主提示符>>>,则表示解释器已经启动了。
- IDEL中启动解释器
- PyCharm中启动解释器
点击底部Python Console
缩进
缩进是Python语言和其他语言非常不一样的地方,Python用缩进(4个空格)来表示程序块,而不是用大括号或者begin、end。
比如以下C语言:
int fib(int a)
{
if(a==1||a==2)
{
return 1;
}
else
{
return fib(a-1)+fib(a-2);
}
}
转换为Python为:
def fib(a):
if a == 1 or a == 2:
return 1
else:
return fib(a - 1) + fib(a - 2)
再比如以下两个函数运行结果截然不同:
def print1(a):
if a == 1:
print('ok')
print('a is 1')
def print2(a):
if a == 1:
print('ok')
print('a is 1')
print1(0)
print('-----------')
print2(0)
海象运算符
海象运算符:=是Python3.8后提供的,:=可以将一个值赋给一个变量,即使该变量不存在也可以。
举例:
a = '记得一键三连'
if (n := len(a)) < 10:
print(n)
把a的长度赋值给新变量n,若a长度小于10,输出n
若不用:=则会报错
f字符串调试
f调试也是Python3.8后的新特性,就像数学中的函数 f ( x ) f(x) f(x)一样,可以计算出表达式的值。
举例:
x=5
print(f'{x + 3}')
print(f'{x + 3 = }')
类型
简单类型
-
布尔bool
取值为True或False,逻辑运算(与或非、判断等)的结果。
-
整数int
比较不同的是幂可以用**表示,比如2**3表示 2 3 2^3 23
0o可以八进制转十进制
0x可以十六进制转十进制
其余没什么好讲的
-
浮点float
带圆点符号的数值都被认为是浮点数。
-
复数complex
即数学概念里的复数,由实数和虚数组成
-
空None
类似于C/C++中的null,表示空。
列表类型
列表list是顺序存储数据的容器,类似C的数组,C++的vector。
定义:使用[]符号定义,中间元素用逗号隔开。
访问:下标从0开始,此外还增加了负下标(如下标1表示第二个元素,下标-2表示倒数第二个元素)。
也能通过切片操作划分子list,一个表示开始位置(默认0),一个表示结束位置(默认-1),中间用冒号隔开。特别注意的是结束位置不包括它本身,是区间[)前闭后开。
运算:
方法:
太多不一一演示了,根据这些方法,list可以模拟堆栈和队列。
方法 | 描述 |
---|---|
append() | 在末尾添加对象 |
count() | 统计列表元素个数 |
extend() | 将一个序列对象转换为列表并添加到末尾 |
index() | 返回查找值得第一个下标 |
insert() | 插入对象到指定下标后 |
pop() | 弹出下标元素(默认最后一个) |
remove() | 删除指定值,存在多个时删第一个 |
reverse() | 顺序倒置 |
sort() | 排序(默认从小到大) |
推导式List Comprehension:
使用过滤和映射生成特定要求的列表,语法[<expr1> for k in L if <expr2> ]
,for k in L是对L列表的循环,if expr2使用expr2对循环的元素k进行过滤,expr1是返回的表达式。
元组类型
元组tuple通过一对括号()表示,元组的常量是list,也可以通过help(tuple)查看tuple的自省信息。基本操作和list类似,支持下标和切片操作以及比较运算和加乘运算,但是不支持+=、*=操作和list的方法。
字符串类型
字符串可以看成特殊的元组,用单引号或双引号表示。
转义符用反斜杠\表示,此外反斜杠也可用于拆分为很多行。
大小写转换:
偷懒不演示了
方法 | 描述 |
---|---|
capitalize() | 首字母大写 |
lower() | 全部转小写 |
upper() | 全部转大写 |
swapcase() | 大小写互换 |
title() | 单词首字母大写,其余小写 |
字符串搜索:
方法 | 描述 |
---|---|
find() | 查找并返回第一个字母下标,找不到返回-1(从左向右) |
index() | 查找并返回第一个字母下标,找不到报错(从左向右) |
rfind() | 同find,从右向左 |
rindex() | 同index,从右向左 |
字符串替换:
方法 | 描述 |
---|---|
replace() | 替换 |
strip() | 去掉头尾指定字符 |
rstrip() | 从右边开始 |
lstrip() | 从左边开始 |
expandtabs() | 用空格替换tab键 |
字符串判断:
方法 | 描述 |
---|---|
startwith() | 判断是否以…为开头 |
endwith() | 判断是否以…为结尾 |
isalnum() | 判断是否由字母和数字组成 |
isdight() | 判断是否全是数字 |
isalpha() | 判断是否全是字母 |
isspace() | 判断是否全是空格 |
iflower() | 判断是否全是小写 |
siupper() | 判断是否全是大写 |
istitle() | 判断是否首字母大写 |
(
插播反爬信息)博主CSDN地址:https://wzlodq.blog.csdn.net/
字典类型
字典是Python中关联的容器类型,使用大括号{}创建,字典中的元素都是一对,每对包括key和value两部分,key值不能重复。
字典的创建:
- 直接创建,语法{key1:value1,key2:value2,…}
- dict()创建空字典
- 通过映射类型的组生成dist
- 通过序列容器生成队列
- 通过输入方法参数
字典的操作:
- 通过key访问value
- 各比较运算符
- 清空
- 删除
- 序列访问
items()返回一个列表,iteritems()、iterkeys()、itervalues()返回迭代器对象,keys()返回以key为元素的列表。
集合类型
集合是无序并唯一地存放容器元素的类型,可分为可变集合和不可变集合两种。
集合的创建:
set()方法创建可变集合,frozenset()创建不可变集合。
集合的方法
方法 | 描述 |
---|---|
union()或| | 并 |
intersection()或& | 交 |
difference()或- | 差 |
symmetric_difference()或^ | 补 |
issubset()或<= | 判断子集 |
流程控制
选择结构:
if...elif...else
elif就是else if的缩写
if x == 0:
print('x is 0')
elif x < 0:
print('x is less than 0')
else:
print('x is more than 0')
for循环结构:
for...in...
a = [1, 2, 3, 4]
for x in a:
print(x)
while循环结构:
while 表达式
i = 0
while i < 6:
i += 1
print(i)
continue和break:
-
continue不执行后续语句,但会继续执行剩余循环
-
break也不执行后续语句,同时结束循环
函数
函数的定义
语法:
def <function_name> ( <parameters_list> ):
<code block>
- def关键字用来声明定义函数
- function_name是函数的名字
- parameters_list是函数输入的参数
- code block是函数的模块代码
函数的参数
-
固定参数
-
参数默认值
当没有指定参数值时,会使用默认值调用。
-
不定参数
*arg
arg实际上是一个元组
-
参数/
/符号前的参数必须使用默认参数输入方式,不能再带关键字。
/符号后面的参数依然可以使用关键字输入形式。
函数的调用和返回
-
可以直接使用函数名调用
-
函数名本身也可做参数传递
-
函数名可传参被另一个函数调用
-
使用
return
返回值,未使用return时返回None
lambda函数
lambda可以理解为单行的匿名函数,可含参
lambda 参数1,参数2,...:表达式
嵌套函数
在函数内部定义函数(套娃 )
内层函数可以访问外层函数,但是没有提供由内而外的绑定措施。
函数作用域
遵循LGB原则,L即local name space,G即global name space,B即buildin name space。
意思是对于一个变量名称,先查找局部命名空间,再查找全局命名空间,最后查找内部命名空间。
Python系列博客持续更新中
原创不易,请勿转载(
本不富裕的访问量雪上加霜)
博主首页:https://wzlodq.blog.csdn.net/
微信公众号:唔仄lo咚锵
如果文章对你有帮助,记得一键三连❤
转载:https://blog.csdn.net/qq_45034708/article/details/113720515