#一、定义函数

defHello():print("hello")

Hello()#调用函数

#1.实参和形参

def Hello(name): #name是形参

print("Hello"+name)

Hello('Tom') #Tom是实参#变量name是形参:函数完成工作所需的一项信息#值Tom是一个实参:实参是调用函数时传递给函数的信息#我们调用函数时,将实参传递给了函数Hello,这个值被存储到形参username中

#二、传递实参#1.位置实参:调用函数时Python必须将函数调用中的每个实参都关联到函数定义中的一个形参#基于实参顺序的关联方式成为位置实参

defpet(animal_type,pet_name):print("\n我有一个"+animal_type)print("我的"+animal_type+"名字叫"+pet_name)#调用函数

pet('dog','旺财')#Python将dog关联到形参animal_type,将旺财关联到形参pet_name

#2.关键字实参

defpet(animal_type,pet_name):print("\n我有一个"+animal_type)print("我的"+animal_type+"名字叫"+pet_name)#调用函数

pet(animal_type='dog2',pet_name='旺财2') #关键字实参

#3.默认值

def pet(pet_name,animal_type='dog'):print("\n我有一个"+animal_type)print("我的"+animal_type+"名字叫"+pet_name)#调用函数

pet(pet_name='旺财3') #形参已经指定默认值为dog,调用时如果没给实参赋值,这默认形参的dog

#4.等效函数调用

def pet(pet_name,animal_type='dog'):print("\n我有一个" +animal_type)print("我的" + animal_type + "名字叫" +pet_name)#下面对这个函数的调用都可行#一条名为旺财财的小狗

pet("旺财财4")

pet("pet_name='旺财财5'")#一只名为畅畅的猫

pet('畅畅6','hamster')

pet(pet_name='畅畅7',animal_type='cat')

pet(animal_type='cat',pet_name='畅畅8')#三、返回值#1.函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值

defget_name(first_name,last_name):

full_name=first_name+last_namereturnfull_name

musician=get_name('Robin','Guo')print(musician)#2.让实参变成可选的

defget_name(first_name,middle_name,last_name):

full_name=first_name+middle_name+last_namereturnfull_name

musician=get_name('xin','z','guo')print(musician)#并非每个人都有中间名,当实参只提供了名和姓,程序将不能正确运行,为了使中间名可选,在形参middle_name指定个默认值(空字符串)

def get_name(first_name,last_name,middle_name=' '):ifmiddle_name:

full_name=first_name+middle_name+last_nameelse:

full_name= first_name +last_namereturnfull_name

musician=get_name('xin','guo')print(musician)

musician=get_name('xin','guo','z')print(musician)#3.返回字典#函数可返回任何类型的值,包括列表和字典等较复杂的数据结构

defperson(first_name,last_name):#返回一个字典,其中包含一个人的信息

person={'first':first_name,'last':last_name}returnperson

musician=person('robin','guo')print(musician)#新增一个可选形参age并将其默认为空字符串,如果函数调用这个形参的值,这个值将被存到字典

def person(first_name,last_name,age=' '):#返回一个字典,其中包含一个人的信息

person={'first':first_name,'last':last_name}ifage:

person['age']=agereturnperson

musician=person('robin','guo',age=24)print(musician)#4.结合使用函数和while循环

defget_name(first_name,last_name):

full_name=first_name+last_namereturnfull_namewhileTrue:print("\n请说出你的名字")print("按q退出")

f_name=input("名字是:")if f_name=='q':breakl_name=input("姓是:")if l_name=='q':breakname=get_name(f_name,l_name)print(name)#四、传递列表#1.将列表传递给函数后,函数就能直接访问其内容

def users(names): #names 是形参列表

for name innames:

msg="你好"+nameprint(msg)

usernames=['robin','tom','jack','steven'] #实参列表

users(usernames)#2.在函数中修改列表#定义了一个打印模型的函数包括两个形参一个是未打印设计列表和打印好的模型列表

defprint_models(unprinted_designs,completed_models):#模拟打印每个设计,直到没有未打印的设计为止

#打印每个设计后,都将其移到列表completed_models中

whileunprinted_designs:

current_design=unprinted_designs.pop()print("打印模型:"+current_design)

completed_models.append(current_design)defshow_completed_models(completed_models):print("\n")for completed_model incompleted_models:print(completed_model)

unprinted_designs=['iphone case','robot pendant','dodecahedron']

completed_models=[ ]

print_models(unprinted_designs,completed_models)

show_completed_models(completed_models)#3.禁止函数修改列表#y有时候,需要禁止函数修改列表,如果打印完所有的设计后,想要保留原来的未打印设计列表,以供备案。#由于将所有数据移除了,未打印设计列表便为空,原来的列表没有了。#未解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改,只都影响副本。#要将列表副本传递给函数 function_name(list_name[:])#[:]切片表示法 创建列表副本,如果不想清空未打印设计列表,可像下面调用print_models():

print_models(unprinted_designs[:],completed_models)#五、传递任意数量的实参#1.有时候你预先不知道函数需要接受多少个实参,#比如制作披萨的函数,它需要很多配料,你无法确定顾客要多少种配料,这时函数只有一个形参*toppings,#无论调用语句提供多少实参,这个形参都将它们统统收入囊中

def make_pizza(*toppings):print(toppings)

make_pizza('牛肉')

make_pizza('猪肉','洋葱','芝士')#形参名中的*是让Python创建一个名为toppings的空元组,并将所收到的值装到这个元组中

#2.结合使用位置实参和任意数量实参#如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后

def make_pizza(size,*toppings):print("披萨的尺寸"+str(size))for topping intoppings:print("配料"+topping)

make_pizza(16,'牛肉')

make_pizza(12,'猪肉','洋葱','芝士')#3.使用任意数量的关键字实参#有时候需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。这时可将函数编写成能够接受任意数量的键-值对

def person(first,last,**user_info):

person={}

person['first_name']=first

person['last_name']=lastfor key,value inuser_info:

person[key]=valuereturnperson

user_person=person('xin','guo',address='beijing',sex='man')print(user_person)#函数person()定义要求提供姓和名,同时允许用户根据需要提供任意数量的名称-值对。#形参**user_info中的两个*让Python创建一个名为user_info的空字典,并将收到的所有名称-值对都封装到这个字典中。#我们调用person(),向它传递名'xin' 姓'guo' 和两个键值对address='beijing',sex='man'

python语法速成方法_一天快速入门Python语法基础之函数相关推荐

  1. 如何快速掌握python函数_新手如何快速入门Python编程?

    展开全部 了解 Python 编程基础 首先第一点,要能够看懂了解变量.基础语法.编程规范等,这些事能够上手编写Python 代码的前62616964757a686964616fe4b893e5b19 ...

  2. python 去掉list元素的双引号_一天快速入门 Python

    Python 是由Guido Van Rossum在 90 年代早期设计,现在是最常用的编程语言之一.特别是人工智能的火热,再加之它的语法简洁且优美,实乃初学者入门AI必备的编程语言. Python基 ...

  3. python __reduce__魔法方法_非常全的通俗易懂 Python 魔法方法指南(下)

    点击上方"咸鱼学Python",选择"加为星标" 第一时间关注Python技术干货! 作者:Rafe Kettler 翻译:hit9 来源:https://py ...

  4. python pywinauto 单击鼠标_教你快速用 Python 控制键盘和鼠标,彻底解放双手

    你还在为在计算机上双击或提交表单而烦恼吗?今天就用python来控制键盘和鼠标,解放双手! 第一,Pyauogui库 我们可以首先安装pyauogui库,通过它我们可以编写一些Python脚本来控制鼠 ...

  5. r与python做随机森林_随机森林算法入门(python)

    昨天收到yhat推送了一篇介绍随机森林算法的邮件,感觉作为介绍和入门不错,就顺手把它翻译一下. 目录 1 什么是随机森林 1.1 集成学习 1.2 随机决策树 1.3 随机森林 1.4 投票 2 为什 ...

  6. python随机森林库_随机森林算法入门(python)

    目录 1 什么是随机森林 1.1 集成学习 1.2 随机决策树 1.3 随机森林 1.4 投票 2 为什么要用它 3 使用方法 3.1 变量选择 3.2 分类 3.3 回归 4 一个简单的Python ...

  7. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  8. python开发pc软件_程序员带你十天快速入门Python,玩转电脑软件开发(二)

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  9. python选择某一行_Python常用语法有哪些 如何快速入门Python开发

    Python常用语法有哪些?如何快速入门Python开发?Python编程语言是最容易学习.并且功能强大的语言,吸引了很多人学习入行.很多人想知道如何快速入门Python开发,接下来就给大家分享Pyt ...

最新文章

  1. 英特尔开源版HE-Transformer,对于隐私数据AI终于上手了!
  2. 一个return引发的血案 - 自己动手实现allocator
  3. pb 窗口数据修改sql_Snowflake将成为在云中变得更好的数据仓库
  4. 判断是否为二叉排序树的递归算法_左神直通BAT算法笔记(基础篇)
  5. CPU和MMU(内存管理单元)
  6. c 包含其他文件_C/C++编程笔记:C/C++的编译和链接,计算机专业大学生必备知识...
  7. jQuery之全选功能
  8. 一文带你熟悉Pytorch->Caffe->om模型转换流程
  9. HDU 6168 Numbers 思维 水题
  10. 计算机语言em,Python:EM(期望极大算法)实战
  11. 计算机控制系统与常规仪表控制系统的主要异同点,计算机控制统考试.doc
  12. 用js打开新窗口和关闭新窗口
  13. {dede-list flag='h'}DedeCMS支持flag标签解决办法
  14. 中国无线VOC检测器行业市场供需与战略研究报告
  15. Discuz模板安装步骤以及发生的问题
  16. pod2g宣布A5的Sandbox破解成功
  17. 查看网络连接的netstat命令
  18. 【高德地图进阶】--- 带图片的点(1)
  19. 流 (输入流、输出流)理解。
  20. TexturePacker入门记事

热门文章

  1. eclipse报错:The project description file (.project) for ‘common‘ is missing.
  2. 笔记一:画笔、笔刷认识
  3. 习题3-5 三角形判断 (15 分)-PTA浙大版《C语言程序设计(第4版)》
  4. 【Rust日报】 2019-02-23
  5. 计算机二级请假条,请假条的范文标准版
  6. ubuntu 配置本地源
  7. OCAD应用:单透镜与双胶合透镜结构组合设计
  8. JAVA修炼之路的开启
  9. 多个android手机客户端通信,android中利用Socket实现手机客户端与PC端进行通信
  10. K8S 部署 skywalking