私はプログラミングと初心者だと私はこのコードのトラブルによ:トラブル(パイソン)
def supercalcx(a, b):
n = a
while a <= b:
n = n * a
a = a + 1
print(n)
IDEは私にエラーを与える:「TypeError例外を:非でシーケンスを乗算することはできません私は、入力がintまたはfloatであると確信しています、誰も私に問題を説明することができます。ありがとう!
私はプログラミングと初心者だと私はこのコードのトラブルによ:トラブル(パイソン)
def supercalcx(a, b):
n = a
while a <= b:
n = n * a
a = a + 1
print(n)
IDEは私にエラーを与える:「TypeError例外を:非でシーケンスを乗算することはできません私は、入力がintまたはfloatであると確信しています、誰も私に問題を説明することができます。ありがとう!
この機能は動作します:
>>> 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
ブロックで指定されたエラーをスローした場合、それはその後、except
下のタブ付きれるものは何でも実行します何でも実行するを試みますtry
と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