最新
动态
实时
资讯
部门
通知
专业
速递
NEWS
导语
爱学习的的小伙伴们,在学习专业知识的你们,是否有困惑与不解,不要着急,本栏目致力于为同学们指路迷津。
《专业速递》——带你了解大数据的魅力!
一.局部变量与全局变量
1
局部变量
局部变量是指在函数定义内声明的变量,它们与函数外(即便是具有相同的名称)的其他变量没有任何关系,变量名称对于函数来说是局部的,即变量的作用域只在函数的内部。
示例:
def sum(a,b)
total=a+b #total在这里是局部变量
print('函数内是局部变量:',total)
return tatal
#调用sum函数
sum(5,10)
输出的结果如下:
函数内是局部变量:15
2
全局变量
全局变量是在函数外部声明的变量,程序中的任何地方都可以读取它。如果需要在函数内部访问全局变量,一般要用到global关键字。
示例:
def func():
x = 200
x = 100
func()
print(x)
输出的结果如下:
100
3
两者区别
局部变量:(1)、函数内部定义的变量;(2)、作用域是函数的内部,如果超出使用范围(函数外部),则会报错。
全局变量:(1)、函数外部定义的变量;(2)、作用域是整个程序。
二.案例精析
Q1
name = "Deris"
def sayHello():
print ("hello "+name + "!"")
def changeName(newName):
name = newName
#调用函数
sayHello ()
changeName ("Weng")
sayHello()
输出结果:
hello Deris!
hello Deris!
解析:上例中全局变量name的值没有发生改变,原因是python认为changeName中的name是局部变量,所以全部都是Deris。
Q2
name = "Deris"
def sayHello():
print ("hello "+name + "!")
def changeName(newName):
global name
name = newName
#调用函数
sayHello ()
changeName ("Weng")
sayHello()
输出结果:
hello Deris!
hello Weng!
解析:上例中全局变量name的值发生改变,原因是global把changeName中的name变成全局变量。
三.有问必答
墙墙,为什么用def定义的函数里,变量有时有,有时又没有呢?
墙墙有话说
先讲讲基础,Python 使用 def 开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的具体功能实现代码。
def func(a, b):
c = a+b
print( 'the c is ', c)
上面我们定义了一个名字为 function 的函数,函数没有接受参数,所以括号内部为空。
这时我们在 Python 命令提示符中输入函数调用 function(),有如下:
那什么时候定义的函数又有参数呢?
我们在使用的调用函数的时候,想要指定一些变量的值在函数中使用,那么这些变量就是函数的参数,函数调用的时候, 传入即可。
def func(a,b):
c=a+b
print('the c is',c)
在这里定义的一个函数,其参数就是两个数值,函数的功能就是把两个参数加起来。运行脚本后,在 Python 提示符内调用函数 func,如果不指定参数 func(),那么将会出错; 若将 a=1, b=2 传入函数,输出“the c is 3”。
四.教你一招
今天的教你一招,我们来关注导入。
通过前面的学习,我们已经掌握了import以及from...import导入。那么他们究竟有啥区别呢?我们来仔细观察下图:
import turtle
from setuptools import *
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor( "black" )
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(-40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40 *2/3)
turtle.done()
(1)import输入
from turtle import *
from setuptools import *
setup(650,350,200,200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor( "black")
seth(-40)
for i in range(4):
circle(40,80)
circle(-40,80)
circle(-40,80/2)
fd(40)
circle(16,180)
fd(40* 2/3)
done()
(2)from...import
怎么样,第二种方法是不是肉眼可见的简洁,换句话说,可以更多偷懒了。
但是,第二种方法直接用函数名容易造成重名,一旦写长就要时刻注意函数名与变量是否冲突,有风险。那有没有啥方法既可以简洁一点,又可以无脑用呢?
上图!
import turtle as b
from setuptools import *
b.setup(650,350,200,200)
b.penup()
b.fd(-250)
b.pendown()
b.pensize(25)
b.pencolor("black")
b.seth(-40)
for i in range(4):
b.circle(40,80)
b.circle(-40,80)
b.circle(-40,80/2)
b.fd(40)
b.circle(16,180)
b.fd(40 * 2/3)
b.done()
我们可以完全可以起一个小名,如图中的b,采用as 定义这个小名,用小名来称呼模块中的函数。如图所示,简短的小名可以使你的代码做到简洁的同时不易重名。这里给出格式:
import as
.()
大家以后导入的时候可以露一手咯。
信息来源:温职院大数据专业综合部
print("END")
审核:孙小涵
编辑:柯鹏翔 刘兢
相关动态:
• 资讯 |大数据是如何被采集及应用的
• 资讯 | 大数据在疫情期间对货运运营商的安全至关重要
• 资讯 | 双十一你被大数据杀熟了吗?数据分析揭秘商家的杀熟套路资讯
• 优秀校友002 | 如何从一名学生成为大公司优秀员工——2018届倪成持
• 优秀校友001 | 如何从一名学生成为大公司优秀员工——2020届梁林辉
温州职业技术学院
大数据技术与应用专业学生综合部
我们发布最新的专业动态
我们分享最受关注的实时资讯
让技术成就你的梦想!!
投稿邮箱:1873395014@qq.com
~欢迎大家踊跃投稿~