day 11 python基础语法学习 ——函数

一、函数的作用

1、引入

求1+2+3+…+100的和

1.没有使用函数时
sum1=0
for i in range(1,101):sum1+= i
print(sum1)
# 5050
2.使用函数时
def sum1(n):print(sum(range(1,101)))#  5050
函数的作用:
写程序的时候会出现这样的情况:有一个功能需要在多个地方使用,如果没有函数需要在每次使用这个功能的时候把这个实现功能的代码写一遍;
如果有函数可以提前将实现指定功能的代码封装成函数,然后在所有需要这个功能的位置调用函数。

二、函数的定义

1、概念
函数就是实现某一特定功能的代码的封装。
函数就是将实现某一个功能的所有代码打成一个报(封装起来),那以后在需要这段代码对的功能的时候,就不需要再写这段代码了,直接调用函数。
def sum1(n):s= 0for x in range(1,n+1):s += xprint(s)# 1+2+...+100
sum1(100)
# 5050# 1+2+...+50
sum1(50)
# 1275
2、函数的分类
1. 根据函数由谁创建的可以将函数分为:系统函数和自定义函数
1)系统函数 - 由系统创建好的函数:print、input、type、chr、ord、max、sum等
2)自定义函数 - 由程序员自己创建的函数
  1. 定义函数(创建函数 - 造机器)
说明:

1)函数名 - 名字由程序员自己决定
两个要求:是标识符;不能是关键字
三个规范:见名知义(看到这个函数名就知道这个函数的功能是什么)、字母都小写,多个字母要下划线隔开
不使用系统函数名、类名或者模块名

2) (): - 固定写法
3)形象列表 - 以’变量名1,变量名2,变量名3,…'的形式存在,这儿的每个变量就对应一个形参(形参可以有也可以是多个)
形参可以将函数外部的数据传递到函数的内部(例如:洗衣机的放衣服的口和注水口)
定义函数的时候需不需要形参需要几个就看实现函数的功能的时候需不需要额外的数据,需要几个额外的数据

4)函数说明文档 - 本质就是和def保持一个缩进的多行注释

5)函数体 - 结构上就是和def保持一个所进的一条或者多条的语句(至少一条)
逻辑上,函数体就是实现函数功能的代码

初学者定义函数的步骤:

1.确定函数功能
2.确定函数名(根据功能来)
3.确定形参列表 - 看实现函数的功能的时候需不需要额外的数据,需要几个额外的数据
4.使用函数体实现函数功能(实现函数的功能的时候需要将形参当成对应的数据来使用)

案例1:定义一个函数求任意两个数的和

def sum2(num1,num2):"""(功能说明)求和两个数的和:param num1: (参数说明)数字1:param num2: 数字2:return: (返回值说明)None"""print(num1 + num2)

案例2:定义一个函数统计任意一个列表中数字的个数

def count_num(list1):count = 0for x in list1:# if type(x) == int or type(x) == float:if type(x) in (int,float):count += 1print(count)list2=['asadar',23,5,True,{1,2},100]
count_num(list2)
# 3

练习:定义一个函数,将一个名字列表中所有的名字按照123重复报数的方式分成三组

names = ['路飞', '娜美', '乌索布', '索罗', '山治', '乔巴', '纳兹','鸣人', '佐助', '小樱', '卡卡西', '好色仙人', '犬夜叉','杀生丸', '戈薇', '玲', '奈落', '邪见']
def grouping(name_list1):name1=name_list1[0::3]name2 = name_list1[1::3]name3 = name_list1[2::3]print(f'第一组:{name1},第二组:{name2},第三组:{name3}')grouping(names)
#第一组:['路飞', '索罗', '纳兹', '小樱', '犬夜叉', '玲'],第二组:['娜美', '山治', '鸣人', '卡卡西', '杀生丸', '奈落'],第三组:['乌索布', '乔巴', '佐助', '好色仙人', '戈薇', '邪见']

三、函数的调用

1、调用函数 - 使用机器
定义函数的时候不会执行函数体,调用函数的时候才会执行函数体(调用多少次就执行多少次)
语法:
函数名(实参列表)
说明:

函数名 - 任何已经定义过的函数的函数名
() - 固定写法
致残列表 - 以"数据1,数据2,数据3,…"的形式存在,这儿的每一个数据就是一个实参
实参是用来给形参赋值(实参才是真正从函数外部传递到函数内部的数据)(例如:给洗衣机的桶中放入的洗衣液和衣服和往注水口里加的水)

def func1():print('========')print('--------')func1()
func1()
#========
--------
========
--------def func2(x,y,z):print(x,y,z)func2(10,20,30)
# 10 20 30
2、函数调用过程
第一步:回到函数定义的位置
第二步:传参(用实参给形参赋值)
第三步:执行函数体
第四步:确定函数返回值
第五步:回到函数调用的位置,接着往后执行
def sum2(num1,num2):# num1=100 num2= 200print(num1 +num2)sum2(100,200)
# 300

day 11 python基础语法学习 ——函数相关推荐

  1. python导入模块的语法结构_python学习第五讲,python基础语法之函数语法,与Import导入模块....

    python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 函数,就是一个代码块,这个代码块是别人写好的.我们调用就可以. 函数也可以称为方法. 1.函数语法定义 ...

  2. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  3. Day1-软件使用及python基础语法学习总结

    Day1-软件使用及python基础语法学习总结 1.常用快捷键 Pycharm软件常用快捷键 快捷键 功能 ctr + s 保存 ctr + c 复制 ctr + v 粘贴 ctr + x 剪切 c ...

  4. Python基础语法学习6

    基础语法学习Day6 元组 1.元组就是不可变的列表 2.元组特有的一些方法和功能 (1)只有一个元素的元组:()中唯一的元素后需要添加逗号 (2)直接多个数据用逗号隔开表示的也是一个元组(元组的括号 ...

  5. python 基础语法学习笔记(2019年4月第二周学习笔记)

    python day01 2019.4.8 计算机基础,python 变量 1.随机存储器就是内存:断电数据丢失,读写速度快 2.外存储器,硬盘,断电数据依然保存,缺点,读写速度慢 3.操作系统是什么 ...

  6. 自动化测试储备 | Python基础语法学习

    测试人员做Python自动化的前提是需要具备基础编程底子,熟悉相关自动化测试框,以及自动化过程当中使用的相关模块与函数 学习编程需要坚持,将基础不断的温习,在编辑器不断地一行一行练习代码,不要觉得没用 ...

  7. 零基础学Python|Python基础语法学习第二天

    ​ 作者主页:编程千纸鹤作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享收藏点赞不迷路 关注作者有好处文末 ...

  8. python基础语法学习常见小问题

    说明:我是最近觉得python在完成很多工作中方便使用而且功能强大,想突击学习一下.用的是廖雪峰老师的教程,学习python3.X.这里是廖雪峰老师的网站链接: http://www.liaoxuef ...

  9. Python程序设计与科学计算精录总结Episode.2 Python基础语法:函数、模块、内置数据结构、面向对象知识总结(基于Michael导师Python课程与VS2019)

    Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果.这个名字就很讲究,Jupyter改自木星的英文单词Jupiter,其中包 ...

  10. 2021年大数据常用语言Scala(十三):基础语法学习 函数 重点掌握

    目录 函数 重点掌握 定义函数 方法和函数的区别 方法转换为函数 完全体函数 函数 重点掌握 scala支持函数式编程,将来编写Spark/Flink程序中,会大量使用到函数 函数和我们的对象一样, ...

最新文章

  1. asp.net MVC2 Jquery
  2. 论文笔记:Temporal Regularized Matrix Factorization forHigh-dimensional Time Series Prediction
  3. Python编程基础:第十一节 for循环For Loops
  4. 关于数据中台的深度思考与总结,20000 字不到一丢丢。。。
  5. CentOS6.9 下编译安装MySQL5.7.19
  6. 八、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用TextField组件使用
  7. 笔记 Json语法 01
  8. 学习进度条(第九周)
  9. 使用si ob 导出,导入部分表
  10. 如何为SQL Server2008添加登录账户并配置权限
  11. 华为ICT认证是什么意思?
  12. CreateThread与_beginthread 内存泄漏的本质
  13. 庄子梦游记之办公室有“云”
  14. Leetcode力扣 MySQL数据库 1194 竞标赛优胜者
  15. u盘NTFS与FAT32区别
  16. c语言fl,用C语言操作SPMC75内部FLSASH
  17. UnityShader初级篇——渐变纹理
  18. 【 MATLAB 】poly 函数介绍
  19. python怎么处理中英文符号网名_英文带符号的网名_英文网名带符号加中文
  20. Richard Matthew Stallman和GNU

热门文章

  1. 忒修斯之船,你还是原来的你吗?
  2. 解决App自动化的不稳定因素-弹框及首页启动加载完成判断处理
  3. 如何进入Github【亲测有效】
  4. c# webbrowser html5,C#设置WebBrowser IE浏览器版本
  5. 问题 1125: 【C语言训练】委派任务*【最优解】
  6. android夏时令问题
  7. 基于Bmob的仿微信即时聊天软件
  8. Citrix PVS无盘系统最小环境搭建
  9. 无法创建目录d oracle,Qt无法创建目录(Qt could not create directory)
  10. 分门别类刷leetcode——贪心算法(C++实现)