600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > c++ 全局变量_专业解码 | 带你了解Python全局变量与局部变量!

c++ 全局变量_专业解码 | 带你了解Python全局变量与局部变量!

时间:2021-08-13 06:27:33

相关推荐

c++ 全局变量_专业解码 | 带你了解Python全局变量与局部变量!

最新

动态

实时

资讯

部门

通知

专业

速递

NEWS

导语

爱学习的的小伙伴们,在学习专业知识的你们,是否有困惑与不解,不要着急,本栏目致力于为同学们指路迷津。

《专业速递》——带你了解大数据的魅力!

一.局部变量与全局变量

1

局部变量

局部变量是指在函数定义内声明的变量,它们与函数外(即便是具有相同的名称)的其他变量没有任何关系,变量名称对于函数来说是局部的,即变量的作用域只在函数的内部。

示例:

def sum(a,b)

total=a+b #total在这里是局部变量

print('函数内是局部变量:',total)

return tatal

#调用sum函数

sum(5,10)

输出的结果如下:

函数内是局部变量:15

2

全局变量

全局变量是在函数外部声明的变量,程序中的任何地方都可以读取它。如果需要在函数内部访问全局变量,一般要用到global关键字。

示例:

deffunc():

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 开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的具体功能实现代码。

deffunc(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 | 如何从一名学生成为大公司优秀员工——届倪成持

•优秀校友001 | 如何从一名学生成为大公司优秀员工——届梁林辉

温州职业技术学院

大数据技术与应用专业学生综合部

我们发布最新的专业动态

我们分享最受关注的实时资讯

让技术成就你的梦想!!

投稿邮箱:1873395014@

~欢迎大家踊跃投稿~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。