简说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 ...
随机推荐
- KingbaseES V8R6备份恢复案例之---备份crond计划任务的调整
案例说明: 在KingbaseES V8R6数据库通常备份建立的crond任务,默认由root用户建立,写入到/etc/cron.d/KINGBASECRON文件中,在有的生产环境限制了普通用户使用r ...
- KingbaseES V8R6 复制冲突之锁类型冲突
背景 昨天遇到客户现场的一个有关复制冲突的问题 备库报错:ERROR: canceling statement due to conflict with recovery,user was holdi ...
- C++设计模式 - 职责链模式(Chain of Resposibility)
数据结构模式 常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用.这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无 ...
- k-均值聚类算法 Primary
目录 案例--区分好坏苹果(有Key) 案例--自动聚类(无Key) k-均值聚类算法(英文:k-means clustering) 定义: k-均值聚类算法的目的是:把n个点(可以是样本的一次观察或 ...
- #线段树,组合计数,二项式定理#CF266E More Queries to Array
洛谷传送门 CF266E传送门 分析 首先区间修改区间查询首选线段树 要找突破口,\((i-l+1)^k\)中\(i\)不是定值, 显然得拆开,而且\(k\)很小,根据二项式定理, \[\sum_{i ...
- OpenHarmony 状态变量更改通知:@Watch 装饰器
@Watch 应用于对状态变量的监听.如果开发者需要关注某个状态变量的值是否改变,可以使用 @Watch 为状态变量设置回调函数. 说明: 从 API version 9 开始,该装饰器支持在 Ark ...
- HMS Core机器学习服务,高效助力跨语种沟通
5月24日, HUAWEI Developer Day(简称HDD)线上沙龙·创新开发专场活动成功举办.HMS Core机器学习服务(ML Kit)产品经理在会上围绕机器翻译的技术优势.使用场景和接入 ...
- HarmonyOS应用性能与功耗云测试
性能测试 性能测试主要验证HarmonyOS应用在华为真机设备上运行的性能问题,包括启动时长.界面显示.CPU占用和内存占用.具体性能测试项的详细说明请参考性能测试标准. 性能测试支持Phone和TV ...
- CentOS 编译安装golang
一.下载go wget https://studygolang.com/dl/golang/go1.16.4.linux-amd64.tar.gz 二.解压到指定目录 tar -xvf go1.16. ...
- CentOS下修改 MySQL 的密码
做服务器运维,修改 MySQL 的密码是经常的需要,定期修改 MySQL 密码是网站安全的一个保证.这里记录一下修改 MySQL 密码的一些命令,方便以后查看. 修改root密码 CentOS 下 M ...