首页 > 编程语言 >Python函数之def定义函数

Python函数之def定义函数

时间:2024-09-08 20:46:44浏览次数:10  
标签:函数 get Python greet str print def

链接

想研究Python函数?看这里
函数怎样取名?看这里
有参数的函数还可以怎么传参?看这里

一、无参数函数

结构

def <函数名>(): # 强制要求
	<函数体> # 可省略
	return <返回值> # 可省略

程序举例

用函数的Hello world程序:

# prints 'Hello World\nDone'
# Author: GoodCoder666
def getHelloWorldString():
	return 'Hello World'
def print_hello_world():
	print(getHelloWorldString())
print_hello_world()
print('Done')
# 输出:
# Hello World
# Done

程序流程

flowchat st=>start: 开始,调用print_hello_world() e=>end: 结束 get_str_call=>operation: print_hello_world()调用getHelloWorldString() return_str=>operation: getHelloWorldString()返回 'Hello world' print_hi=>inputoutput: 回到print_hello_world(),输出Hello world done=>inputoutput: 回到主程序,输出Done st->get_str_call->return_str->print_hi->done->e

二、有参数函数

补充知识

参数 (parameter):给函数的值,在函数中相当于变量:

def param_test(a, b):
	a, b = b, a
	print(a, b)
param_test(5, 6) # 输出:6 5

以上程序等同于:

def param_test():
	a, b = 5, 6
	#-----以下部分相同-----#
	a, b = b, a
	print(a, b)
param_test() # 输出:6 5

结构

def <函数名>(<参数列表>): # 强制要求
	<函数体> # 可省略
	return <返回值> # 可省略

其中,参数列表中的参数用,隔开,例如a, bc(如果只有一个参数直接写)

程序举例

# prints 'Hi, {name}!'
# Author: GoodCoder666
def get_greet_str(name):
	return 'Hi, ' + name + '!'

def greet(name):
	print(get_greet_str(name))

greet(input("What's your name? "))
print('Done')
# 输入: GoodCoder666
# 输出
# Hi, GoodCoder666!
# Done

程序流程

flowchat st=>start: 开始,调用input("What's your name?") e=>end: 结束 call_greet=>operation: input返回用户名,调用greet(<用户名>) call_get_greet_str=>operation: greet调用get_greet_str(<用户名>) print_hi=>inputoutput: 回到get_greet_str,输出get_greet_str的返回值 done=>inputoutput: 回到主程序,输出Done st->call_greet->call_get_greet_str->print_hi->done->e

函数也是对象

一个函数也是一个对象。

证明

先定义两个函数:

def a(a, b):
	return a + b
def b():
	return a(1, 2)
项目 是否支持/存在 证明
赋值 Y c = a可执行;执行后c可被调用
属性 Y 执行type(a),返回class <'function'>
类型 Y

标签:函数,get,Python,greet,str,print,def
From: https://www.cnblogs.com/stanleys/p/18403434/python-def-functions

相关文章

  • CodeForces Round #621 ABC (1307A+1307B+1307C) 题解
    A.CowandHaybales题面TheUSAConstructionOperation(USACO)recentlyorderedFarmerJohntoarrangearowofnhaybalepilesonthefarm.The\(i\)-thpilecontains\(a_i\)haybales.However,FarmerJohnhasjustleftforvacation,leavingBessieal......
  • Python函数之*[参数名]和**[参数名]的用处
    一、*[参数名]调用合法调用普通调用*参数名一般写成*args,如:deffunc(*args): print(args)可以试着调用func:>>>func(1)(1,)>>>func()()>>>func(1,2,3)(1,2,3)>>>func(dict(),set(),str(),int())({},set(),'',0)所以,我们发现,这......
  • 使用云函数获取小程序用户openId
    如未开通云开发,请看这篇基础库版本需为2.3.3以上,建议设为最新版本新建云函数:右击cloudfunctions,选择新建Node.js云函数输入login现在云开发控制台的样子:此函数会保存openID至本地存储,并在出错时调用error:functionsaveOpenID(error){if(!wx.getStor......
  • 手撕Python之序列类型
    1.列表---list索引的使用当我们有一个数据的时候,我们怎么将这个数据存储到程序呢?我们定义一个变量,将数据存储在变量中那么如果有100个数据呢?要定义100个变量吗?我们是可以用列表这个东西进行多个数据的存放列表的定义:[]空列表:[]列表:[元素1,元素2,元素3]列表中的内容......
  • 函数式编程
    目录基本概念函数对象类型闭包和柯里化高阶函数StreamAPI并行流具体应用原理其他基本概念合格的函数input->output不引用外部可变数据(stream-final)函数的本质是规则,函数对象固化规则,使之可传递行为参数化publicclassFunctionalPro{@AllArgsConstructor......
  • CTF逆向:将数组作为函数代码执行
    例题攻防世界BABYREflag判定条件为这个if(v5==14&&(*judge)(s))注意judge本质上是一个数组,(*judge)(s)则说明judge数组中的内容被当做代码执行但前面又有for(i=0;i<=181;++i)judge[i]^=0xCu;judge数组中的内容进行加密所以需要进行patch......
  • python+flask计算机毕业设计基于web点餐小程序的个性化推荐(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,餐饮业与信息技术的深度融合已成为不可逆转的趋势。特别是在后疫情时代,线上点餐服务因其便捷性、安全性受到了广......
  • python+flask计算机毕业设计基于web技术的课程思政元素信息交流平台的设计与探索(程序+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育日益重视课程思政建设的背景下,如何将思想政治教育有机融入专业课程,提升学生思想政治素质,成为当前教育改革的重要课题。随着互联......
  • python+flask计算机毕业设计基于单片机及spring框架的高血压患者居家监测系统(程序+开
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代社会生活节奏的加快和人口老龄化趋势的加剧,高血压作为一种常见的慢性疾病,其发病率逐年上升,已成为影响公众健康的重要因素之一。传......
  • python+flask计算机毕业设计基于弹幕视频的在线教学系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,教育领域正经历着前所未有的变革。在线教学作为一种新兴的教学模式,凭借其跨越时空限制、资源丰富多样等优势,逐渐......