python+变量做错了数学

2024-10-03 04:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经发布了来自一个网络表单的数据,我正在尝试将lb的转换为oz的运输标签。你知道吗

网络表单设置为只发布数字。你知道吗

<input type="number" step="1" name="lbs" id="lbs" class="form-control input-lg" placeholder="Lb's" tabindex="7">

下面是python代码

llb = request.form['lbs']
lw = (llb*16)
return lw

它总是返回错误的号码。你知道吗

2对于llb,当它应该是32时返回2222222。我试着搞乱0o16等等,但没有成功。你知道吗

我甚至试着确定llb是int

llb = int(request.form['lbs']) 

我一辈子都搞不懂。据我所知,我可能想得太多了。你知道吗

我甚至试过了Wrong math with Python?上提到的所有东西,还有一些我能找到的simlar。你知道吗


Tags: 数据网络form表单inputrequesttype数字
2条回答

llb变量是字符串。如果你想要一个int,你就需要强制转换它

'2'*16将打印字符2的16倍。你知道吗

如果llb应该是int,只需执行以下操作:

lw = (int(llb)*16)

尝试:

llb = request.form['lbs']
lw = (int(llb)*16)
return lw

因为您的request.form['lbs']str类型,所以您需要在乘法之前将其转换为int类型。 乘法符号*处理字符串的方式是在给定的时间内复制字符串。你知道吗

示例:

'^'*5
>> '^^^^^'

编辑

您的问题似乎是您用其他变量覆盖了内置的int。你知道吗

示例:

>>> lbs = '2'
>>> lbs
'2'
>>> lw = lbs*16
>>> lw
'2222222222222222'
>>> lw = int(lbs)*16
>>> lw
32
>>> int = 7
>>> lw = int(lbs)*16
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> del int
>>> lw = int(lbs)*16
>>> lw
32

决不能覆盖内置名称,如intlistsetdict等等:Why can you assign values to built-in functions in Python?

相关问题 更多 >