Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将函数返回值更改为整数_Python - Fatal编程技术网

Python 如何将函数返回值更改为整数

Python 如何将函数返回值更改为整数,python,Python,嗨,我是个新手,我只是想为一个使用python 3.6的游戏制作一个快速伤害计算器,我需要乘以从用户输入中得到的2个值 def armCalc(armV): '''Returns Armour Reduction Value''' return "%.2f" % ((armV / (armV+(50*70))) * 100) def resCalc(phys, cold, fire, light, pois, arc): '''Returns AVG All Resis

嗨,我是个新手,我只是想为一个使用python 3.6的游戏制作一个快速伤害计算器,我需要乘以从用户输入中得到的2个值

def armCalc(armV):
    '''Returns Armour Reduction Value'''
    return "%.2f" % ((armV / (armV+(50*70))) * 100)

def resCalc(phys, cold, fire, light, pois, arc):
    '''Returns AVG All Resist + Reduction'''
    allRes = (phys + cold + fire + light + pois + arc) / 6
    return "%.2f" % (allRes / (allRes + (5 * 70)))
基本上我需要将resCalc和armCalc相乘,但python说不行,因为它们不是整数,搜索只会让我找到输入示例。谢谢:)

如:

#!python
...
    return "%.2f" % (allRes / (allRes + (5 * 70)))
。。。您正在将算术表达式的结果:
(allRes/(allRes+(5*70))
转换为字符串,使用%运算符和格式化字符串先行项

因此,只需将该行(以及其他类似行)更改为:

在本例中,我还添加了对float()构造函数/转换函数的调用,以确保如果此代码由其他版本的Python执行,则整个表达式将使用浮点(实数)语义而不是风险整数除法进行计算。

行中如下所示:

#!python
...
    return "%.2f" % (allRes / (allRes + (5 * 70)))
。。。您正在将算术表达式的结果:
(allRes/(allRes+(5*70))
转换为字符串,使用%运算符和格式化字符串先行项

因此,只需将该行(以及其他类似行)更改为:


在本例中,我还添加了对float()构造函数/转换函数的调用,以确保如果此代码由其他版本的Python执行,则整个表达式将使用浮点(实数)语义而不是风险整数除法进行计算。

是否尝试调用
int(…)
,您的代码将结果显式格式化为字符串,因此我不确定您为什么会感到困惑。我尝试将int()放在不同的位置,但只是返回了不同的错误,因此我不确定我是否正确使用它,甚至不确定我是否在正确的位置使用它。我有另一个操作函数,它将这两个值相乘,并打印各种其他函数。没有不正确的返回,因为我正在测试它,我只在里面放了整数,我最终会包含except语句,但我还没有。我在主函数中也有这个函数
print('entresistance amounts:')phys=int(input('Physical:'))cold=int(input('cold:'))fire=int(input('fire:'))light=int(input('Lightning:'))pois=int(input('毒物:'))arc=int(input('奥术与神圣:'))
@C.Blackett添加“int()”将某物转换为整数。但这不是您想要的(float()),如果您仍然将这种转换的结果插入到字符串中(请参阅下面的答案),则不会有任何帮助。您是否尝试调用
int(…)
?您的代码将结果显式格式化为字符串,因此我不确定您为什么感到困惑。我尝试将int()在不同的地方,但只是返回了不同的错误,所以我不确定我是否使用它的权利,甚至在正确的地方,我有另一个操作功能,将乘以这2个值加上打印各种其他功能。没有不正确的返回,因为我正在测试它,我只在里面放了整数,我最终会包含except语句,但我还没有。我在主函数中也有这个函数
print('entresistance amounts:')phys=int(input('Physical:'))cold=int(input('cold:'))fire=int(input('fire:'))light=int(input('Lightning:'))pois=int(input('毒物:'))arc=int(input('奥术与神圣:'))
@C.Blackett添加“int()”将某物转换为整数。但这不是您想要的(float()),如果您仍然将这种转换的结果插入到字符串中(参见下面的我的答案),它也不会有任何帮助。这会使小数位数保持为2并向上取整吗?如果您想向上取整,只需调用
round()
方法。
返回float(格式((float(allRes)/(allRes+(5*70)),'.2f'))
willdo@Siladittya:这将是执行舍入的不雅方式。Python已经包含了一个函数,用于将一些数字舍入到某个精度。。。一种比转换成字符串,然后再转换回数字更有效的方法。@JimDennis是的,你是对的。我忘了。谢谢。这样可以将小数位数保留为2并进行四舍五入吗?如果您想进行四舍五入,只需调用
round()
方法。
返回float(格式((float(allRes)/(allRes+(5*70)),'.2f')
willdo@Siladittya:这将是执行舍入的不雅方式。Python已经包含了一个函数,用于将一些数字舍入到某个精度。。。一种比转换成字符串,然后再转换回数字更有效的方法。@JimDennis是的,你是对的。我忘了。谢谢