Python 将字符串作为代码执行

一、简介

        这个程序展示了如何在Python中使用字符串来表示代码,并通过exec()函数执行该字符串中的代码。

        在这个示例中,程序定义了一个名为exec_code的函数,其中包含一个名为LOC的字符串变量,它存储了一段Python代码。然后,使用exec(LOC)函数执行了这段代码,从而实现了将字符串转换为可执行代码的目的。

        最后,调用exec_code()函数,触发了对存储在LOC中的代码的执行,结果输出了内容。

        这种技术可以用于动态生成和执行代码,有时可以用于特定的应用场景,如动态生成函数或根据用户输入执行不同的代码逻辑。

1. 简单示例

def exec_code(): 
    LOC = """ 
print('下面输出的都是字符串生成的代码:')
print(' Hello World! ') 
print(' 1234554321 ')
"""
    exec(LOC) 
    print('代码运行完成!!!')
 
exec_code() #运行exec_code函数

二、具体使用方法

这段代码是一个Python脚本,允许用户输入代码并执行。以下是它的工作原理:

  1. 定义了一个全局变量 LOC1,用于存储用户输入的代码片段。

  2. exec_code() 函数用于接收用户输入的代码,并执行该代码。

  3. 在 exec_code() 函数中,首先将用户输入的代码与 LOC1 变量拼接起来,以字符串形式存储。在拼接时,将每个用户输入的换行符替换为字符串 "回车",将每个空格替换为字符串 "空格",以避免输入的代码影响整体的执行。

  4. 然后,通过调用 exec() 函数来执行用户输入的代码字符串。

  5. 最后,将 LOC1 变量中的 "回车" 字符串替换为实际的换行符,将 "空格" 字符串替换为空格符,并输出执行结果,以及存储的代码片段。

  6. 在 while True 循环中,程序会不断提示用户输入代码,并调用 exec_code() 函数执行用户输入的代码。

        总的来说,这个脚本的作用是允许用户动态输入代码并执行,然后输出执行结果,并且会保存已执行的代码片段。

1. 具体示例

LOC1 = ""
 
def exec_code(): 
    
    global LOC1
 
    LOC1 = LOC1 + "\n" + input() # 旧代码后面加入新的代码
    
    LOC1 = LOC1.replace("回车", "\n")
#     LOC1 = LOC1.replace("空格", " ") 
    
    print('加入代码完成!!!\n')
    print("保存的代码为:%s \n\n" %LOC1)
    exec(LOC1) # 运行字符串代码
 
while True :
    print("输入代码:")
    exec_code() #循环运行exec_code函数

2. 方式一:调试串口输入

a=10回车b=20回车c=a+b回车print("c值为:%d" %c)

结果显示

输入代码:
a=10回车b=20回车c=a+b回车print("c值为:%d" %c)
c值为:30
加入代码完成!!!

保存的代码为:
a=10
b=20
c=a+b
print("c值为:%d" %c) 

3. 方式二、调试串口输入

for x in range(1,6):回车 print(1)

结果显示

输入代码:
for x in range(1,6):回车 print(1)
加入代码完成!!!

保存的代码为:
for x in range(1,6):
 print(1) 


1
1
1
1
1

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_755682240

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值