小言_互联网的博客

Python入门看这一篇就够了-你知道海象运算符:=吗?

1173人阅读  评论(0)


Python环境搭建-从安装到Hello World

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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场