Python 函数(1)

news2024/9/29 7:19:15

1、函数

函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定义务,可调用该函数。当需要再程序中多次执行同一项任务时,无需反复编写完成该任务的代码,只需要调用该任务的函数,让其运行即可。

1.1、定义函数

def  函数名( 填入需要的信息 ):

 下面为一个简单的实例:

def greet_user():
    '''显示问候语'''
    print("Hello!")
greet_user()

第一行代码使用关键字def来告诉Python,需要定义一个什么函数。这是函数定义 ,向Python指出了函数名,还可以在括号内指出函数为完成工作需要什么信息。最后,定义以冒号结尾

 注:   函数名的命名规则:函数名一律小写,若有多个单词则用下划线将其分隔开;另外,私有函数一下划线开头。

要使用某个函数必须调用它。函数调用让Python执行函数中的代码。要调用函数,可依次指定函数名以及用括号括起来的必要信息。如上调用它是只需要输入greet_user()即可。即打印Hello!

1.1.1、向函数传递信息

        可在函数定义def greet_user():的括号内添加需要执行的信息。如下我在括号内添加name,这样,可让函数接受你给的name指定的任何值。现在,这个函数要求你在调用它时给name指定一个值。因此在调用greet_user()时,可将名为name的值填入括号内,传递给它。如下:

def greet_user(name):
    '''显示问候语'''
    print(f"Hello!{name.title()}")
greet_user('karry')

代码greet_user('karry')调用函数greet_user(),并向它提供执行函数调用print()所需的信息。这个代码接受你传递给它的name,并且打印它:

可以根据需要调用greet_user()任意多次,无论在调用时传入的name为什么,都将生成相依的输出。

1.1.2、实参和形参

     在前面定义greet_user()函数时,要求给变量name指定一个值。这样,在调用这个函数并提供这种信息时,它将打印相应的信息。

     在greet_user()函数的定义中,变量name是一个形参,即函数完成工作所需的信息;在代码greet_usr(‘karry’)中,值‘karry’是一个实参,即在调用函数时传递给函数的信息。

1.2、传递实参

函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递的方式有:①可以使用位置实参,这就要求实参的顺序与形参对的顺序相同;②可以使用关键词实参,其中每个实参都由变量名和值组成;③还可以使用列表和字典。

1.2.1、位置实参

         实参的位置与形参的位置相对应,每个实参关联到函数定义中的一个形参。最简单的方式就是依照实参的顺序进行关联。这种称为位置实参

        为了理解其中的原理,我们来看个实例:

def des_pet(ani,pet):
    print(ani)
    print(f"{ani.title()},{pet.title()}")
des_pet('hamster','harry')

实参'hamster'赋给形参ani;实参'harry'赋给形参pet。打印输出如下:

Hamster,Harry 

位置实参的顺序很重要,当使用位置实参来调用函数时,如果实参的顺序不正确,结果可能会出乎意料,打印输出的信息和你想的可能会打乱。在使用位置实参时,一定要注意确认调用中实参对的顺序与函数定义中形参的顺序是否一致。 

1.2.2、关键字实参

  关键字实参是传递给函数的名值对。会直接在实参中将名称和值关联起来,因此像函数传递实参时就不会混淆了。

下面编写,在其中使用关键字实参来调用des_pet():

def des_pet(ani,pet):
    print(ani)
    print(f"{ani.title()},{pet.title()}")
des_pet(ani='hamster',pet='harry')

des_pet()函数还和之前一样,但这次调用这个函数时,向Python明确地指出了各个实参对应的形参。关键字实参的顺序无关紧要,因为Python知道各个值该被赋给哪个形参。如下的输出和上的一样:

 Hamster,Harry 

 1.2.3、默认值

    在编写函数时,可以给每个形参指定默认值。如果在调用函数中给形参提供了实参,Python将使用指定的实参值;否则,将使用形参的默认值。

1.2.4、避免实参错误

     当提供的实参多于或少于函数完成工作所需的实参数量时,将会出现实参不匹配的错误。

1.3、返回值(return)

    函数并非直接显示输出,它还可以处理一些数据,并返回一个或一组值。函数返回的值称为返回值。可以使用return语句将值返回到调用函数的那行代码。

格式:

def 函数名(参数1,参数2,...,参数n)
    函数体第一行代码
    函数体第一行代码
    ...
    函数体第一行代码
    return 语句
变量=函数名(参数1,参数2,...,参数n)

1.3.1、返回简单的值

如下来进行一段代码:

def city_country(city,country):
    full=f"{city.title()},{country.title()}"
    return full
magger=city_country('chongqing','China')
print(magger)

输出如下:

Chongqing,China

1.3.2、结合使用函数和while循环

下列代码呈现:

def make_album(name,song):
    persons={'make':name,'album':song}
    return persons
while True:
    print("\n 请输入名和专辑")
    name = input("请输入名:")
    song = input("请输入专辑:")
    magger=make_album(name,song)
    print(magger)
    if name == 'q':
        break
    if song == 'q':
        break

输出为: 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1991956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【mars3d】GraphicLayer遍历添加数据,正确拿到数据

import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象 export let graphicLayer // 矢量数据图层 export const mapOptions {scene: {center:{"lat":30.577085,"lng":116.885511,"alt":45203.5,"heading&…

仿真入门——CST软件如何设置分布式计算的共享储存

在 CST Studio Suite 的分布式计算中,常有用户因为某台机器的网络问题丢失某个数据。这里介绍一种方法,可以在使用分布式计算或 MPI 计算时设置共享存储。在这种情况下,不涉及文件传输,所有文件操作都在共享文件的媒介上完成。 数…

【React】详解 App.js 文件

文章目录 一、App.js文件的基本结构1. 引入必要的模块2. 定义根组件3. 导出根组件 二、App.js文件的详细解析1. 函数组件与类组件函数组件类组件 2. 使用CSS模块3. 组织子组件4. 管理组件状态使用useState钩子使用state对象 三、App.js文件的最佳实践1. 保持组件的简洁和模块化…

政策标准、行业动态、安全事件、密码专栏、三所发布、国家互联网中心安全周报。

1、全国网络安全标准化技术委员会关于17项网络安全国家标准项目立项的通知 按照委员会标准制修订工作程序的要求,17项网络安全国家标准的立项工作已经完成,现将清单印发给各工作组,请按照国家标准委和委员会相关规定,认真做好项目…

开展FMEA时如何明确分析对象?

在FMEA过程中,分析对象的选择直接决定了后续工作的方向与质量。一个模糊不清或过于宽泛的分析对象,会导致分析过程冗长低效,甚至遗漏关键风险点。相反,一个精准明确的分析对象,能够让团队集中精力,高效识别…

琪德直流屏监控模块HXTJK002,HXTJK003AB电源模块HXT240D10

直流屏电源模块产品型号:HXT240D05,HXT240D10,HXT240D10Z,HXT220D10,HXT220D05,HXT120D10,HXT120D05,HXT220D10-III,HXT110D10-III,HXT110D20-III,HXT220D20-…

传递绿色动力,引领绿色出行!绿传科技邀您参加2024深圳eVTOL展

2024深圳eVTOL产业发展大会暨低空经济展览会将于9月23-25日在深圳坪山燕子湖国际会展中心召开。展会将通过“两天论坛三天展览”的形式展开,专注未来城市空中交通新形态、民用有人驾驶、无人驾驶航空器、城市低空物流,并讨论eVTOL的整机研发、设计、制造…

七夕情人节有什么好物推荐?五款精品数码产品推荐!

随着七夕情人节的浪漫钟声渐起,你是否在寻找一份既充满爱意又能体现生活品味的礼物?在这个充满甜蜜氛围的日子里,团团为你精心挑选了一份经过个人实测的好物推荐清单。这些礼物不仅代表着时尚与潮流,更是传递心意的桥梁&#xff0…

Redis-哨兵监控(sentinel)

是什么 Docs 吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务 作用:无人值守运维 能干嘛 1.主从监控 监控主从redis的库是否运行正常 2.消息通知 哨兵可以将故障转移的结果发送给客户端 3.…

应急响应-主机安全之系统及进程排查相关命令(Linux操作系统-初级篇)

目录 概述lscpu-显示有关CPU架构的信息uname-查看系统信息lsmod-输出加载的所有模块lastb-输出最后登录失败的用户last-展示用户最近登录信息lastlog-展示所有用户最后的登录时间systemctl-系统服务,开机自启排查crontab-计划任务选项 history-查看历史命令选项常用…

Python 画 等高线图

Python 画 等高线图 flyfish 通过三维图形与投影等高线相结合的方式,能够直观地看到三维函数的形状以及在平面上等值线的分布。 等高线是一种用来表示三维表面在二维平面上的方法。它们是通过在固定高度(或深度)处切割三维表面来创建的平面…

ArcGIS中如何再画一个已经存在的相同属性地类图斑

1.打开边界后,创建要素界面模板下面的内容是空的 2.此时点击组织模板 3.点击新建模板 4.勾选要添加的图层、下一步完成即可。 5.此时创建要素模板就有内容了 6.想要画哪个地类就先点哪个地类,再开始画图即可。 注意:画出来的图斑仅继承了匹配…

TOMCAT远程代码执行

首先下载一个apache-tomcat8.5.39 进入bin目录找到setclasspath.bat 进入文件进行编辑 修改为自己java所在的路径 在bin目录下打开cmd运行startup.bat 然后在文件管理器中搜索cgi-bin 然后在里面创建bat文件存在内容 然后在网页中打开

“奥运精神、数智传递”安通达AI智能外呼系列·企业沟通的金牌选择

北京时间7月27日凌晨,备受瞩目的第三十三届奥林匹克运动会在浪漫之都法国巴黎正式开幕。在全世界各国代表队奋力拼搏、激烈比赛的同时,一束来自中国的科技之光,照亮了推动人工智能发展的道路。 “你好,我是张雨霏/邹敬园&#xff…

PAT 乙级 1022题

题目&#xff1a;D进制的AB 输入两个非负 10 进制整数 A 和 B (≤230−1)&#xff0c;输出 AB 的 D (1<D≤10)进制数。 输入格式&#xff1a; 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式&#xff1a; 输出 AB 的 D 进制数。 输入样例&#xff1a; 123 456 …

vulnhub靶机tomato记录

https://www.vulnhub.com/entry/tomato-1,557/ 过程 用nmap对目标主机做全端口扫描&#xff0c;dirb做目录扫描&#xff0c;结果如下&#xff1a; 8888端口开放一个web服务&#xff0c;存在Basic认证&#xff0c;试了爆破无果&#xff0c;sun-answerbook是一个在线文档系统&am…

第25课 Scratch入门篇:火箭升空

火箭升空 故事背景&#xff1a; 在未来的世界里&#xff0c;发射火箭机器人来到火箭基地&#xff0c;火箭机器人开始倒计时&#xff0c;当倒计时结束后&#xff0c;火箭飞上天空&#xff01;火箭在天空中越飞越远&#xff0c;越来越小&#xff01;&#xff01;&#xff01; …

拼多多一面0518

nginx作为http服务器&#xff0c;用来反向代理哪些资源 Web应用资源&#xff1a; Nginx最常用来代理Web应用服务器&#xff08;如Apache、Tomcat、Node.js等&#xff09;上的资源。客户端发送的请求首先到达Nginx&#xff0c;Nginx根据配置将请求转发给后端的Web应用服务器处理…

实时人脸换脸——基于C++与Onnxruntime调用GPU实现实时换脸

1、概述 1. 1 算法概述 人脸换脸是一种使用人工智能技术来实时或离线地将视频中的人脸替换成另一张人脸的技术。近年来&#xff0c;随着深度学习技术的发展&#xff0c;这一领域取得了显著进展。常见的人脸换脸项目有&#xff1a; Deepfake&#xff1a;这是最著名的换脸算法之…

递归深度问题和尾调用的关系

当我们在编写计算阶乘的函数&#xff0c;一般我们都会会选择使用迭代或递归的方法来实现。下面就让我们看看&#xff0c;同一个函数的两种实现方法。首先&#xff0c;是使用迭代方式实现的函数&#xff0c;我们使用循环的方式来计算阶乘&#xff1a; // 阶乘函数&#xff0c;计…