python中如何在函数中把字符串中的global语句执行
defaddstu():code=raw_input('请输入学生的学号')exec('globald'+str(code))exec("d"+str(code)+"=c...
def addstu():
code=raw_input('请输入学生的学号')
exec ('global d'+str(code))
exec("d"+str(code)+"=code")
我想对某个变量赋值,并自定变量的名称如 我输入的是2013 那就要有d2013=2013
但这种情况想要怎么声明全局变量,exec ('global d'+str(code)),这句我试过是行不通,请问有其他办法可以实现吗 展开
code=raw_input('请输入学生的学号')
exec ('global d'+str(code))
exec("d"+str(code)+"=code")
我想对某个变量赋值,并自定变量的名称如 我输入的是2013 那就要有d2013=2013
但这种情况想要怎么声明全局变量,exec ('global d'+str(code)),这句我试过是行不通,请问有其他办法可以实现吗 展开
4个回答
展开全部
[root@-xl PythonTest]# vim stu.py
#!/usr/bin/python
#coding=utf-8
scope={}
def addstu():
code=raw_input('请输入学生的学号')
exec ('d'+code+'='+code) in scope
print scope['d'+code]
addstu()
[root@-xl PythonTest]# python stu.py
请输入学生的学号123
123
法二: 传参数也行
#!/usr/bin/python
#coding=utf-8
def addstu(scope):
code=raw_input('请输入学生的学号:')
scope['d'+code]=code
print scope['d'+code]
scope={}
addstu(scope)
print scope
[root@-xl PythonTest]# python stu.py
请输入学生的学号:456
456
{'d456': '456'}
展开全部
python中的全局变量是这样用:
gTEST=0
def testGlobal():
global gTEST
print gTEST
gTEST=20
print gTEST
testGlobal()
执行结果:
0
20
要想实现自定变更名称和值,可以利用字典中的键值对:
def addstu():
num=input("please input the NO. of student:")
tKey="d"+str(num)
dict={}
dict[tKey]=num
for key in dict:
print "%s=%d"%(key,dict[key])
addstu()
执行结果:
[输出]please input the NO. of student:[输入]2013
[输出]d2013=2013
gTEST=0
def testGlobal():
global gTEST
print gTEST
gTEST=20
print gTEST
testGlobal()
执行结果:
0
20
要想实现自定变更名称和值,可以利用字典中的键值对:
def addstu():
num=input("please input the NO. of student:")
tKey="d"+str(num)
dict={}
dict[tKey]=num
for key in dict:
print "%s=%d"%(key,dict[key])
addstu()
执行结果:
[输出]please input the NO. of student:[输入]2013
[输出]d2013=2013
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量名字是不可变的,你可以采用字典实现,例如dict={};dict["d2013
"]="2013"
"]="2013"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def addstu():
... code=raw_input('请输入学生的学号')
... globals()['d'+code] = code
...
>>> addstu()
请输入学生的学号2014
>>> d2014
'2014'
>>>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询