-3

私はPythonを初めて使用しますが、DogAgeを数式に入れようとしましたが、まだ機能していません

Animal = input("dog or cat? ")

if Animal == "dog":
    DogAge = int(input("how old is you dog? "))
else:
    CatAge = int(input("how old is your cat? "))

if DogAge == 1:
    print("your dog's age is 11")
elif DogAge == 2:
    print("your dog's age is 22")
else:
    print("your dog's age is " + (DogAge - 2 * 4 + 22))

与える:

TypeError:'int'オブジェクトを暗黙的にstrに変換できません
4

3 に答える 3

3

エラーは、何が問題なのかを正確に示しています。これを変える:

print("your dog's age is " + (DogAge - 2 * 4 + 22))

これに:

print("your dog's age is " + str(DogAge - 2 * 4 + 22))

文字列オブジェクトを整数と連結することはできません。

于 2013-02-09T13:44:45.437 に答える
3

別の解決策:

print("your dog's age is {0}".format((DogAge - 2) * 4 + 22))

(DogAge-2) * 4 + 22(ではなくを計算したいと仮定しますDogAge + 14)。

于 2013-02-09T13:48:10.310 に答える
0

犬の年齢の計算と値の実際の出力を分離するために、コードを別の方法で再編成することを検討することをお勧めします。

より複雑になった場合は、後でそのコードを関数にリファクタリングすることが可能です。

Animal = input("dog or cat? ")

if Animal == "dog":
    DogAge = int(input("how old is you dog? "))
else:
    CatAge = int(input("how old is your cat? ")) 

if DogAge == 1:
    calculated_dogs_age = 11
elif DogAge == 2:
    calculated_dogs_age = 22
else:
    calculated_dogs_age = DogAge - 2 * 4 + 22

print("your dog's age is {0:d}".format(calculated_dogs_age))
于 2013-02-09T14:06:28.593 に答える