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)),这句我试过是行不通,请问有其他办法可以实现吗
展开
 我来答
554817608
2013-12-02 · TA获得超过275个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:226万
展开全部
[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'}
sdwffzlll
2013-12-02 · TA获得超过758个赞
知道小有建树答主
回答量:498
采纳率:85%
帮助的人:248万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友95005f4
2013-12-02 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:95.6万
展开全部
全局变量名字是不可变的,你可以采用字典实现,例如dict={};dict["d2013
"]="2013"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenjie1024
2017-11-14 · TA获得超过2381个赞
知道大有可为答主
回答量:1737
采纳率:72%
帮助的人:865万
展开全部
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'
>>>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式