092_eval_衡量_转化为列表
eval_衡量_转化为列表 回忆
-
上次 深入了 index函数
-
可以 找到某对象的位置
-
如果 列表中 有多个指定元素
-
可以通过 index函数的start和end参数
-
指定位置列表的下标索引
-
可以 用中括号 索引到 相应的元素
-
还可以 替换相应的元素
-
和 字符串 效果一样
添加图片注释,不超过 140 字(可选)
-
字符串中字符
-
不能通过 索引下标 直接 修改?
-
这怎么办??🤔
绕道 s = "oeasy" char_list = list(s) char_list char_list[2] = "A" char_list s = "" for c in char_list: s += c
-
通过list列表
添加图片注释,不超过 140 字(可选)
-
曲则全
-
枉则直
-
绕路才能到成功
-
如果 字符串能转成 列表
-
那列表 能转化为 字符串 吗?
尝试
-
把 列表 再转化 为 字符串
添加图片注释,不超过 140 字(可选)
-
最终 得到了
-
一个字符串
-
一个 内容 为列表的 字符串
-
这和我想象的不一样啊
-
有 什么办法 能够
-
将 str(list("oeasy")) 这个字符串
-
转化回 列表 吗?🤔
eval
添加图片注释,不超过 140 字(可选)
-
eval
-
可以把字符串
-
转化为对应的数据类型
# 这是你的字符串,它表示一个列表 s = str(list("oeasy")) # 使用 eval() 将字符串转换回列表 # 请确保字符串来源是安全的 my_list = eval(s) # 打印结果 print(my_list)
-
这次把 将列表转化为的字符串
-
转化回了列表
-
既然是 evalute
-
可以完成 字符串中的 计算吗?
具体使用 eval("1 + 1") eval("1 * 1 + 2")
添加图片注释,不超过 140 字(可选)
-
如何理解 eval函数 呢?
eval help(eval)
-
eval函数的参数是
-
字符串source
添加图片注释,不超过 140 字(可选)
-
eval函数
-
根据本地和全局的变量
-
将 source
-
衡量 (evaluate)出来
-
被衡量的字符串
-
可以使用 变量 吗?
根据变量 a = 5 eval("6 * a")
-
根据变量a的值
添加图片注释,不超过 140 字(可选)
-
可以导入模块吗?
导入模块 import math eval(str("math.pi")) eval(str("math.pi * 10 ** 2"))
-
确实是可以 导入模块的
添加图片注释,不超过 140 字(可选)
使用函数 eval("len(\"oeasy\")") eval("len(\"oeasy\") + 1")
-
尝试使用len函数
添加图片注释,不超过 140 字(可选)
-
如果len被 赋值了呢?
len被赋值 len = 1 len eval("len(\"oeasy\")")
-
果然出错了
添加图片注释,不超过 140 字(可选)
-
eval的时候
-
会执行 参数字符串
添加图片注释,不超过 140 字(可选)
-
不能 把数值 赋给 函数名
-
那样会 覆盖掉 函数
-
命名的时候 有什么禁忌吗?
变量命名的禁忌 int = 5 int("5")
-
int 是 类名
-
一旦 作为 变量名之后
-
就不再是 类名 了
-
也没法完成 整型变量的 初始化 了
添加图片注释,不超过 140 字(可选)
-
类似的还有str
str = "oeasy" str("oeasy")
-
str 如果成了变量
-
就不再是 str类型了
添加图片注释,不超过 140 字(可选)
-
list 也会这样吗?
问题
-
本来 list 是一个 class
-
如果你把他赋值成了一个空列表
-
list 就变成了一个对象的名字
-
一个变量 variable
-
就无法执行 list 类的构造函数了
添加图片注释,不超过 140 字(可选)
-
类名 被覆盖
-
类 就不能用了
总结
-
这次了解了eval函数
-
根据本地和全局的变量
-
将 source
-
衡量 (evaluate)出来
添加图片注释,不超过 140 字(可选)
-
要特别注意
-
类名 str、int、list 不能作为变量名
-
那样 会 覆盖掉 类
添加图片注释,不超过 140 字(可选)
-
字符串 中 索引值 可以 是 负数
-
列表中 索引值 可以是 负数吗?🤔