就像平时玩的积木,函数就是一个个成块的积木,可以组合你想要的任何形状。

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之函数的更多相关文章

  1. 【简说Python WEB】视图函数操作数据库

    目录 [简说Python WEB]视图函数操作数据库 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 ...

  2. Python之函数进阶

    本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一.递归函 ...

  3. 简学Python第二章__巧学数据结构文件操作

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  4. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  5. 【转】Python之函数进阶

    [转]Python之函数进阶 本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函 ...

  6. python魔法函数__dict__和__getattr__的妙用

    python魔法函数__dict__和__getattr__的妙用 __dict__ __dict__是用来存储对象属性的一个字典,其键为属性名,值为属性的值. 既然__dict__是个字典那么我们就 ...

  7. 简说Python发展及其就业前景

    简说python 发展历史 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. python从ABC语言 ...

  8. 【简说Python WEB】Flask应用的文件结构

    目录 [简说Python WEB]Flask应用的文件结构 1.文件结构的目录 2.配置程序--config.py 3.app应用包 4.剥离出来的email.py 5.蓝本(BLueprint)的应 ...

  9. python中函数的初览

    资料参考来源:https://www.cnblogs.com/haifeima/p/9595449.html 现在听到函数这两个字时还会头疼一会,因为我想到的是数学中的函数,但python中的函数不会 ...

  10. python的函数

    函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...

随机推荐

  1. Anaconda使用教程

    0 写在前面 以下命令都是在命令行模式下进行操作,macOS和Linux用户可以直接打开Terminal终端,Windows用户如果配置了环境变量则可以直接打开cmd,否则需要打开Anaconda P ...

  2. KingbaseES V8R6 常用的系统函数

    查看当前日志文件lsn位置: select sys_current_wal_lsn(); 查看某个lsn对应的日志名: select sys_walfile_name('0/1162FBA0'); 查 ...

  3. 【转载】Vue路由 hash与history 的区别

    [转载]Vue路由 hash与history 的区别 两种路由模式原因 对于 Vue 这类渐进式前端开发框架, 为了构建 SPA(单页面应用), 需要引入前端路由系统, 这也就是 Vue-Router ...

  4. 知名压缩软件 xz 被植入后门,黑客究竟是如何做到的?

    昨天,Andres Freund 通过电子邮件告知 oss-security@ 社区,他在 xz/liblzma 中发现了一个隐藏得非常巧妙的后门,这个后门甚至影响到了 OpenSSH 服务器的安全. ...

  5. 13 CSS 的position属性

    13 CSS 的position属性 就像photoshop中的图层功能会把一整张图片分层一个个图层一样,网页布局中的每一个元素也可以看成是一个个类似图层的层模型.层布局模型就是把网页中的每一个元素看 ...

  6. 4 JavaScript数组和对象

    4 数组和对象 在JS中创建数组非常简单. 直接[ ]即可. 也可以用正规军的new Array(). 不过效果都是一样的. var as = [11,22,33,44,55]; var bs = n ...

  7. #容斥,排列组合#U138404 选数字

    题目 给定长度为\(n,n\leq 10^5\)的序列\(a,a_i,m\leq 255\),多组询问求 \[\sum_{i=l}^{r-2}\sum_{j=i+1}^{r-1}\sum_{k=j+1 ...

  8. HDC 2022精彩继续,多重亮点进来看!

    原文:https://mp.weixin.qq.com/s/YX5vD4cxM8dA4v2ukFooyA,点击链接查看更多技术内容.  

  9. 局部区块多个报表 TAB 页切换及局部区块的参数查询

    在企业的业务系统中,如何从纷繁复杂的数据中抽丝剥茧看到关键数据信息呢?一个重要的途径就是将企业和各部门运营中关键的 KPI 集中在一起显示,同时尽量省去在企业的各个业务系统中分别查找数据. 下面是我近 ...

  10. sql 语句系列(列举非索引外键)[八百章之第九章]

    列举非索引外键 列举出那些外键没有添加索引. 目的: 1.减少锁. 2.外键添加索引,提示了查询性能,因为要与父表做连接查询做笛卡尔积. 下面只要会复制即可,没有会去从新写一遍的. select fk ...