019函数:我的地盘听我的

一、函数与过程

过程procedure:简单、特殊并且没有返回值的

>>> def hello():print('Hello xx')
>>> temp = hello()
Hello xx
>>> temp
>>> print(temp)
None

二、返回值

>>> def back():return 1,'xx',3.14>>> back()
(1, 'xx', 3.14)

三、局部变量Local Variable和全局变量Global Variable

局部变量:在函数中定义的参数及变量,出了函数变量无效
全局变量:在整个python中都可以访问到,可以在函数中去读取他的值,但不要试图在函数内部修改他,因为这样的话python会自动在函数内部新建一个名称一样的局部变量代替。

def discounts(price,rate):f_price = price * rate#print('这里试图打印全局变量o_price的值')o_price = 50print('修改后o_price的值是1:',o_price)return f_priceo_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
n_price = discounts(o_price,rate)
print('修改后o_price的值是2:',o_price)
print('打折后价格是:',n_price)

局部变量:price、f_price、rate(只在函数discounts中定义)
全局变量:o_price、n_price

==================================================================================

思考题

0.下边程序会输入什么?
def next():print('我在next()函数里...')pre()def pre():print('我在pre()函数里...')next()

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

1.请问以下这个函数有返回值吗?
def hello():print('Hello FishC!')

>>> def hello():print('Hello FishC!')>>> hello()
Hello FishC!
>>> print(hello())
Hello FishC!
None
2.请问Python的return语句可以返回多个不同类型的值吗?

可以,默认用逗号隔开,以元组形式返回

3.目测以下程序会打印什么内容:
def fun(var):var = 1314print(var, end='')var = 520
fun(var)
print(var)

1314520

4.目测以下程序会打印什么内容?
var = ' Hi 'def fun1():global varvar = ' Baby 'return fun2(var)def fun2(var):var += 'I love you'fun3(var)return vardef fun3(var):var = ' 小甲鱼 'print(fun1())

‘Baby I love you’

Ps:建议不到万不得已不要使用全局变量,简洁的概括为:
a) 代码可读性变差
b) 代码安全性降低

以下关于全局变量的危言耸听是转来的,大家不妨也看下:
a) 它会造成不必要的常量频繁使用,特别当这个常量没有用宏定义“正名”时,代码阅读起来将万分吃力。
b) 它会导致软件分层的不合理,全局变量相当于一条快捷通道,它容易使程序员模糊了“设备层”和“应用层”之间的边界。写出来的底层程序容易自作多情地关注起上层的应用。这在软件系统的构建初期的确效率很高,功能调试进度一日千里,但到了后期往往bug一堆,处处“补丁”,雷区遍布。说是度日如年举步维艰也不为过。
c) 由于软件的分层不合理,到了后期维护,哪怕仅是增加修改删除小功能,往往要从上到下掘地三尺地修改,涉及大多数模块,而原有的代码注释却忘了更新修改,这个时候,交给后来维护者的系统会越来越像一个“泥潭”,注释的唯一作用只是使泥潭上方再加一些迷烟瘴气。
d) 全局变量大量使用,少不了有些变量流连忘返于中断与主回圈程序之间。这个时候如果处理不当,系统的bug就是随机出现的,无规律的,这时候初步显示出病入膏肓的特征来了,没有大牛来力挽狂澜,注定慢性死亡。
e) 无需多言,如果您的系统中大量使用全局变量,那么您已经成功得到一个畸形的系统,它处于一个神秘的稳定状态!你看着这台机器,机器也看着你,相对无言,心中发毛。你不确定它什么时候会崩溃,也不晓得下一次投诉什么时候道理。

操作题

0. 编写一个函数,判断传入的字符串参数是否为“回文联”

(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
程序执行结果如图:

print('==========RESTART==========')
def couplet():write = input('请输入一句话:')if list(write) == list(reversed(write)):print('是回文联!')else:print('不是回文联!')couplet()
1. 编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。

程序执行结果如图:

print('==========RESTART==========')
def count(*x):long = len(x)for i in range(long):letter = number = blank = others = 0for each in x[i]:if each.isalpha():letter += 1elif each.isdigit():number += 1elif each == ' ':blank += 1else:others += 1print('第',i+1,'个字符串共有:英文字母',letter,'个,数字',number,'个,空格',blank,'个,其他字符',others,'个。')count('I love fishc.com.','I love you, you love me.')

019函数:我的地盘听我的相关推荐

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

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

  2. 函数:我的地盘听我的+习题复习

    ##函数与过程            ※函数(function):有返回值            ※过程(procedure):是简单的,特殊并且没有返回值的             (python严 ...

  3. 第019讲:函数:我的地盘听我的

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

  4. 第019讲:函数:我的地盘听我的 | 课后测试题及答案

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

  5. 019 函数:我的地盘听我的

    #小甲鱼课程笔记及课后作业 Python 所有的函数都是有返回值的,当不写return 语句时默认返回None. 全局变量和局部变量 在函数里面定义的变量以及参数就是局部变量,出了函数,这些变量就是无 ...

  6. 019:函数:我的地盘听我的

    笔记 1.函数与过程:过程(procedure)是简单的,特殊且没有返回值的:函数(Function)有返回值 Python严格来说只有函数没有过程 2.局部变量(local variable):局部 ...

  7. [Python]小甲鱼Python视频第019课(函数:我的地盘听我的)课后题及参考解答

    # -*- coding: utf-8 -*- """ Created on Thu Mar 7 16:41:50 2019@author: Administrator ...

  8. 小甲鱼python的课后题好难_小甲鱼零基础python课后题 P20 019函数:我的地盘听我的...

    测试题 0.如果希望在函数中修改全局变量的值,应该使用什么关键字? 答:globe 1.在嵌套函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字? 答:nonlocal 2.pyth ...

  9. 课时19:函数:我的地盘听我的

    目录: 一.函数和过程 二.再谈谈返回值 三.函数变量的作用域 四.课时19课后习题及答案 ****************** 一.函数和过程 ****************** Python严格 ...

最新文章

  1. 【CVPR2020来啦】不容错过的29个教程Tutorial !(附Slides下载链接)
  2. wireshark从入门到精通(协议排错安全篇)7
  3. JTree用法及JTree使用经验总结转
  4. 如何安装pylab:python如何导入matplotlib模块
  5. 在阿里淘系6个月能有哪些收获成长?
  6. TypeError: ‘NoneType‘ object is not callable--python报错解决办法
  7. ArcMap下栅格图象矢量化步骤:
  8. 关于【微服务】,你必须了解这些
  9. 【计算机网络】物理层设备功能浅析
  10. Java项目中读取properties文件
  11. 宠物管理系统mysql_基于java+MySQL的宠物管理系统
  12. phpadmin安装到mysql中_PHPAdmin的安装和配置
  13. 叫你别随便重启Redis!!!怎么样,数据全丢了吧~~~
  14. c#开发wps插件(3)部署
  15. VUEJS项目实践六之No PostCSS Config found in
  16. Camera知识问答
  17. 三年前端开发面试经验加感悟(干货分享)
  18. GDUT22级寒假训练专题四
  19. 1.qs100模块简单使用笔记(电信物联网平台ctwing)
  20. git reset后本地拉取_【转】【Mac + Git】之Git pull 强制拉取并覆盖本地代码

热门文章

  1. ENVI5.0 软件BT共享下载
  2. php安装 tvheadend_,我的NAS我的地盘 篇二十一:群晖安装TVHeadend 4.4,Xbox下Kodi播放IPTV更流畅,再来一次同样精彩!吖!...
  3. 微信小程序原生开发 记录
  4. 十大算法之克鲁斯卡尔算法
  5. WRF模式的运行(一)
  6. Google免费虚拟主机空间
  7. Springboot毕设项目壁纸网站32zp4(java+VUE+Mybatis+Maven+Mysql)
  8. ​三分天下有其一,鸿蒙OS全面介绍
  9. mongo的upsert(spring的mongo template)
  10. Spring Cloud 阿里哨兵