[oeasy]python092_eval_衡量_转化为列表

简介: 本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。

eval_衡量_转化为列表

回忆

  • 上次 深入了  index函数
  • 可以 找到某对象的位置
  • 如果 列表中 有多个指定元素
  • 可以通过 index函数的start和end参数
  • 指定位置列表的下标索引
  • 可以 用中括号 索引到 相应的元素
  • 还可以 替换相应的元素
  • 和 字符串 效果一样

  • 字符串中字符
  • 不能通过 索引下标 直接 修改?
  • 这怎么办??🤔

绕道

s = "oeasy"
char_list = list(s)
char_list
char_list[2] = "A"
char_list
s = ""
for c in char_list:
    s += c
  • 通过list列表

  • 曲则全
  • 枉则直
  • 绕路才能到成功
  • 如果 字符串能转成 列表
  • 那列表 能转化为 字符串 吗?

尝试

  • 把 列表 再转化 为 字符串

  • 最终 得到了
  • 一个字符串
  • 一个 内容 为列表的 字符串
  • 这和我想象的不一样啊
  • 有 什么办法 能够
  • 将 str(list("oeasy")) 这个字符串
  • 转化回 列表 吗?🤔

eval

  • eval
  • 可以把字符串
  • 转化为对应的数据类型
# 这是你的字符串,它表示一个列表
s = str(list("oeasy"))
# 使用 eval() 将字符串转换回列表
# 请确保字符串来源是安全的
my_list = eval(s)
# 打印结果
print(my_list)
  • 这次把 将列表转化为的字符串
  • 转化回了列表
  • 既然是 evalute
  • 可以完成 字符串中的 计算吗?

具体使用

eval("1 + 1")
eval("1 * 1 + 2")

  • 如何理解 eval函数 呢?

eval

help(eval)
  • eval函数的参数是
  • 字符串source

  • eval函数
  • 根据本地和全局的变量
  • 将 source
  • 衡量 (evaluate)出来
  • 被衡量的字符串
  • 可以使用 变量 吗?

根据变量

a = 5
eval("6 * a")
  • 根据变量a的值

  • 可以导入模块吗?

导入模块

import math
eval(str("math.pi"))
eval(str("math.pi * 10 ** 2"))
  • 确实是可以 导入模块的

使用函数

eval("len(\"oeasy\")")
eval("len(\"oeasy\") + 1")
  • 尝试使用len函数

  • 如果len被 赋值了呢?

len被赋值

len = 1
len
eval("len(\"oeasy\")")
  • 果然出错了

  • eval的时候
  • 会执行 参数字符串

  • 不能 把数值 赋给 函数名
  • 那样会 覆盖掉 函数
  • 命名的时候 有什么禁忌吗?

变量命名的禁忌

int = 5
int("5")
  • int 是 类名
  • 一旦 作为 变量名之后
  • 不再是 类名 了
  • 也没法完成 整型变量的 初始化 了

  • 类似的还有str
str = "oeasy"
str("oeasy")
  • str 如果成了变量
  • 就不再是 str类型了

  • list 也会这样吗?

问题

  • 本来 list 是一个 class
  • 如果你把他赋值成了一个空列表
  • list 就变成了一个对象的名字
  • 一个变量 variable
  • 就无法执行 list 类的构造函数了

  • 类名 被覆盖
  • 类 就不能用了

总结

  • 这次了解了eval函数
  • 根据本地和全局的变量
  • 将 source
  • 衡量 (evaluate)出来

  • 要特别注意
  • 类名 str、int、list 不能作为变量名
  • 那样 会 覆盖掉 类

  • 字符串 中 索引值 可以 是 负数
  • 列表中 索引值 可以是 负数吗?🤔
相关文章
|
4月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
322 1
|
5月前
|
缓存 监控 数据可视化
微店item_search - 根据关键词取商品列表深度分析及 Python 实现
微店item_search接口可根据关键词搜索商品,返回商品信息、价格、销量等数据,适用于电商检索、竞品分析及市场调研。接口需通过appkey与access_token认证,支持分页与排序功能,Python示例代码实现调用流程,助力商品数据高效获取与分析。
|
4月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
475 116
|
4月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
417 109
|
4月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
489 119
|
4月前
|
开发者 Python
Python列表推导式:优雅与效率的完美融合
Python列表推导式:优雅与效率的完美融合
353 104
|
4月前
|
Python
Python列表推导式:优雅与效率的艺术
Python列表推导式:优雅与效率的艺术
342 99
|
4月前
|
数据处理 Python
解锁Python列表推导式:优雅与效率的完美融合
解锁Python列表推导式:优雅与效率的完美融合
319 99
|
4月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
483 95
|
5月前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
548 99

推荐镜像

更多