python - TypeError:不能通过乘法将序列乘以“浮点”类型的非整数
问题描述
我使用屏幕刮板来获取我的帐户余额的值,我想获得该值的 10%,但它给出了这个错误:TypeError: can't multiply sequence by non-int of type 'float'。代码如下所示:
account_balance = driver.find_element_by_xpath("/html/body/div[1]/div/div[1]/div[2]/main/section/div/div[1]/section[2]/button[1]/span[1]")
account_balance_value = account_balance.get_attribute("title")
它现在给出的价值是
print(account_balance_value)
0,10
所以我把它改成这个
account_balance_value = account_balance_value.replace(',', '.')
print(account_balance_value)
0.10
当我打印它时,它给出了错误:
print(account_balance_value * 0.1)
TypeError Traceback (most recent call last)
<ipython-input-102-536a3835612f> in <module>
----> 1 print(account_balance_value * 0.1)
TypeError: can't multiply sequence by non-int of type 'float'
如果我只是运行它就可以了
print(0.10 * 0.1)
0.010000000000000002
我在这里做错了什么?
解决方案
get_attribute(attribute_name)
将返回一个字符串。字符串account_balance_value
类型也是如此,因此您可以进一步使用以下方式操作字符串:replace()
account_balance_value = account_balance_value.replace(',', '.')
因此,通过所有可能的方式,通过代码行:
print(account_balance_value)
您正在打印一个字符串,并且不能将字符串 account_balance_value
与浮点数相乘,即0.1
解决方案
您需要使用将其中的字符串值转换account_balance_value
为浮点数float()
,然后按如下方式打印结果:
print(float(account_balance_value) * 0.1)
参考
您可以在以下位置找到相关的详细讨论:
推荐阅读
- python - 在 For 循环中,如何解压缩“枚举”和另一个对三个变量的可迭代
- python - 我可以一次从一个文件夹中导入所有 Python 文件吗?
- java - HttpsURLConnection:使用 IDE JDK 可用于身份验证,但不适用于 JRE!这很奇怪
- python - 如何将用户输入与字典索引匹配?
- docker - 未经授权:拉取 sequenceiq/hadoop-docker:2.7.1 时需要身份验证
- machine-learning - 反向传播、交叉熵损失和 Softmax 函数
- sql-server - 在T-SQL(SQL Server)中将工作时间日期时间调整为下一个工作日上午8点
- c++ - Weird "reference to non-static member function must be called" error
- c - CPU 在访问全局变量时重置自定义 C 内核的执行
- javascript - ajax成功功能后更改文本区域的高度