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)

大家都在看

  • go语言接口

    接口在底层的实现有两个部分:type 和 data。 在源码中,显式地将 nil 赋值给接口时,接口的 type 和 data 都将为 nil。此时,接口与 nil 值判断是相等的…

    Linux 2023年6月13日
    073
  • Scrapy关键词 爬虫的简单实现(以新华网和人民网为例)

    新华网爬虫(2022年6月) 1 分析网站结构 新华网网址:新华网_让新闻离你更近 (news.cn) 新华网的首页是带有关键词搜索功能的,我们尝试在搜索栏随意搜索一个关键词 可以…

    Linux 2023年6月7日
    0118
  • 2021 — 冰与火之歌

    大半夜的睡不着,越发的想给 2021 年作个总结,一想更睡不着了,来唠叨下吧。 一拖再拖的婚礼。本来定在今年正月的婚礼,因为疫情,不敢办,村里也不让办;然后选在国庆吧,卧槽,封城了…

    Linux 2023年6月16日
    0127
  • 用 shell 脚本做 tcp 协议模拟

    问题背景 公司有一套消息推送系统(简称GCM),由于人事变动接手了其中的客户端部分。看了一下文档,仅通讯协议部分有几页简单的说明,代码呢又多又乱,一时理不出一个头绪。由于消息是从后…

    Linux 2023年6月6日
    0147
  • python 练习题:请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串

    python;gutter:true;-*- coding: utf-8 -*-请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串n1 = 255n2 = …

    Linux 2023年6月8日
    095
  • 【转】京东评价系统海量数据存储设计

    概述 京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计…

    Linux 2023年6月16日
    0134
  • dbus的奇妙世界

    故事背景 在linux开发中我们经常会用到dbus来进行进程间通信,但是如何理解dbus服务端和客户端呢?很多小伙伴可能都会遇到类似的问题,而且都是含含糊糊的,接下来我们直接上硬菜…

    Linux 2023年5月27日
    090
  • 阿里云IoT流转到postgresql数据库方案

    之前写过一篇如使用阿里云上部署.NET 3.1自定义运行时的文章,吐槽一下,虽然现在已经2022年了,但是阿里云函数计算的支持依然停留在.NET Core 2.1,更新缓慢,由于程…

    Linux 2023年6月6日
    0112
  • 【前端】【探究】HTML input类型为file时如何实现自定义文本以更好的美化

    想到英语四级考了两次都没过,我觉得要多使用英文,所以本文使用英文书写。 本文讲述了遇到的问题,解决的思路,并讲述了解决方案,也许对你会有帮助。 Problem descriptio…

    Linux 2023年6月14日
    0128
  • linux 文件查找详解

    文件查找 介绍:在文件系统上查找符合条件的文件。 文件查找: 非实时查找(数据库查找):locate 实时查找:find 1、locate locate 查询系统上预建的文件索引数…

    Linux 2023年6月7日
    0107
  • Shell 实现多线程(多任务)

    1.命令结尾添加:& 在命令的末尾加 & 符号,则命令将在后台执行,这样后面的命令不需要等待该命令执行完再开始执行。 2.解决主线程提前退出问题,添加 wait 3…

    Linux 2023年5月28日
    0109
  • 网站URL如何SEO优化

    前言 本文讲解网站的URL如何进行SEO优化,并在自己的WordPress博客echeverra中优化URL。 起因 对于SEO我了解的并不多,只知道SEO做的好,那么各大搜索网站…

    Linux 2023年6月7日
    0107
  • Question03-查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

    * SELECT stu.SID, stu.Sname, CAST(AVG(sc.score) AS DECIMAL(18,2)) avg_score FROM Student s…

    Linux 2023年6月7日
    092
  • jmeter学习记录–04–Beanshell

    一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类…

    Linux 2023年5月28日
    0125
  • SpringBoot 2.x 开发案例之 Shiro 整合 Redis

    前言 前段时间做了一个图床的小项目,安全框架使用的是 Shiro。为了使用户 7×24小时访问,决定把项目由单机升级为集群部署架构。但是安全框架 shiro只有单机存储的 Sess…

    Linux 2023年5月28日
    0113
  • 网络扫描(一)

    使用工具:Kali Linux、Metaspoliatable(作为攻击目标) 扫描的4个不同阶段 用ping验证系统是否正在运行。 用Nmap扫描目标主机的端口。 用Nmap脚本…

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