介绍
在 python 脚本中,我想使用相同的逻辑测试不同的 html 字符串。我的方法是循环遍历一个范围来创建 html 字符串变量的多个实例,但它没有按预期工作。
# do not do thisfor 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 等的内容,我需要显式检索它们的值,例如使用字典将字符串名称映射到其实际内容。
这是说明这一点的示例:
285644712554
解释:
定义变量:
html1, html2, html3, html4 定义为你要解析的内容。
变量查找字典:
创建 html_dict 将字符串名称映射到其相应的内容。
迭代键:
循环生成键“html1”到“html4”。key = f”html{i}” 构造密钥。html = html_dict[key] 检索与 key 关联的内容。
解析并打印:
使用 beautifulsoup 解析 html 内容。打印解析的内容。
输出:
---- Test 1---- Test 2---- Test 3---- Test 4
登录后复制
这种方法根据迭代索引动态访问变量的内容并正确打印预期的内容。
以上就是为什么创建变量并使用该变量作为引用会导致混乱?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2197279.html