我与编程新手和我有麻烦,此代码:麻烦与变量(Python)的
def supercalcx(a, b):
n = a
while a <= b:
n = n * a
a = a + 1
print(n)
的IDE给我的错误:“类型错误:无法通过非乘序列-int类型'str'“,但我确定输入是整数或浮点数,任何人都可以向我解释问题。谢谢 !
我与编程新手和我有麻烦,此代码:麻烦与变量(Python)的
def supercalcx(a, b):
n = a
while a <= b:
n = n * a
a = a + 1
print(n)
的IDE给我的错误:“类型错误:无法通过非乘序列-int类型'str'“,但我确定输入是整数或浮点数,任何人都可以向我解释问题。谢谢 !
此功能:
>>> def supercalcx(a, b):
... n = a
... while a <= b:
... n = n * a
... a = a + 1
... print(n)
...
>>> supercalcx(2, 4)
48
您的功能不会将数据类型之间的转换。这方面的一个非常粗略的方法是做如下如下:
def supercalcx(a,b):
n = int(a)
a = int(a)
b = int(b)
while a <= b:
n = n * a
a = a + 1
print(n)
一对夫妇的建议,以改善你的代码:
函数应该很少有它内部的print()
功能;而是使用return
关键字。您可以将a = a + 1
更改为a += 1
和n = n * a
至n *= a
。您还可以引入try
和except
这将尝试执行无论是try
下标签,如果发生抛出由except
块指定一个错误,它会再执行任何被except
下标签。稍微改进的版本如下:
def supercalcx(a, b):
try:
n = int(a)
a = int(a)
b = int(b)
except ValueError:
return "Unable to convert to integers!"
while a <= b:
n *= a
a += 1
return n
print(supercalcx("1", 2))
print(supercalcx(1, 2))
当你调用它时,你传递给你的'supercalcx()'函数的参数是什么?如果您在传递变量的情况下不知道,请包含更多代码。 – Jerrybibo