Genius only means hard-working all one's life. 天才只意味着终身不懈的努力。


文章目录

  • 第五关
    • 1.函数的定义、组成
    • 2.函数中的参数
    • 3.函数的作用
    • 4.随堂练习
    • 5.学习巩固

第五关

学习用时:30min
随堂测验+上机作业:25min
随堂作业正确率:7/7

1.函数的定义、组成

1.定义:函数是一段组织好的、可重复使用的、用来实现特定功能的代码快。
python内置函数len()举例

print(len('生如夏花之灿烂'))
# 输出结果:7

2.函数的组成:

1.告诉计算机,要定义一个函数;
2.函数的名字是什么;
3.这个函数需要输入什么参数;
4.参数的处理过程是什么样的;
5.把什么样的处理结果还给输入者。

# def是函数定义的关键字(define 的缩写,意为“定义”),f 是我们取的函数名。
#函数名后有一对英文括号,括号里面是我们设定的参数(也就是我们之前说的输入),最后用一个英文冒号结尾。
# 冒号后有缩进的代码块,这部分叫函数体,这部分就是函数功能实现和输出返回值的地方。
# 最后一行的 return 用于返回函数处理的结果,return 后面的值称为函数的返回值。def f(x): y = 2 * x + 1return y# 下一行代码调用 f 函数,并赋值给变量 result
result = f(3)
print(result)
# 输出:7
# 也可以将后两行简写为
print(f(3))

  注意:函数代码块快的缩进问题。

3.函数的执行顺序
  函数的内部,return 语句一旦执行之后,剩下的语句将不再执行。

# 例1 这样的情况下 将不会有任何打印结果,因为return y 后,函数将不在执行
def f(x):y = 2 * x + 1return yprint(y)f(3)#---------------------------------------------------------------------------------------# 例2  下面这种情况下没有return依旧打印出结果,但缺点是结果打印完之后就没有了,无法将结果进行有效的利用,相当于“阅后即焚”
def f(x):y = 2 * x + 1print(y)f(3)
# 输出:7#---------------------------------------------------------------------------------------# 例3  强行获取函数结果
def f(x):y = 2 * x + 1print(y)# 用 result 变量获取结果
result = f(3)
# 打印结果为 7 ,但是返回结果为 None,赋值给 resultprint(result + 1)
# 报错: TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
# (类型错误,不支持 None 和整数的相加)

  上面例3中,print(result + 1) 并不能让我们获得 8 这个目标值,因为函数内部没有 return 语句,y = 7 打印后就销毁了,然后函数暗搓搓地为你返回了 None ,并赋值给 result。

2.函数中的参数

  对于函数的参数:形参实参
  形参是形式上的参数(上面的x)的缩写,表明这里有一个叫x的参数,实参是实际上的参数(上面的3)的缩写,实参传给函数后x被赋值为3。
  Python 函数的命名规范:函数名应该为小写,可用下划线连接多个英文单词,比如在习题中用 calc_age 的函数名来编写年龄计算器。函数名要有一定的描述性,避免使用 a、b、c 这样过于简单的英文字母。

# 练习1
# 定义一个名为 calc_age 的函数
# calc_age() 函数的输入为出生年份,输出为年龄
# 在屏幕上输出 calc_age() 函数的返回值def calc_age(birth_yrear):age = 2020 - birth_yrearreturn agex = int(input("请输入出生年份"))
print (calc_age(x))

  这里面我又犯了一个错误就是python函数的命名不符合规范,里面的

3.函数的作用

  DRY 原则 = Don’t repeat yourself = 不要重复自己
  如果多次遇到同样的问题,就应该抽象出一个共同的解决方法,尽量避免写重复的代码。
  另外:函数的参数和返回值都不是必选项,是可以没有的。
  下面的函数既没有参数,也没有返回值:

def say_hello(name):greetings = '你好啊~'print(greetings + name)# 不用再 print 了,因为函数里用了 print 函数
say_hello('鸽子')
# 输出:你好啊~鸽子# 练习 2  将这首诗打印5遍~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def print_poetry():print('----------------')print('我打江南走过')print('那等在季节里的容颜如莲花的开落')print('春风不来,三月的柳絮不飞')print('你的心如小小的寂寞的城')print('恰若青石的街道向晚')print('跫音不响,三月的春帷不揭')print('你的心是小小的窗扉紧掩')print('我达达的马蹄是美丽的错误')print('我不是归人,是个过客……')print_poetry()
print_poetry()
# 其他地方找的python中一个函数多次调用
for i in range(1,4):print_poetry()

写函数的注意点
1.定义函数时,要遵循语法规则,给函数和参数的命名要有可读性;
2.注意缩进规则,函数体中是实现函数功能的代码,前面一定要有统一的空格缩进;
3.我们用 函数名() 的形式调用函数,执行函数体中的代码,用关键字 return 返回函数的结果;
4.函数体中也可以没有 return,系统会默认 return None。
5.函数内部如果有 print(),只负责显示结果,不能将结果保留或者传给其它变量。

4.随堂练习

  计算多边形内角和的函数。 三角形内角和为 180°、四边形内角和为 360°
五边形内角和为 540°

# 输入内角和的边数
n = int(input("请输入所求内角和的边数:"))
# 定义求内角和的函数x为形参,新知识点是形参和实参可以是一个名字
def calc_degree(x):calc = (x - 2) * 180return calc# 打印结果
print(str(n) + "边形内角和为" + str(calc_degree(n)))

5.学习巩固

定义一个名为 calc_profit 的函数;
该函数有一个参数,为当天卖出的奶茶数量;
函数的返回值为奶茶店当天的净利润(不需要单位);
通过 input() 函数获取当天卖出的奶茶数量;
调用函数并打印出奶茶店当天的净利润。

再定义一个名为 calc_perf 的函数;
该函数有一个参数,为当天的净利润(calc_profit() 函数的返回值);
该函数功能为:当净利润大于 2000 时打印 合格,否则打印 不合格;
使用 input() 函数获取当天卖出的奶茶数量;
调用函数并打印出奶茶店当天是否合格。

def calc_profit(n):                #n为每日饮料销量形参princ = 25                      #饮料价格cost  = 9                       #饮料成本jingli = princ - cost            #饮料净利润chengben = 500                   #每日成本money = jingli * n - chengben    #每日利润计算return moneydef  calc_perf(money):if money > 2000:                 #每日纯利润业绩>2000合格 否则不合格print("合格")else:print("不合格")# 输入每天销售额
number = int(input("今天你卖了多少杯奶茶啊?"))
print(calc_profit(number))         #每日纯利润
calc_perf(calc_profit(number))     #每日业绩是否合格

扇贝编程python学习笔记-基础篇3相关推荐

  1. 扇贝编程python无法退款_扇贝编程python学习笔记-基础篇1

    我要成为一个勤奋努力上进的人 第一关 学习用时:15min 随堂测验+上机作业:10min 随堂作业正确率:4/5 1.尝试执行代码 import random menu = ['粉丝', '炒饭', ...

  2. 扇贝编程python学习笔记-基础篇4

    Never say die. 文章目录 第六关 1.函数的参数.参数类型 2.函数中的参数 3.函数的多个返回值 4.函数的变量作用域 5.学习巩固 第六关 学习用时:35min 随堂测验+上机作业: ...

  3. 扇贝编程python学习笔记-基础篇5

    再也不咕咕了,请叫我多福 文章目录 第七关 1.print和return的区别 2.return 语句的"陷阱" 3.报错处理 4.学习巩固 第七关 知识点复习 学习用时:30mi ...

  4. 扇贝编程python学习笔记-基础篇10

    聚沙成塔 集腋成裘 文章目录 第十二关 1.列表元素的删除 2.列表分片 3.列表常用方法 4.练习 第十二关 知识点复习 学习用时:50min 随堂测验+上机作业:50min 随堂作业正确率:2/3 ...

  5. 扇贝编程python学习笔记-基础篇6

    恰合心意,平衡生活 寻求成长,奋起拼搏 文章目录 第八关 1.分支执行 2.布尔类型 3.布尔类型的转换 4.学习巩固 第八关 知识点复习 学习用时:30min 随堂测验+上机作业:50min 随堂作 ...

  6. 扇贝编程python学习笔记-基础篇8

    聚沙成塔 集腋成裘 文章目录 第十关 1.嵌套条件 2.常见错误 3.练习 第十关 知识点复习 学习用时:30min 随堂测验+上机作业:30min 随堂作业正确率:8/10 1.嵌套条件   嵌套条 ...

  7. Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 Socket编程基础)...

    FTP作业 本节内容: 面向对象高级语法部分 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 参考:http://www.cnblogs.com/wupeiqi/ ...

  8. Python学习笔记——基础篇【第五周】——模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  9. Python学习笔记----基础篇10----模块2

    8)json& pickle 用于序列化的两个模块 json,用于处理字符串和python数据类型间进行转换 pickle,用于python特有的类型和python的数据类型间进行站换 Jso ...

最新文章

  1. qt如何用python结合_在Qt(C++)中与Python混合编程
  2. 设计模式初探之设计模式六大原则(4):接口隔离原则
  3. HarmonyOS快速开发入门
  4. PHP 判断用户语言跳转网页
  5. 为什么我们需要Q#?
  6. python文件的路径_如何从目录中给出python文件的路径
  7. fail-fast与fail-safe工作机制
  8. 华为linux系统怎么安装爱奇艺,荣耀智慧屏X1怎么安装爱奇艺?怎么安装第三方软件?很简单...
  9. c++如何打印一维数组首地址_4.1 数组的定义
  10. react 开源项目_2020年2月Github上最热门的JavaScript开源项目
  11. 利用ant脚本 自动构建svn增量/全量 系统程序升级包
  12. 测试微信好友是否删除软件,如何测试微信好友是否删了你?
  13. VsCode设置默认浏览器打开
  14. DDOS hulk,rudy
  15. 语言中的历史——汉语和突厥语的纠缠
  16. placement new 讲解
  17. 【Python】内存、引用、驻留
  18. 第三篇:动态 8位数码管显示---亚龙236电路
  19. Firefox浏览器的主页更改
  20. 文件夹中是微信的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的),参照笔记,求出哪些人两两之间有共同好友,及他俩的共同好友都有谁?

热门文章

  1. 如何选择舒适的双肩包/电脑包
  2. php创蓝253四要素认证_创蓝253配置
  3. 重新装mysql出现乱码,数据库出现乱码的原因和解决办法
  4. C语言学习日记(四)
  5. 2018入门微单相机推荐
  6. LTE上行物理层传输机制(2)-PUSCH上行跳频之Type2频率跳频
  7. 瞧瞧我们对漫画图片都做了什么!?
  8. mysql实验训练2 数据查询操作_实验训练2:数据查询操作
  9. 看大品牌如何玩转小程序
  10. DRGs与RBRVS的理解