从入门到富豪 发表于 2021-10-29 16:56:34

最最基础,但是最难的赋值问题,求大神指点。

爬取图片网页,有很多页,假设网页的结果是 html.find_all('img')

第一页我想命名web01 = html.find_all('img')
第二页我想命名web02 = html.find_all('img')
我想写   f‘web{x}’ = html.find_all('img')来自定义命名

是的,会报错,

求大神指点这样的自增命名 或者 自定义命名 应该如何写呢?

从入门到富豪 发表于 2021-10-29 16:58:02

左边的命名 类型完全是看右边的类型决定的,左边非字符串 非数字,头大呀。

逃兵 发表于 2021-10-29 17:00:59

exec(f"web{x}=html.find_all('img')")

hrpzcf 发表于 2021-10-29 17:02:58

html.find_all('img')返回的本来就是一个列表,为什么还有额外用变量web1web2...去保存其中的元素?

从入门到富豪 发表于 2021-10-29 22:39:28

逃兵 发表于 2021-10-29 17:00


非常感谢, 我试一下

从入门到富豪 发表于 2021-10-29 23:11:06

逃兵 发表于 2021-10-29 17:00


你好, 这样写前面的web自增是可以了,但是后面的函数调用无法运行了, 被当做字符串了,这个能解决吗?
exec(f"web{self.x}={html.find_all('img')}")我这样写不行 直接报错了。

逃兵 发表于 2021-10-30 08:17:01

从入门到富豪 发表于 2021-10-29 23:11
你好, 这样写前面的web自增是可以了,但是后面的函数调用无法运行了, 被当做字符串了,这个能解决吗?
...

exec()函数就是去掉最外层引号
比如你想写个
a = 1
等价于
exec("a=1")

具体得看你的代码修改

从入门到富豪 发表于 2021-10-30 17:07:15

逃兵 发表于 2021-10-29 17:00


非常感谢, 好像说python不支持变量名 也可以变化。
页: [1]
查看完整版本: 最最基础,但是最难的赋值问题,求大神指点。