前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[oeasy]python092_eval_衡量_转化为列表

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

原创
作者头像
oeasy
发布于 2025-04-26 23:51:05
发布于 2025-04-26 23:51:05
500
举报

eval_衡量_转化为列表 回忆

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

绕道 s = "oeasy" char_list = list(s) char_list char_list2 = "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 不能作为变量名
  • 那样 会 覆盖掉 类

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这是你的字符串,它表示一个列表 s = str(list("oeasy")) # 使用 eval() 将字符串转换回列表 # 请确保字符串来源是安全的 my_list = eval(s) # 打印结果 print(my_list)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档