[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 不能作为变量名
  • 那样 会 覆盖掉 类

  • 字符串 中 索引值 可以 是 负数
  • 列表中 索引值 可以是 负数吗?🤔
目录
打赏
0
2
2
0
171
分享
相关文章
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
117 62
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
45 21
|
11天前
|
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
49 15
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
44 6
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
82 9
Python学习笔记----列表、元组和字典的基础操作
这篇文章是一份Python学习笔记,涵盖了列表、元组和字典的基础操作,包括它们的创建、修改、删除、内置函数和方法等。
Python学习笔记----列表、元组和字典的基础操作
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
94 0
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
104 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等