Python怎么把字符串转为代码运行?
如题,比如一个字符串"num=1"怎么把这个字符串转为代码运行? eval好像不行,不能赋值 举个具体的例子
n=1就是一个赋值语句?咋运行??? wp231957 发表于 2023-2-26 10:23
举个具体的例子
n=1就是一个赋值语句?咋运行???
我是想实现这样一个功能:
输入一个字符串的赋值语句,然后转为代码运行。 wp231957 发表于 2023-2-26 10:23
举个具体的例子
n=1就是一个赋值语句?咋运行???
因为我想做一个数学工具,想让用户输入一个赋值语句,然后转换为代码运行 陶远航 发表于 2023-2-26 10:31
因为我想做一个数学工具,想让用户输入一个赋值语句,然后转换为代码运行
不能举个例子吗
啥叫转成代码运行?! exec函数
>> exec('''global n
n = 114514''')
>>> n
114514
global 语句可以将这个变量变成全局,不管哪个作用域都行(除了重复定义 exec(代码) 鱼cpython学习者 发表于 2023-2-26 10:43
exec函数
不行啊,我把代码拿出来def gaojimoshi():
guifan()
mingling=enterbox("式子或任意命令:")
try:
g.showinfo("",exec(mingling))
return None
except:
try:
g.showinfo("",eval(mingling))
return None
except:
g.showerror("","运行错误!请检查输入是否正确!")
当我第一次输入a=10时是可以的,然后我尝试输入a*10,报错Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "e:/Math Problem Solver+/Math Problem Solver+ 1.0 with starting.py", line 317, in gaojimoshi
g.showinfo("",exec(mingling))
File "<string>", line 1, in <module>
NameError: name 'a' is not defined 歌者文明清理员 发表于 2023-2-26 11:00
exec(代码)
谢谢,用了global就可以了 陶远航 发表于 2023-2-26 11:07
谢谢,用了global就可以了
不讲信用{:10_266:}
页:
[1]