python——函数的应用

目录

eval()函数

定义

用法

例子

输出结果

最大值最小值函数 

实例

输出结果

sum()与len() 的使用

实例

输出结果

排序与逆序 

定义

语法

实例

输出结果

基本内置函数

input()

   定义

输出结果

print()

定义

输出结果

range()函数 

定义

语法

 实例

输出结果

zip()函数

实例

输出结果

map()函数

 实例

输出结果

reduce()函数

实例

运行结果

filter()函数

实例

输出结果

翻转函数

代码

输出结果

 输出列表最大值

代码

 输出结果


eval()函数

定义

        eval() 函数用来执行一个字符串表达式,并返回表达式的值。

用法

eval(expression[, globals[, locals]])

  • expression -- 表达式。
  • globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

例子

print(eval('3+4j'))                # 对字符串求值得到复数

print(eval('8**2'))                # 计算表达式8**2的值

print(eval('[1,2,3,4,5]'))         # 对字符串形式求值得到列表

print(eval('{1,2,3,4}'))           # 对字符串求值得到集合

输出结果

(3+4j)
64
[1, 2, 3, 4, 5]
{1, 2, 3, 4} 

最大值最小值函数 

        max/min(列表,,key = 条件)

        获得最大/最小值的位置,用__getitem__

实例

data=[3,2,11]
print(data)
# 对列表中的元素直接比大小,输出最大元素
print(max(data))
print(min(data))
# 返回转成字符串之后的最大元素
print(max(data,key=str))
data=['3','22','111']
print(max(data))
#  返回长度最大的字符串
print(max(data,key=len))
data= ['abc','Abcd','ab']
print(max(data)) # 返回最大的字符串
print(max(data,key=len))
print(max(data,key=str.lower))  # 返回全部转化为小写之后的最大的字符串
data = [1,1,1,2,2,3,1]
print(max(set(data),key = data.count))
# 返回最大元素的位置,列表方法 getitem ()方法获取指定位置的值
print(max(range(len(data)),key = data.__getitem__))

输出结果

[3, 2, 11]
11
2
3
3
111
abc
Abcd
Abcd
1

sum()与len() 的使用

        sum(iterable[, start]),iterable:可以是列表、元组、集合、字典。star为设置想加参数,默认为0。

        sum():用于求字典的话就是键值相加。

        len():用于求字符串的长度

实例

data = [1,2,3,4]
print(len(data))
print(sum(data))
data=(1,2,3)
print(len(data))
print(sum(data))
data = 'Readability counts.'
print(len(data))
data = {97:'a',65:'A',48:'0'}
print(len(data))
print(sum(data))

输出结果

4
10
3
6
19
3
210 

排序与逆序 

定义

        sorted():对所有可迭代的对象进行排序操作。

        sorted()函数默认为升序函数,在后面将reverse改为True就变为乱序 

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

语法

sorted(iterable, cmp=None, key=None, reverse=False)

  • terable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

实例

from random import shuffle
data = list(range(20))
shuffle(data)        # 随机打乱顺序
print(data)
print(sorted(data))        # 升序排序
print(sorted(data,key = str))
# 按转换成字符串后的大小降序排序
print(sorted(data,key = str,reverse=True))

from random import shuffle
data = list(range(20))        # 建列表
shuffle(data)                #打乱顺序
print(data)
reversedData=reversed(data)        # 生成reversed对象
print(reversedData)                
print(list(reversedData))        # 根据reversed对象生成列表
print(tuple(reversedData))

输出结果

[19, 8, 16, 11, 17, 10, 7, 18, 14, 0, 6, 3, 5, 9, 12, 1, 13, 4, 2, 15]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 1, 0]
[5, 4, 7, 1, 19, 0, 10, 2, 16, 9, 8, 15, 3, 11, 13, 18, 17, 12, 14, 6]
<list_reverseiterator object at 0x000001D74E626FD0>
[6, 14, 12, 17, 18, 13, 11, 3, 15, 8, 9, 16, 2, 10, 0, 19, 1, 7, 4, 5]
() 

注意:最后一个元组是空的,reversed对象中的元素只能用一

基本内置函数

input()

   定义

         input():输入的所有,都认为成字符串,以字符串形式保存。想要其他类型可以进行强制类型转换。

实例

num = int(input('请输入一个大于2的自然数:'))
if num%2==1:
    print('这是个奇数')
else:
    print('这是个偶数')
lst = eval(input('请输入一个包含若干个大于2的自然数的列表'))
print('列表中所有元素之和为:',sum(lst))

输出结果

请输入一个大于2的自然数:2
这是个偶数
请输入一个包含若干个大于2的自然数的列表[3,4,5,6,7]
列表中所有元素之和为: 25 

print()

定义

        print():直接输出

实例

print(1,2,3,4,5)        # 默认情况以空格为分隔符
print(1,2,3,4,5,sep=",")        # 指定使用逗号做完分隔符
print(3,5,7,end='')        # 输入完数据,以空格结束,不换行
print(9,11,13)

输出结果

1 2 3 4 5
1,2,3,4,5
3 5 79 11 13 

range()函数 

定义

        range()函数可创建一个整数列表,一般用在 for 循环中 。

语法

range(start, stop[, step])
  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

 实例

range1=range(4)        # 只指定start为4,stop默认为0,0,step默认为1
range2=range(5,8)        
range3=range(3,20,4)
range4=range(20,0,-3)        # step也可以为负数
print(range1,range2,range3,range4)
print(range4[2])
print(list(range1),list(range2),list(range3),list(range4))
for i in range(10):
    print(i,end='')

输出结果

range(0, 4) range(5, 8) range(3, 20, 4) range(20, 0, -3)
14
[0, 1, 2, 3] [5, 6, 7] [3, 7, 11, 15, 19] [20, 17, 14, 11, 8, 5, 2]
0123456789 

zip()函数

        zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

        如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

实例

data = zip('1234',[1,2,3,4,5,6])
# 在转换为列表时,使用了zip对象中的全部元素,zip对象中不再包含任何内容
print(data)
print(list(data))
data = zip('1234',[1,2,3,4,5,6])
print(tuple(data))
data = zip('1234',[1,2,3,4,5,6])
for item in data:
    print(item)

输出结果

<zip object at 0x000001ECFD189100>
[('1', 1), ('2', 2), ('3', 3), ('4', 4)]
(('1', 1), ('2', 2), ('3', 3), ('4', 4))
('1', 1)
('2', 2)
('3', 3)
('4', 4) 

注意,第一个直接print打印出来的是地址,如果想要输出要加list 

map()函数

        map() 会根据提供的函数对指定序列做映射。能接收两个参数,映射在两个序列中。


 实例

from operator import add
print(map(str,range(5)))
print(list(map(str,range(5))))
print(list(map(len,['abc','1234','test'])))
# 使用operator标准库中的add运算 add运算相对于运算符+
# 如果map()函数的第一个参数func能够接收两个参数,则可以映射到两个序列上
for num in map(add,range(5),range(5,10)):
    print(num)s

输出结果

<map object at 0x00000207BC9D6FA0>
['0', '1', '2', '3', '4']
[3, 4, 4]
5
7
9
11
13 

reduce()函数

        reduce() 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
 

实例

from functools import reduce
from operator import add,mul,or_
seq = range(1,10)
print(reduce(add,seq))# 累加seq中的数字
print(reduce(mul,seq))# 累乘seq中的数字
seq = [{1},{2},{3},{4}]
print(reduce(or_,seq))# 并集运算

运行结果

45
362880
{1, 2, 3, 4} 

filter()函数

        filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。


实例

seq = ['abcd','1234','.,?!','']
print(list(filter(str.isdigit,seq)))
print(list(filter(str.isalpha,seq)))
print(list(filter(str.isalnum,seq)))
print(list(filter(None,seq)))

输出结果

['1234']
['abcd']
['abcd', '1234']
['abcd', '1234', '.,?!'] 

翻转函数

        将字符串翻转,逆序输出

代码

from operator import add
from functools import reduce
text = input('请输入一个字符串:')
print(reduce(add,reversed(text)))

输出结果

请输入一个字符串:1s54d6w8
8w6d45s1 

 输出列表最大值

        输入一个包含若干整数的列表,输出列表中的最大值。

代码

lst = eval(input('请输入一个包含若干个整数的列表'))
print(max(lst))

 输出结果

请输入一个包含若干个整数的列表[1,2,5,4,888]
888

 注:使用内置函数eval()把包含列表的字符串转换成列表

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁弋生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值