简说Python之函数
就像平时玩的积木,函数就是一个个成块的积木,可以组合你想要的任何形状。
Python的函数
函数的简单调用
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def printHello():
print("hello world!")
print("张盛东你来了")
printHello()
printHello()
可以看到上述我调用了两次printHello()函数,另存为fun01.py,执行效果如下:
G:\Py>python fun01.py
hello world!
张盛东你来了
hello world!
张盛东你来了
函数传参
这里printHello(num)中括号内的内容,用于传递参数(argument)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def printHello(num):
print("hello world!")
print("张盛东你来了")
print("带了",num,"个苹果")
printHello(3)
参数是可以传递多个,例如传递三个参数。如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def printHello(num,name):
print("hello world!")
print("张盛东你来了")
print("带了",num,"个苹果")
print("叫了",name,"这位好朋友一起来吃")
printHello(3,'胡轲')
返回值
定义一个函数,一般是有输入,处理过程,有输出。把它当做一个黑匣子,什么也看不清楚。然后输入几个值,返回一个结果。
计算圆形面积
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
def area_circle(r):
print("你传入的半径是",r)
S = math.pi*r**2
return S
r1 = 5
S1 = area_circle(r1)
print("半径为",r1,"的圆面积是",S1)
得到的结果如下:
G:\Py>python fun04.py
你传入的半径是 5
半径为 5 的圆面积是 78.53981633974483
变量作用域
局部变量
何为局部变量,就是变量只能在函数内使用,如果在外面调用的话,直接会出错。就拿area_circle()函数举例子。如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
def area_circle(r):
print("你传入的半径是",r)
S = math.pi*r**2
return S
r1 = 5
S1 = area_circle(r1)
print("半径为",r1,"的圆面积是",S1)
####调用局部的变量r
print(r)
另存为fun05.py,执行效果如下:
G:\Py>python fun05.py
你传入的半径是 5
半径为 5 的圆面积是 78.53981633974483
Traceback (most recent call last):
File "fun05.py", line 13, in <module>
print(r)
NameError: name 'r' is not defined ----->r是局部变量,不能在全局使用。
全局变量
可以在整个范围内使用。继续修改area_circle()函数。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
###### 这里r1是全局变量。
def area_circle(r):
print(r1,"函数内的全局变量")
print("你传入的半径是",r)
S = math.pi*r**2
return S
r1 = 5
S1 = area_circle(r1)
print(r1,"函数外的全局变量")
print("半径为",r1,"的圆面积是",S1)
很神奇的时候,函数内也可以读取r1的变量。效果如下:
G:\Py>python fun06.py
5 函数内的全局变量
你传入的半径是 5
5 函数外的全局变量
半径为 5 的圆面积是 78.53981633974483
现在我们来修改这个,全局的函数变量会出现什么效果。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
###### 这里r1是全局变量。
def area_circle(r):
r1 =10
print("函数内的全局变量", r1)
print("你传入的半径是",r)
S = math.pi*r**2
return S
r1 = 5
S1 = area_circle(r1)
print(r1,"函数外的全局变量")
print("半径为",r1,"的圆面积是",S1)
另存为fun07.py,看看效果
G:\Py>python fun07.py
函数内的全局变量 10 ---->函数内,修改的不能带出
你传入的半径是 5
5 函数外的全局变量 ---->函数外,r1还是5.
半径为 5 的圆面积是 78.53981633974483
简说Python之函数的更多相关文章
- 【简说Python WEB】视图函数操作数据库
目录 [简说Python WEB]视图函数操作数据库 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 ...
- Python之函数进阶
本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一.递归函 ...
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- 【转】Python之函数进阶
[转]Python之函数进阶 本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函 ...
- python魔法函数__dict__和__getattr__的妙用
python魔法函数__dict__和__getattr__的妙用 __dict__ __dict__是用来存储对象属性的一个字典,其键为属性名,值为属性的值. 既然__dict__是个字典那么我们就 ...
- 简说Python发展及其就业前景
简说python 发展历史 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. python从ABC语言 ...
- 【简说Python WEB】Flask应用的文件结构
目录 [简说Python WEB]Flask应用的文件结构 1.文件结构的目录 2.配置程序--config.py 3.app应用包 4.剥离出来的email.py 5.蓝本(BLueprint)的应 ...
- python中函数的初览
资料参考来源:https://www.cnblogs.com/haifeima/p/9595449.html 现在听到函数这两个字时还会头疼一会,因为我想到的是数学中的函数,但python中的函数不会 ...
- python的函数
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...
随机推荐
- RepPointsV2:更多的监督任务,更强的性能 | NIPS 2020
RepPointsV2的整体思想类似与Mask R-CNN,加入更多的任务来监督目标检测算法的学习.虽然在创新性上可能不够新颖,但论文的通用性还是很不错的,而且将角点任务的输出用于联合推理,从对比实验 ...
- KingbaseES sys_bulkload数据加载工具错误处理
一.关于sys_bulkload数据加载工具 sys_bulkload是KingbaseES提供的快速加载数据的命令行工具.用户使用sys_bulkload工具能够把一定格式的文本数据简单.快速的加载 ...
- archlinux 格式化分区并创建文件系统后,分区的文件系统没有改变
这就需要格式化分区并创建文件系统后 再执行partprobe应该就可以看到分区的文件系统改变了 partprobe partprobe命令用于通知操作系统重新读取分区表,以便识别新创建的分区或者删除的 ...
- MySQL检索和过滤数据
注意 多条SQL语句必须以分号(:)分隔: SQL语句不区分大小写: 在处理SQL语句时,其中所有空格都被忽略: 当选择多个列是,一定要在列名之间加上逗号,但最后一个列名后不加. SELECT语句 检 ...
- #费马小定理,BSGS#BZOJ 3285 离散对数解指数方程
题目 求最小的正整数 \(x\) 满足 \(g^{ax+b}\equiv c\pmod p\) 其中 \(p\) 是一个质数, \(g,a,b,c\leq 10^{1000000},p\leq 2^{ ...
- Bootstrap实战 - 评论列表
一.介绍 社交媒体网站盛行,人们常常会使用评论表达自己的观点,评论功能已然成为网站的一部分. 二.知识点 2.1 媒体对象 官方解释:这是一个抽象的样式,用以构建不同类型的组件,这些组件都具有在文本内 ...
- 使用OHOS SDK构建lua
参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/lua/lua.git ...
- Docker 学习之道: 容器注册表及其最佳实践
容器注册表是Docker容器镜像的集中存储和分发系统.它允许开发人员以这些镜像的形式轻松共享和部署应用程序.容器注册表在容器化应用程序的部署中发挥着关键作用,因为它们提供了一种快速.可靠和安全的方式, ...
- 你知道什么叫做API、SDK吗?
链接:https://www.zhihu.com/question/21691705/answer/770586138 API.SDK是什么......... 讲个小故事: 研发人员A开发了软件A,研 ...
- loguru 简单使用
使用Python自带的 logging 来记录日志会比较麻烦,查了下 大家都在用 loguru,看了下文档,发现是挺好用的,记录下笔记 安装 pip install loguru 简单使用 f ...