笔记

函数与过程

在除了Python以外的其他大多数编程语言中,函数与过程是两个概念。函数(function)有返回值,而过程(procedure)是简单的,特殊且没有返回值的。

Python严格来说,只有函数,没有过程。即便是没有return语句的函数,也有返回值,即None对象。

返回值

使用列表,元组来使函数返回“多个值”,本质上还是一个值,且只能是一种类型的一个值。

全局变量与局部变量(作用域)

局部变量(Local Variable):作用域只局限于函数内。

全局变量(Global Variable):作用域遍及整个代码。

如上图,函数discount中的price,rate和final_price就是局部变量,而函数外的old_price,rate和new_price是全局变量。

局部变量是存储在栈(steak)中的,当函数执行完毕后会自动清除。

若想在函数中修改某全局变量,Python会自动创建一个与该全局变量名相同的局部变量,并进行赋值。因此实际上是没有真正修改到全局变量的,从而会产生许多期望之外的结果。

如上图,若试图在函数中用old_price = 50修改全局变量old_price的值,反而与预期相反,见下图:

为什么要把注释掉,否则会报错呢?

这是因为old_price虽然在函数体外有定义,但是该函数体内的print语句访问不到;另外局部变量的old_price在print的下方,所以也访问不到。

建议不到万不得已不要使用全局变量,简洁的概括为:|Yn"J=oHI
|n?}hE]=sb7R4q_ k;`S[W
    a) 代码可读性变差版权属于:https://fishc.com.cn
    b) 代码安全性降低来自:https://fishc.com.cn
{B%@)#Ik~ouy-3aTpe+w;4cF9(Dx
以下关于全局变量的危言耸听是转来的,大家不妨也看下: C$&^
ARXDzi05OMt~[TyY_v%gGrdW
    a) 它会造成不必要的常量频繁使用,特别当这个常量没有用宏定义“正名”时,代码阅读起来将万分吃力。F7fpD
    Vk !,~)?7Ye_.P;G2m0#f|rqQ]
    b) 它会导致软件分层的不合理,全局变量相当于一条快捷通道,它容易使程序员模糊了“设备层”和“应用层”之间的边界。写出来的底层程序容易自作多情地关注起上层的应用。这在软件系统的构建初期的确效率很高,功能调试进度一日千里,但到了后期往往bug一堆,处处“补丁”,雷区遍布。说是度日如年举步维艰也不为过。,. ePG@qZD
~f^I6tMPw$QC 72u#8:nFE'
    c) 由于软件的分层不合理,到了后期维护,哪怕仅是增加修改删除小功能,往往要从上到下掘地三尺地修改,涉及大多数模块,而原有的代码注释却忘了更新修改,这个时候,交给后来维护者的系统会越来越像一个“泥潭”,注释的唯一作用只是使泥潭上方再加一些迷烟瘴气。yvki|[hgR-
? iU*}KE;hk0P(^SD2">qT
    d) 全局变量大量使用,少不了有些变量流连忘返于中断与主回圈程序之间。这个时候如果处理不当,系统的bug就是随机出现的,无规律的,这时候初步显示出病入膏肓的特征来了,没有大牛来力挽狂澜,注定慢性死亡。PRT34;KHOf
$lmGZAE9}]H,3YeOKFTUc%X+goBQa
    e) 无需多言,如果您的系统中大量使用全局变量,那么您已经成功得到一个畸形的系统,它处于一个神秘的稳定状态!你看着这台机器,机器也看着你,相对无言,心中发毛。你不确定它什么时候会崩溃,也不晓得下一次投诉什么时候会到来。yzJ@v.hr6
x`hJD-+B{5g0m)uVXOSWl


课后作业

https://fishc.com.cn/forum.php?mod=viewthread&tid=42573&extra=page%3D1%26filter%3Dtypeid%26typeid%3D398

测试题:
0.答:

我在next()函数里...
我在pre()函数里...

1.答:有,None。

2.答:可以,默认用逗号隔开,是以元祖的形式返回,你当然也可以用列表包含起来返回。

>>> def myFun():return '操操操操', 520, 3.14, True>>> myFun()
('操操操操', 520, 3.14, True)
>>> def myFun2():return ['小甲鱼', 1314, 5.12, False]>>> myFun2()
['小甲鱼', 1314, 5.12, False]
>>>

3.答:

1314520

4.答:

 Baby I love you

动动手

0.答:

def huiwen():str1 = input('请输入一句话:')length = len(str1)t = range(length//2)j = 0for i in t:if str1[i] == str1[length-1-i]:j += 1if j == (length + 0.5)//2:print('是回文联!')else:print('不是回文联!')

改进:

def huiwen():str1 = input('请输入一句话:')length = len(str1)t = range(length//2)j = 1for i in t:if str1[i] != str1[length-1-i]:j = 0breakif j == 1:print('是回文联!')else:print('不是回文联!')
参考答案:
方法二:
def palindrome(string):list1 = list(string)list2 = reversed(list1)if list1 == list(list2):return '是回文联!'else:return '不是回文联!'
print(palindrome('上海自来水来自海上'))

1.

def count1(*string):number = 0for each in string:number += 1space = 0alpha = 0numeric = 0others = 0for char in each:if char == ' ':space += 1elif char.isalpha():alpha += 1elif char.isnumeric():numeric += 1else:others += 1print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (number, alpha, numeric, space, others))

【小甲鱼Python】函数:我的地盘听我的课后作业相关推荐

  1. [Python]小甲鱼Python视频第002课(第一个游戏)课后题及参考解答

    # -*- coding: utf-8 -*- """ Created on Mon Mar 4 11:19:54 2019@author: Administrator ...

  2. Python第019讲课后测试题:函数-我的地盘听我的

    函数-我的地盘听我的 测试题: 0. 下边程序会输入什么? def next():print('我在next()函数里...')pre()def pre():print('我在pre()函数里...' ...

  3. 小甲鱼python课后题百度网盘_[全套55讲] 鱼c论坛小甲鱼python课后题

    [全套55讲] 鱼c论坛小甲鱼python课后题 第 1 课0. Python 是什么类型的语言Python 是脚本语言脚本语言Scripting language是电脑编程语言,因此也能让开发者藉以 ...

  4. 小甲鱼python课后题答案_小甲鱼python视频教程下载|小甲鱼零基础学python视频教程附习题答案_ - 极光下载站...

    小甲鱼零基础学python视频教程下载,最完整的小甲鱼python语言学习视频来啦,想要学习python语言的小白们不妨点击观看视频在下学习吧! Python语言介绍 Python是一种面向对象的解释 ...

  5. (小甲鱼python)字符串系列笔记合集四 第四课、字符串IV总结 删除字符串中(左右)空格 删除指定的前缀或者后缀 字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组

    一.字符串总结四 1.删除字符串中(左右)空格或者与之匹配的字符串 "字符串".lstrip(char=None) 删除左空格 "字符串".rstrip(cha ...

  6. C++的学习心得和知识总结(十六)|基于EasyX实现小甲鱼Python飞机大战项目(C++版)

    目录结构 注:提前言明 本文借鉴了以下博主.书籍或网站的内容,其列表如下: 1.小甲鱼Python项目 – 飞机大战 2.本文使用的掩码图生成工具 自动生成遮罩图的程序,点击前往 3.EasyX官方链 ...

  7. 鱼C论坛小甲鱼Python课后题

    本人是从小甲鱼的python视频一步步过来的 所以刚看到小甲鱼的课后题库就转载过来和大家分享 如有侵权,请联系删除 之前python时就是学习的小甲鱼的课程 现在看了那么多的教学视频,感觉还是小甲鱼的 ...

  8. python飞机大战源码素材包_小甲鱼python基础教程飞机大战源码及素材

    原博文 2018-12-22 23:32 − 百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取 ...

  9. Python从入门到实践第9章课后作业

    Python从入门到实践第9章课后作业 编写过程中不知道如何将列表传入子类中,下面实例中均没有使用 #9-1 # class Restaurant(): # """模拟饭 ...

最新文章

  1. LeetCode-笔记-523. 连续的子数组和
  2. 平行相似定理_初中数学知识点----相似三角形
  3. jquery获取data-*返回undefined小记
  4. 只用一次+ 求三个整数之和
  5. 100道JS构造函数面试题
  6. 为什么mysql查询结果有前缀_字符串的公共前缀对Mysql B+树查询影响回溯分析
  7. python 判断点在随机多边形内_Python确定散点是否在多边形内,python,判断,内部
  8. 感性电路电流计算_电流、电压、电阻的关系和单位换算表
  9. 大数据技术架构_大数据架构流程图
  10. HTML translate方法,HTML canvas translate()用法及代码示例
  11. Android Binder总结(转自Cloud Chou's Tech Blog)
  12. Get https://registry-1.docker.io/v2/library/tomcat/manifests/latest:timeout
  13. 外贸找客户软件-Bitrecover Email Extractor
  14. 干货|TDD落地:从僵化、优化到固化的过程
  15. 使用旋转动画实现刻度表
  16. 输入法规则(U模式输入)
  17. 关于树状图画法的分析
  18. BI Publisher(rtf)模板开发语法大全(转)
  19. unity语音聊天--亲加通讯云(Android/iOS)---ios
  20. OpenStack读书笔记

热门文章

  1. pandas读取股票CSV文件并用mplfinance绘制蜡烛图
  2. 上海亚商投顾:指数全天冲高回落 两市炸板率超50%
  3. 女大学生-程序员需要达到什么水平才能不被性别歧视?顺利拿到 20k 无压力?
  4. 格力机器人图解_格力空调拆机图解,这张图看完立马成专家
  5. 电脑回收站删除的文件怎么找回?
  6. cmd del命令笔记
  7. 如何把mo3格式的文件转换成mp3格式
  8. 服务一直处于‘启动中‘,无法关闭(已解决)
  9. 移动端 REM 适配
  10. 名帖335 智永 草书《真草千字文》