python入门基础知识六(函数)

函数要先定义,再调用!

一、函数参数的类型:

1. 形式参数和实际参数:

def funct_name(arguments):

codes…

codes…

funct_name(real arguments)

def funct_name(a,b):    # 定义函数,设置两个参数a、b,用来接收数据  """This function calculates a+b. 两数求和函数"""  # 函数说明文档位置
    result = a + b
    print(result)

funct_name(520,1314)    # 对a、b分别赋值520,1314,并调用函数help(funct_name)  # 显示函数说明文档

No.001,name:Zhangsan,age:28.

Process finished with exit code 0


## 3. 关键字参数

以键-值的方式传入实际参数值,无关乎先后顺序

def funct_name(number,name,age):
print(f’No.{number},name:{name},age:{age}.’)

funct_name(age=28,number=’001′,name=’Zhangsan’)

No.001,name:Zhangsan,age:28.

Process finished with exit code 0


## 4. 缺省参数

指定参数的默认值,作为实际参数传入函数。若有位置参数,其必须在默认参数的前面,否则报错。

def funct_name(name,age,gender='Male'):

codes...

funct_name('Zhangsan',28)

funct_name('Lily',20,gender='Female')

## 5. 收集参数

def funct_name(*args): # 接收任意数量参数,返回一个元组
print(args)

funct_name(‘WTF’,9527)

(‘WTF’, 9527) # 返回的结果是元组

def funct_name(**kwargs): # 接收键值对,返回一个字典
print(kwargs)

funct_name(地点=’WW’,人物=’老妖婆’,事件=’流窜’)

{‘地点’: ‘WW’, ‘人物’: ‘老妖婆’, ‘事件’: ‘流窜’}


二、函数返回值:return

def funct_name(a,b):

return a+b

遇到return,程序就会返回return后面的值或表达式,然后退出函数

三、函数递归

就是函数自己调用自己,但必须要有出口,否则成了无限循环。

“””计算1-100的累加结果”””
def funct_name(a):
if a == 100:
return 100 # 设置退出的出口
outcome = a + funct_name(a+1)
return outcome
result = funct_name(1)
print(result)


四、lambda表达式

函数只有一个返回值,且只有一句代码,就可以用lambda表达式简写。

## 1. lambda语法

lambda 形参: 表达式 # 形参可以省略,可以接收多个实参,但 **返回的只有一个表达式的值**

![python入门基础知识六(函数)](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230605/2857582-20220805111718425-1694082846.png)

## 2. 带条件语句的lambda表达式

def funct_name(a,b):

return a if a > b else b

print(funct_name(1,2))

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
print((lambda a,b:a if a > b else b)(1,2))


## 3. 列表中字典数据的排序

list_name1 =[ {‘name’:’Zulu’,’age’:47},{‘name’:’Alpha’,’age’:38},{‘name’:’Dracula’,’age’:400} ]
list_name1.sort(key=lambda x:x[‘name’], reverse=False)
print(list_name1)

list_name2 = [ { ‘name’:’孙兴华’,’age’:20 } , {‘name’:’赵丽颖’,’age’:33 } , {‘name’:’李小龙’,’age’:80 } ]
list_name2.sort(key=lambda x:x[‘name’], reverse=False)
print(list_name2)

8
8


第二个函数设置了三个参数,然后将a,b作为c的参数,最后在给出实际参数时,将c的值赋为绝对值函数abs。

## 1. filter(函数名,迭代对象)

筛选序列中符合条件的元素

a = list(range(1,11))

def funct_name1(x):
return x%2 == 0  # 将除2余数为零的数返回出来

outcome = filter(funct_name1,a)
print(outcome) # 打印的是对象的内存地址
print(list(outcome))

[1, 4, 9, 16]
[1, 4, 9, 16]


## 3. reduce(函数名(x,y),迭代对象)

**函数中必须有2个参数**,每次的计算结果继续和序列的下一个元素做累加计算

import functools # 导入模块
a = list(range(1,101))
def funct_name(a,b):
return a + b # 计算加和
outcome = functools.reduce(funct_name,a) # 引入reduce函数后,将函数的每次计算结果和序列的下一元素做累加
print(outcome)

print(functools.reduce((lambda x,y : x + y),(range(1,101)))) # 简略写法

Original: https://www.cnblogs.com/randyszone/p/16547807.html
Author: randy198
Title: python入门基础知识六(函数)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583074/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【Linux】指令学习

    Linux学习记录 😄生命不息,写作不止🏆 一个有梦有戏的人 @怒放吧德德🌝分享学习心得,欢迎指正,大家一起学习成长! 1、虚拟机网卡配置 服务器重启完成之后,我们可以通过linu…

    Linux 2023年6月6日
    0117
  • 阿里云-docker上安装redis

    1、取最新版的 Redis 镜像 这里我们拉取官方的最新版本的镜像: $ docker pull redis:latest 2、查看本地镜像 使用以下命令来查看是否已安装了 red…

    Linux 2023年5月28日
    077
  • linux下应用程序界面初始位置及鼠标拖动失效

    故事背景:最近在适配uos系统,客户端程序启动初始位置乱跳,并不是我设置的屏幕中间,鼠标拖动失效,一度怀疑自己的代码有问题,开始我们的探险之路吧。。。 探索之路:后来goolge发…

    Linux 2023年6月13日
    0113
  • FusionAccess桌面云安装(Lite AD方法)

    创建FusionAccess虚拟机 选择自定义 默认兼容 选择稍后安装操作系统 选择Linux SUSE Linux 名字位置自己选择 选择最少4个处理器 选择最少8G内存 选择仅…

    Linux 2023年6月8日
    0105
  • MySQL表空间回收的正确姿势

    不知道大家有没有遇到这样的一种情况,线上业务在MySQL表上做增删改查操作,随着时间的推移,表里面的数据越来越多,表数据文件越来越大,数据库占用的空间自然也逐渐增长 为了缩小磁盘上…

    Linux 2023年6月13日
    086
  • linux磁盘配额管理

    磁盘配额是一种磁盘空间的管理机制,使用磁盘配额可限制用户或组在某个特定文件系统中能使用的最大空间 1、查看内核是否支持磁盘配额 grep “CONFIG_QUOTA&#…

    Linux 2023年5月27日
    094
  • 利用prometheus 客户端采集磁盘容量脚本

    点击查看代码 #!/bin/bash #date: 20220621 #author:bin >/tmp/node_dmz.txt >/tmp/node_err.txt…

    Linux 2023年6月14日
    090
  • 在Windows平台用Visual C++ 2022 (v143)编译PDCurses

    综述 PDCurses是一个开源的跨平台curses库,它提供了一组函数,开发者可以用这组函数在终端(Console、Terminal)上设置光标的位置和字符的显示样式。本文介绍在…

    Linux 2023年6月8日
    0105
  • c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward)

    c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward) c++的左值,右值 精辟总结 当一个对象被用作右值的时候,使用的是对象的值(内…

    Linux 2023年6月14日
    0119
  • 文本操作find cut sort wc sed awk

    文本操作 查找文件: # find 大概位置 以名字查找 名字 find /etc/ -name i18n find /etc/ -name 70* find /etc/ -nam…

    Linux 2023年6月11日
    092
  • Spring事务(一)-事务配置

    事务是数据库操作最基本的单元,是逻辑上的一组操作,这一组操作在同一个会话中要么都执行成功,要么都失败,这也是事务的最基本特性–原子性。事务的作用是为了保证系统数据的正确…

    Linux 2023年6月6日
    086
  • 不同云服务器下,ubuntu下开k3s集群

    首先先感谢老哥的文章:h构建多云环境下的K3S集群,但是我尝试在centos 8.2上面前面一直执行报错并且安装glibc 2.17时还会报错make版本太低,所以直接放弃cent…

    Linux 2023年6月7日
    088
  • Linux lsof命令的使用示例

    Linux命令中,lsof代表 Li St Open Files,用于查看所有被打开的文件,同时显示打开文件相对应的进程。Linux/Unix把一切都看做文件(pipes,sock…

    Linux 2023年6月13日
    086
  • c++的bind使用方法

    c++的bind使用方法 除了容器有适配器之外,其实函数也提供了适配器,适配器的特点就是将一个类型改装成为拥有子集功能的新的类型。其中函数的适配器典型的就是通过 std::bind…

    Linux 2023年6月14日
    085
  • 每周一个linux命令(netstat)

    基础环境 netstat 命令介绍 打印网络连接、路由表、接口统计信息、伪装连接和多播成员,使用最多的是打印网络连接信息。 netstat 命令安装 yum install net…

    Linux 2023年6月8日
    089
  • Linux 下统计文件夹下文件的数量

    1、查看当前目录下的文件数量(不包含子目录中的文件) 2、查看当前目录下的文件数量(包含子目录中的文件) 3、 查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如…

    Linux 2023年6月13日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球