java面试题 spring生命周期,Python初学者必须吃透的69个内置函数,经典实战教程

11

sum(a,10) #求和的初始值为10

21

min()

**描述:**min() 方法返回给定参数的最小值,参数可以为序列。

**语法:**min( x, y, z, … )

参数:

  • x – 数值表达式。

  • y – 数值表达式。

  • z – 数值表达式。

min(80, 100, 1000)

80

min([80, 100, 1000])

80

max()

**描述:**max() 方法返回给定参数的最大值,参数可以为序列。

**语法:**max( x, y, z, … )

参数:

  • x – 数值表达式。

  • y – 数值表达式。

  • z – 数值表达式。

最大值:

max(3,1,4,2,1)

4

di = {‘a’:3,‘b1’:1,‘c’:4}

max(di)

‘c’

二、数据结构相关


01 序列数据类型


1)列表和元组


list()

**描述:**list() 函数创建列表或者用于将序列转换为列表。

**语法:**list( iterable )

**参数:**iterable – 可迭代序列。

序列为元组时

s=(123, ‘xyz’, ‘zara’, ‘abc’)

list(S)

[123, ‘xyz’, ‘zara’, ‘abc’]

序列为字符串

s= ‘小伍哥真是帅,特别帅’

list(s)

[‘小’, ‘伍’, ‘哥’, ‘真’, ‘是’, ‘帅’, ‘,’, ‘特’, ‘别’, ‘帅’]

序列为字典

s = {‘nanme’:‘小伍哥’,‘age’:30,‘address’:‘Hangzhou’}

list(s)

[‘nanme’, ‘age’, ‘address’]

tuple()

描述: 元组 tuple() 函数将列表转换为元组。

**语法:**tuple( iterable )

**参数:**iterable – 要转换为元组的可迭代序列。

tuple([1,2,3,4])

(1, 2, 3, 4)

tuple({‘a’:2,‘b’:4}) #针对字典 会返回字典的key组成的tuple

(‘a’, ‘b’)

tuple(‘小伍哥真是帅,特别帅’)

(‘小’, ‘伍’, ‘哥’, ‘真’, ‘是’, ‘帅’, ‘,’, ‘特’, ‘别’, ‘帅’)

2)集合数据类型


dict()

**描述:**创建数据字典

语法:

class dict(**kwarg)

class dict(mapping, **kwarg)

class dict(iterable, **kwarg)

参数:

  • **kwargs – 关键字

  • mapping – 元素的容器。

  • iterable – 可迭代对象。

#创建空字典

dict()

{}

#传入关键字

dict(a=‘a’, b=‘b’, t=‘t’)

{‘a’: ‘a’, ‘b’: ‘b’, ‘t’: ‘t’}

映射函数方式来构造字典

dict(zip([‘one’, ‘two’, ‘three’], [1, 2, 3]))

{‘three’: 3, ‘two’: 2, ‘one’: 1}

#可迭代对象方式来构造字典

dict([(‘one’, 1), (‘two’, 2), (‘three’, 3)])

{‘three’: 3, ‘two’: 2, ‘one’:

set()

**描述:**set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

**语法:**class set([iterable])

**参数:**iterable – 可迭代对象对象;

#返回一个set对象,可实现去重:

a = [1,4,2,3,1]

set(a)

{1, 2, 3, 4}

frozenset()

**描述:**frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

**语法:**class frozenset([iterable])

**参数:**iterable – 可迭代的对象,比如列表、字典、元组等等。

创建一个不可修改的集合。

frozenset([1,1,3,2,3])

frozenset({1, 2, 3})

3)字符串


str()

**描述:**str() 函数将对象转化为适于人阅读的形式。将字符类型、数值类型等转换为字符串类型

**语法:**class str(object=‘’)

**参数:**object – 对象。

案例:

integ = 100

str(integ)

‘100’

dict = {‘baidu’: ‘baidu.com’, ‘google’: ‘google.com’};

str(dict)

“{‘baidu’: ‘baidu.com’, ‘google’: ‘google.com’}”

format()

**描述:**Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。使用format()来格式化字符串时,使用在字符串中使用{}作为占位符,占位符的内容将引用format()中的参数进行替换。可以是位置参数、命名参数或者兼而有之。

format 函数可以接受不限个参数,位置可以不按顺序。

**语法:**format(value, format_spec)

参数:

位置参数

‘{}:您{}购买的{}到了!请下楼取快递。’.format(‘快递小哥’,‘淘宝’,‘快递’)

‘快递小哥:您淘宝购买的快递到了!请下楼取快递。’

#给批量客户发短息

n_list=[‘马云’,‘马化腾’,‘麻子’,‘小红’,‘李彦宏’,‘二狗子’]

for name in n_list:

print(‘{0}:您淘宝购买的快递到了!请下楼取快递!’.format(name))

马云:您淘宝购买的快递到了!请下楼取快递!

马化腾:您淘宝购买的快递到了!请下楼取快递!

麻子:您淘宝购买的快递到了!请下楼取快递!

小红:您淘宝购买的快递到了!请下楼取快递!

李彦宏:您淘宝购买的快递到了!请下楼取快递!

二狗子:您淘宝购买的快递到了!请下楼取快递!

#名字进行填充

for n in n_list:

print(‘{0}:您淘宝购买的快递到了!请下楼取快递!’.format(n.center(3,‘*’)))

*马云:您淘宝购买的快递到了!请下楼取快递!

马化腾:您淘宝购买的快递到了!请下楼取快递!

*麻子:您淘宝购买的快递到了!请下楼取快递!

*小红:您淘宝购买的快递到了!请下楼取快递!

李彦宏:您淘宝购买的快递到了!请下楼取快递!

二狗子:您淘宝购买的快递到了!请下楼取快递!

‘{0}, {1} and {2}’.format(‘gao’,‘fu’,‘shuai’)

‘gao, fu and shuai’

x=3

y=5

‘{0}+{1}={2}’.format(x,y,x+y)

命名参数

‘{name1}, {name2} and {name3}’.format(name1=‘gao’, name2=‘fu’, name3=‘shuai’)

‘gao, fu and shuai’

混合位置参数、命名参数

‘{name1}, {0} and {name3}’.format(“shuai”, name1=‘fu’, name3=‘gao’)

‘fu, shuai and gao’

#for循环进行批量处理

[“vec_{0}”.format(i) for i in range(0,5)]

[‘vec_0’, ‘vec_1’, ‘vec_2’, ‘vec_3’, ‘vec_4’]

[‘f_{}’.format® for r in list(‘abcde’)]

[‘f_a’, ‘f_b’, ‘f_c’, ‘f_d’,

bytes()

**描述:**将一个字符串转换成字节类型

**语法:**class bytes([source[, encoding[, errors]]])

参数:

  • 如果 source 为整数,则返回一个长度为 source 的初始化数组;

  • 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

  • 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

  • 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

  • 如果没有输入任何参数,默认就是初始化数组为0个元素。

s = “apple”

bytes(s,encoding=‘utf-8’)

b’apple’

bytes([1,2,3,4])

b’\x01\x02\x03\x04’

bytearray()

**描述:**返回一个新字节数组. 这个数字的元素是可变的, 并且每个元素的值得范围是[0,256)

**语法:**class bytearray([source[, encoding[, errors]]])

参数:

  • 如果 source 为整数,则返回一个长度为 source 的初始化数组;

  • 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

  • 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

  • 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

  • 如果没有输入任何参数,默认就是初始化数组为0个元素。

bytearray()

bytearray(b’')

bytearray([1,2,3])

bytearray(b’\x01\x02\x03’)

bytearray(‘baidu’, ‘utf-8’)

bytearray(b’baidu’)

ord()

**描述:**查看某个ascii对应的十进制数

**语法:**ord©

**参数:**c – 字符。

ord(‘A’)

65

ord(‘~’)

126

chr()

**描述:**chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

**语法:**chr(i)

**参数:**i – 可以是10进制也可以是16进制的形式的数字。

查看十进制整数对应的ASCII字符

chr(65)

‘A’

可以参考4案例中的表

ascii()

**描述:**ascii() 函数返回任何对象(字符串,元组,列表等)的可读版本。

ascii() 函数会将所有非 ascii 字符替换为转义字符:

å 将替换为 \xe5。

**语法:**ascii(object)

**参数:**object–对象,可以是元组、列表、字典、字符串、set()创建的集合。

ascii(‘中国’)

“‘\u4e2d\u56fd’”

ascii(‘新冠肺炎’)

"'\u65b0\u51a0\u80ba\u

ascii(“My name is Ståle”)

“‘My name is St\xe5le’”

print(ascii((1,2))) #元组

(1, 2)

print(type(ascii((1,2))))

<class ‘str’>

print(ascii([1,2])) #列表

[1, 2]

print(type(ascii([1,2])))

<class ‘str’>

print(ascii(‘?’)) #字符串,非 ASCII字符,转义

‘\uff1f’

print(type(ascii(“?”)))

<class ‘str’>

print(ascii({1:2,‘name’:5})) #字典

{1: 2, ‘name’: 5}

print(type(ascii({1:2,‘name’:5})))

<class ’

ASCII码表具体如下所示(节选)

Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)缩写/字符解释
0000 00000000x00NUL(null)空字符
0010 0001041330x21!叹号
0010 0010042340x22"双引号
0010 1010052420x2A*星号
..................
0111 110101751250x7D}闭花括号
0111 111001761260x7E~波浪号
0111 111101771270x7FDEL (delete)删除

repr()

返回一个对象的string形式

03 数据结构处理相关函数


len()

**描述:**len() 函数返回对象(字符、列表、元组等)长度或项目个数。

**语法:**len(s)

**参数:**s – 对象。

#字典的长度

dic = {‘a’:1,‘b’:3}

len(dic)

2

#字符串长度

s=‘aasdf’

len(s)

5

#列表元素个数

l = [1,2,3,4,5]

len(l)

sorted()

**描述:**sorted()函数对所有可迭代的对象进行排序操作。

**语法:**sorted(iterable, key=None, reverse=False)

参数:

  • iterable–可迭代对象。

  • key–主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

  • reverse – 排序规则,reverse=True降序 ,reverse = False升序(默认)。

a = [5,7,6,3,4,1,2]

b = sorted(a) #保留原列表

a

[5, 7, 6, 3, 4, 1, 2]

b

[1, 2, 3, 4, 5, 6, 7]

#利用key

L=[(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)]

sorted(L, key=lambda x:x[1])

[(‘a’, 1), (‘b’, 2), (‘c’, 3), (‘d’, 4)]

#按年龄排序

students = [(‘john’, ‘A’, 15), (‘jane’, ‘B’, 12), (‘dave’, ‘B’, 10)]

sorted(students, key=lambda s: s[2])

[(‘dave’, ‘B’, 10), (‘jane’, ‘B’, 12), (‘john’, ‘A’, 15)]

#按降序

sorted(students, key=lambda s: s[2], reverse=True)

[(‘john’, ‘A’, 15), (‘jane’, ‘B’, 12), (‘dave’, ‘B’, 10)]

#降序排列

a = [1,4,2,3,1]

sorted(a,reverse=True)

[4, 3, 2, 1, 1

sort 与 sorted 区别:

sort 是应用在list 的方法,sorted可以对所有可迭代的对象进行排序操作;list的sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数sorted方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

reversed()

**描述:**reversed函数返回一个反转的迭代器。

**语法:**reversed(seq)

**参数:**seq – 要转换的序列,可以是 tuple, string, list 或 range。

#反转列表

rev = reversed([1,4,2,3,1])

list(rev)

[1, 3, 2, 4, 1]

#反转字符串

rev = reversed(‘我爱中国’)

list(rev)

[‘国’, ‘中’, ‘爱’, ‘我’]

‘’.join(rev)

‘国中爱我’

s = ‘我的世界开始下雪’

‘’.join(reversed(s))

'雪下始开界世的

slice()

**描述:**slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。返回一个表示由 range(start, stop, step) 所指定索引集的 slice对象

语法:

  • class slice(stop)

  • class slice(start, stop[, step])

参数:

  • start – 起始位置

  • stop – 结束位置

  • step – 间距

a = [1,4,2,3,1]

a[slice(0,5,2)] #等价于a[0:5:2]

[1, 2, 1]

a = list(range(10))

a[slice(3)]

[0, 1, 2

enumerate()

**描述:**enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。返回一个可以枚举的对象,该对象的next()方法将返回一个元组。enumerate在字典上是枚举、列举的意思。

**语法:**enumerate(sequence, [start=0])

**参数:**sequence – 一个序列、迭代器或其他支持迭代对象。

start – 下标起始位置。

L = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]

enumerate(L)

<enumerate at 0x226e1ee1138>#生成的额迭代器,无法直接查看

list(enumerate(L))#列表形式,可以看到内部结构,默认下标从0开始

[(0, ‘Spring’), (1, ‘Summer’), (2, ‘Fall’), (3, ‘Winter’)]

list(enumerate(L, start=1)) #下标从 1 开始

[(1, ‘Spring’), (2, ‘Summer’), (3, ‘Fall’), (4, ‘Winter’)]

for i,v in enumerate(L):

print(i,v)

0 Spring

1 Summer

2 Fall

3 Winter

for i,v in enumerate(L,1):

print(i,v)

1 Spring

2 Summer

3 Fall

4 Winter

s = [“a”,“b”,“c”]

for i ,v in enumerate(s,2):

print(i,v)

2 a

3 b

4 c

普通的 for 循环

i = 0

seq = [‘one’, ‘two’, ‘three’]

for element in seq:

print (i, seq[i])

i+= 1

0 one

1 two

2 three

在看一个普通循环的对比案例

for 循环使用 enumerate

seq = [‘one’, ‘two’, ‘three’]

for i, element in enumerate(seq):

print (i, element)

0 one

1 two

2 three

seq = [‘one’, ‘two’, ‘three’]

for i, element in enumerate(seq,2):

print (i, element)

2 one

3 two

4 three

all()

**描述:**接受一个迭代器,如果迭代器(元组或列表)的所有元素都为真,那么返回True,否则返回False,元素除了是0、空、None、False外都算 True。**注意:**空元组、空列表返回值为True,这里要特别注意。

**语法:**all(iterable)

**参数:**iterable – 元组或列表

案例:

all([1,0,3,6])

False

all([1,9,3,6])

True

all([‘a’, ‘b’, ‘’, ‘d’])

False

all([]) #空列表为真

True

all(()) #空元组为真

True

any()

**描述:**接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False,元素除了是 0、空、None、False 外都算 True。

**语法:**any(iterable)

**参数:**iterable – 元组或列表

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-XqtH7JzY-1712424324757)]
[外链图片转存中…(img-4xyeNSkX-1712424324757)]



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-GzN9vsW0-1712424324758)]

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-VpAmEmtE-1712424324758)]

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值