登录
首页 >  文章 >  python教程

为什么创建变量并使用该变量作为引用会导致混乱?

来源:dev.to

时间:2024-07-31 08:03:42 158浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《为什么创建变量并使用该变量作为引用会导致混乱?》,正文内容主要涉及到等等,如果你正在学习文章,或者是对文章有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

为什么创建变量并使用该变量作为引用会导致混乱?

介绍

在 python 脚本中,我想使用相同的逻辑测试不同的 html 字符串。我的方法是循环遍历一个范围来创建 html 字符串变量的多个实例,但它没有按预期工作。

# do not do this

for i in range(1, 5):
    html = f"html{i}"
    soup = beautifulsoup(html, "html.parser")
    print('----', soup)

我观察到的行为是由于格式化字符串 f"html{i}" 的解释方式造成的。在我的代码中, f"html{i}" 计算结果为文字“html1”、“html2”、“html3”和“html4”,而不是名为 html1、html2 等的变量的内容

python 不会自动将 f"html{i}" 替换为动态创建名称的变量的值,例如 html1 或 html2。相反,它将字符串评估为由前缀“html”组成的固定模式,后跟 i.

的值

如果我想使用预定义变量 html1、html2 等的内容,我需要显式检索它们的值,例如使用字典将字符串名称映射到其实际内容。

这是说明这一点的示例:

285644712​​554

解释:

  1. 定义变量:

    • html1, html2, html3, html4 定义为你要解析的内容。
  2. 变量查找字典:

    • 创建 html_dict 将字符串名称映射到其相应的内容。
  3. 迭代键:

    • 循环生成键“html1”到“html4”。
    • key = f"html{i}" 构造密钥。
    • html = html_dict[key] 检索与 key 关联的内容。
  4. 解析并打印:

    • 使用 beautifulsoup 解析 html 内容。
    • 打印解析的内容。

输出:

---- Test 1
---- Test 2
---- Test 3
---- Test 4

这种方法根据迭代索引动态访问变量的内容并正确打印预期的内容。

到这里,我们也就讲完了《为什么创建变量并使用该变量作为引用会导致混乱?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>