零基础Python教程035期 exec和eval字符串转python执行妙用

简介: 零基础Python教程035期 exec和eval字符串转python执行妙用

知识要点:



1、掌握随机数猜数字小游戏

2、掌握类random使用

3、掌握多条件判断,利用关键词and  与  or


一、exec函数试用



exec执行的格式:

exec(字符串)

exec执行后的字符串转为python语句执行以后,会记忆在内存中

举例执行代码:

>>> exec("a=10")

>>> a

10


利用这个功能可以做典型案例:gui的计算器


二、Python中的对象表示方法



使用英文状态下的大括号表示{  }

对象表示方法,是一个键值对的形式。

举例表示一个对象:

Person={“name”:”刘金玉”,sex:”男”}

对象结合exec函数进行传值的形式:

>>> exec("print('姓名:'+name+'性别:'+sex)",person)

姓名:老刘性别:男


三、参数释义



1.exec函数

exec两个参数

形式一:exec(字符串,起到局部保护作用的对象)

形式二:exec(字符串,给字符串中相同名称的变量传值的对象)

当命名空间冲突的时候,采用的解决方案

1)、使用完整命名空间的方式,例如

>>> random.randint(1,20)

19

2)、使用一个对象来进行命名空间的保护

>>> exec("x=randint(1,20)",s)


exec三参数传值

exec(字符串,起到局部保护作用的对象,给字符串中相同名称的变量传值的对象)

>>> t={"a":1,"b":3}

>>> exec("print(a+b)",s,t)

4


2.eval函数

这个函数的执行效果类似于exec函数

Eval函数会返回一个执行的结果,我们可以将执行的结果保存起来

>>> x=eval("1")

>>> x

1

>>> x=eval("a+b",s,t)

>>> x

4


案例编写:

输入代码,直接转为python进行运算,直到编程完毕,返回结果


四、总结强调



1、exec函数执行字符串转python

2、eval函数执行字符串转Python

3、exec和eval函数的异同点

4、对象的定义方法

5、exec函数和eval函数多参数的使用方法


本节知识源代码:

codesAll=""
print("您可以输入python代码,如果输入ljyok,表示输入完毕,开始执行")
while True:
    x=input("")
    if x=="ljyok":
        print("---------开始执行代码,并输出结果--------")
        exec(codesAll)
        break
    else:
        codesAll+=x+"\n"
相关文章
|
1天前
|
Python
Python避免在字符串和字节之间混淆
【5月更文挑战第5天】Python避免在字符串和字节之间混淆
11 3
|
1天前
|
机器学习/深度学习 自然语言处理 PyTorch
使用Python实现循环神经网络(RNN)的博客教程
使用Python实现循环神经网络(RNN)的博客教程
19 1
|
2天前
|
数据安全/隐私保护 开发者 Python
【Python 基础】检查字符串是否只包含数字和字母?
【5月更文挑战第8天】【Python 基础】检查字符串是否只包含数字和字母?
|
2天前
|
Python
【Python 基础】如何将一个字符串转化为全大写和全小写?
【5月更文挑战第8天】【Python 基础】如何将一个字符串转化为全大写和全小写?
|
2天前
|
人工智能 IDE 开发工具
python环境安装教程
python环境安装教程
18 0
|
2天前
|
机器学习/深度学习 存储 人工智能
python 字符串的三种定义方式
python 字符串的三种定义方式
8 1
|
2天前
|
数据采集 iOS开发 MacOS
Python及Pycharm安装教程
Python及Pycharm安装教程
13 0
|
3天前
|
机器学习/深度学习 算法 Python
深入浅出Python机器学习:从零开始的SVM教程/厾罗
深入浅出Python机器学习:从零开始的SVM教程/厾罗
|
4天前
|
Python Perl
Python中的字符串分析:判断字符串中是否包含字母
Python中的字符串分析:判断字符串中是否包含字母
9 0
|
4天前
|
C语言 Python
【Python 基础】如何进行字符串插值?
【5月更文挑战第6天】【Python 基础】如何进行字符串插值?