知识点

函数与过程

在许多编程语言中,函数(function)是有返回值的,过程(procedure)是简单、特殊并且没有返回值的。而在Python中,严格来说只有函数没有过程。
例如:

>>> def hello():print('hello fishc!')>>> temp = hello()
hello fishc!>>> temp
没有任何显示,为什么?因为我们这个hello函数没有return任何东西。>>> print(temp)
None>>> type(temp)
<class 'NoneType'>
就算函数没有写上return语句,python也会返回一个None对象

在Python中,函数是可以返回多个值的,如下:

>>> def back():return [1,'xiaojiayu',3.14]>>> back()
[1, 'xiaojiayu', 3.14]
>>> def back():return 1,'xiaojiayu',3.14>>> back()
(1, 'xiaojiayu', 3.14)

局部变量与全局变量

在函数里面定义的参数以及变量都称之为局部变量;
在函数外边定义的变量称之为全局变量。

函数内若试图修改全局变量,Python会新建一个同名局部变量用于存储修改值,原全局变量的值不变。

def discounts(price,rate):final_price = price * rate
#   print('这里试图打印全局变量old_price的值是:',old_price)old_price = 50 #这里试图修改全局变量print('修改后old_price的值1是:',old_price)return final_priceold_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
new_price = discounts(old_price,rate)
print('修改后old_price的值2是:',old_price)
print('打折后价格是:',new_price)
#print('这里试图打印局部变量final_price的值:',final_price)#请输入原价:100
#请输入折扣率:0.8
#打折后价格是: 80.0
#Traceback (most recent call last):
#  File "D:\python test\局部变量和全局变量.py", line 12, in <module>
#    print('这里试图打印局部变量final_price的值:',final_price)
#NameError: name 'final_price' is not defined#在函数里面定义的参数以及变量都称之为局部变量,
#在函数外边定义的变量称之为全局变量==================== RESTART: D:\python test\局部变量和全局变量.py ====================
请输入原价:100
请输入折扣率:0.8
修改后old_price的值1是: 50
修改后old_price的值2是: 100.0
打折后价格是: 80.0

课后习题

测试题:

  • 下边程序会输入什么?
def next():print('我在next()函数里……')pre()def pre():print('我在pre()函数里……')next()运行结果:
================== RESTART: C:/Users/ThinkPad/Desktop/11.py ==================
我在next()函数里……
我在pre()函数里……
  • 以下函数有返回值吗?
>>> def hello():print('Hello FishC!')

如果没有使用return语句指定返回值,Python也不是什么都不返回id,Ta会返回一个None对象,所以我们说Python所有的函数都有返回值。

>>> def hello():print('Hello FishC!')
>>> temp = hello()
Hello FishC!
>>> temp
>>> print(temp)
None
  • 请问Python的return语句可以返回多个不同类型的值吗?
可以丫,默认用逗号隔开,是以元祖的形式返回,你当然也可以用列表包含起来返回:
>>> def myFun():return '操操操操', 520, 3.14, True>>> myFun()
('操操操操', 520, 3.14, True)
>>> def myFun2():return ['小甲鱼', 1314, 5.12, False]>>> myFun2()
['小甲鱼', 1314, 5.12, False]
>>>
  • 目测以下程序会打印什么内容
def fun(var):var = 1314print(var, end='')var = 520
fun(var)
print(var)运行结果:
1314520
  • 目测以下程序会打印什么内容?
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())运行结果:
================== RESTART: C:/Users/ThinkPad/Desktop/11.py ==================Baby I love you

动动手

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

##方法一:
def huiwen(string):length = len(string)last = length - 1length //= 2flag = 1for each in range(length):if string[each] != string[last]:flag = 0last -= 1if flag == 1:return 1else:return 0string = input('请输入一句话:')
if huiwen(string) == 1:print('是回文联')
else:print('不是回文联')##方法二:
def huiwen(string):list1 = list(string)list2 = reversed(list1)if list1 == list(list2):return '是'else:return '不是'
print(huiwen('上海自来水来自海上'))
  • 编写一个函数,分别统计出传入字符串参数的英文字母、空格、数字和其他字符的个数。
#分别统计出传入字符串参数的英文字母、空格、数字和其他字符的个数。
def count(*param):length = len(param)for i in range(length):zm = 0kg = 0sz = 0qt = 0for each in param[i]:if each.isalpha():zm += 1elif each.isdigit():sz += 1elif each == ' ':kg += 1else:qt += 1print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1,zm,sz,kg,qt))
count('I love fishc.com','I love you,you love me','5201314')

转载于:https://www.cnblogs.com/wanbin/p/9514691.html

零基础入门学习Python(19)--函数:我的地盘听我的相关推荐

  1. 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版

    Python pdf(零基础入门学习Python)是一款功能强劲专业实用的Python电子书籍.想要零基础入门学习Python?那就快试试绿色先锋小编推荐的Python pdf最新版下载使用.由作者小 ...

  2. 零基础学python 视频_零基础入门学习PYTHON(第2版)(微课视频版)

    小甲鱼畅销图书重磅升级,针对Python 3.7,通过生动的实例,让读者在实践中理解概念,在轻松.愉快中学会Python! 本书提倡理解为主,应用为王.因此,只要有可能,小甲鱼(注:作者)都会通过生动 ...

  3. 《零基础入门学习Python》学习笔记(1-25)

    参考:<零基础入门学习python>http://edu.csdn.net/course/detail/906?locationNum=1&fps=1&ref=srch&a ...

  4. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

  5. 零基础学python pdf-笔记《零基础入门学习Python(第2版)》PDF+课件+代码分析

    通过自学编程,感觉到基础知识很重要,越到后面越能发现这一点,光记住是不行的,还要灵活运用,要多调试代码,计算机就是一个不断练习,不断遇到问题,解决问题的工种,要根据实际的业务能想到对应的语法,实际项目 ...

  6. 零基础入门学习Python(21):魔法方法(1)构造和析构

    零基础入门学习Python(21):魔法方法(1)构造和析构 从这节开始,我们介绍下Python的魔法方法:魔法方法总是被双下划线包围. 之前有提到过初始化的魔法方法__init__(),它返回Non ...

  7. 第023、024讲:这帮小兔崽子汉诺塔 | 学习记录(小甲鱼零基础入门学习Python)

    (标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) ...

  8. 第019讲:我的地盘听我的 | 学习记录(小甲鱼零基础入门学习Python)

    (标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.下边程序会输入什么? def next():print('我在next()函数里...')pre()def pre( ...

  9. python dict 合并同类项_零基础入门学习Python,这13个Python惯用小技巧一定要收藏...

    原标题:零基础入门学习Python,这13个Python惯用小技巧一定要收藏 Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的 ...

  10. 零基础入门python小甲鱼-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

最新文章

  1. xp路由器播放服务器无响应,xp系统连不上路由器的原因及解决方法
  2. flash mini播放器
  3. 【ABAP】OO ALV 概述
  4. 人类如何面对AI挑战
  5. 从严治码-系统集成项目之根本
  6. (91)FPGA时钟分频与倍频问题,面试必问(十五)(第19天)
  7. Python中变量判断
  8. 深度模型推理在腾讯游戏的应用与实践(王者荣耀、和平精英等均有应用)
  9. thinkphp 调用wsdl接口实例化SoapClient抛出异常
  10. Apache DBUtils
  11. 数格子算面积的方法_数方格在平面图形面积公式推导教学中的妙用
  12. 互融云工业品电商系统上线:科技助力互联网与实体经济深度融合
  13. 基于华为java编程规范的checkstyle.xml以及格式化模版,注释模版
  14. 女超人、女强人……究竟是谁在以“女”设限?
  15. R语言--计算各种距离
  16. 记理光MP5503一体机扫描到域计算机共享文件夹一事
  17. 为什么墨刀的动效这么酷炫?学会神奇移动,你也可以
  18. smartupload文件上传与下载
  19. 计算机学前教育教案,学前教育学第四章教案.doc
  20. (二)Linux嵌入式开发——软件安装(Ubuntu)

热门文章

  1. 雅思听力之高频词汇篇:全球地名
  2. jQuery做简单的下拉菜单
  3. 证明在(0,π/2)上,tanx>x>sinx
  4. TTA 测试时数据增强(multi-scale testing)(TEST.AUG)
  5. JAVA设计模式什么鬼(迭代器)——作者:凸凹里歐
  6. ATMEGA16读取DS18B20温度,1602显示,并用proteus仿真,成功。
  7. 原创 | 破解个人数据“不可能三角”初探
  8. 颠覆绿之韵传销谣言!看草根企业逆袭激荡十五载
  9. python循环语句打印三角形_Python利用for循环打印星号三角形的案例
  10. 网心科技陈磊:星域CDN四大技术破直播核心挑战