我在变量中保存一个数字然后我想将该数字乘以0.5。但是,它似乎改变了变量的类型,我的变量是变成了double还是某种东西? (我刚开始学习python)
CODE& ERROR:
a = pickAFile()
b = makePicture(a)
c = getWidth(b)
d = getHeight(b)
e = (c * 0.5)
f = (d * 0.5)
--> (problem line) newPicture = makeEmptyPicture(e,f)
错误:尝试使用无效类型的参数调用函数。这意味着你做了一些事情,比如尝试将字符串传递给期望整数的方法。
答案 0 :(得分:2)
我能找到的makeEmptyPicture示例似乎需要整数宽度和高度。因此,您应该使用
makeEmptyPicture(int(e), int(f))
或使用
进行整理makeEmptyPicture(int(math.ceil(e)), int(math.ceil(f)))
请注意,math.ceil返回一个浮点数,因此您需要将其强制转换为调用中的int。
答案 1 :(得分:1)
Python变量没有设置数据类型,所以是的,Python可以/将根据您分配给它的内容更改变量的数据类型。
您可以通过以下方式查看变量的当前类型:
type(var_name)
为了能够专门回答您的问题,请向我们展示makeEmptyPicture()
的定义。
答案 2 :(得分:0)
这是因为当您将奇数乘以0.5时,您将得到非整数结果。您可能希望使用math.ceil
或math.floor
向上舍入或向下舍入,然后将该结果转换为具有int
函数的整数。
答案 3 :(得分:0)
你应该使用浮动:
e=float(whatever you want inside)
这样它将允许python使用小数,否则它将它们舍入。
,您应该为其他变量使用浮点数而不是整数。