0

私はpythonが初めてで、単純なアプリケーション(年齢計算機)を実行しようとしています。私はPython 3を使用しています。

これは私のコードです:

date=2012
age=input("type in the date you born to calculate your age")

print ("your age is ") + (date-age)

私には問題ないように思えますが、TypeError: cannot concatente 'str' and 'int' objects.

4

7 に答える 7

12

すべてを一連の引数としてprint関数に渡します。

print("your age is", date - int(age))

このprint()関数は、結果を文字列に変換date - int(age)します。ageただし、減算する前に、(文字列) を整数に変換する必要があることに注意してくださいdate

于 2012-09-25T14:34:45.577 に答える
1

ここでの問題は、文字列とintを連結しようとしていることです。これはPython(または他のほとんどの言語)ではサポートされておらず、エラーメッセージが表示している内容です。2つの異なる概念を混同しているため、あなたがしたことは間違っています

  1. 関数が誤って呼び出されました。この方法で呼び出す必要があります。

    print('Your age is: ', date-age)
    
  2. +演算子を使用しました。これは、文字列と数値を連結するための代替方法ですが、これを行うには、最初に、両方が同じタイプであることを確認する必要があります。この場合-文字列。これは、文字列関数を使用して行うことができます。

    print('Your age is: ' + str(date-age))
    

これを行うためのより良い方法は、文字列フォーマットを使用することです。これは主に、文字列に変換する必要なしにさまざまなフォーマットをサポートし、複数の値を持つテキストの長い文字列を簡単にするためです。

print('Your age is: %d' % date-age)

文字列の書式設定について詳しくは、こちらをご覧ください。

:)

于 2012-09-28T11:33:26.023 に答える
1

inputあなたに文字列を与えるつもりです。ただし、2012 は int です。数学演算を行うには、両方とも算術型である必要があります。入力を数値、おそらくintにする必要があります。でそのままキャストしint(age)ます。だからあなたはするだろうprint("Your age is ", date - int(age))

あなたのコードを簡単に言うと、もし私が 1992 年 12 月に生まれたとしたらどうでしょうか? そうすると、実際には 19 歳であるにもかかわらず、あなたのコードは私が 20 歳であると言うでしょうJune 6, 1992

これらは、始めて構文を学習している場合には関係ありませんが、プログラミングで実際に問題を引き起こすのはこれらの種類のものであることがすぐにわかるので、考えておくとよいでしょう。技術的なことは、言語に慣れた後、Google で調べたり、チート シートを使用したりできるものになる傾向があります (私は C スタイルの構文を使用する非常に多くの異なる言語を扱っているため、私の好みのアプローチです)。

于 2012-09-25T15:02:47.573 に答える
1

Python は厳密に型指定されているため、データを適切な型に変換する必要があります。

  • agestr入力から来ているので、 (文字列)です。あなたは書くべきです:

    date - int(age)

  • print ("your age is ") + (date-age)次の 2 つの理由で機能しません。

    1. printin python 3 は関数であるためprint ("your age is ") + (date-age)、引数リストとしてのみ考慮されます。

    2. 繰り返しますが、 astrと anを連結していますがint、これは厳密に型指定された言語では違法です。

printあなたのためにすべての仕事をするので、最後の変換は上書きすることができます:

print("your age is ", date - int(age))
于 2012-09-25T14:59:34.333 に答える
1

Python を学習するときは、最後の行に表示されるエラーを検索エンジンにフィードすることをお勧めします。

TypeError: cannot concatenate 'str' and 'int' objects決してユニークではありません。

TypeError: 'str' オブジェクトと 'int' オブジェクトを連結できません

于 2012-09-25T15:09:00.277 に答える
0

最初にしたいことは、印刷したいものすべてを print() 関数ブラケット内に保持することです。

print ("your age is ") + (date-age)

動作しないでしょう。

これはうまくいくかもしれません

 print("your age is" + str(date-int(age)))

python で作業を進めていくと、print 関数で行ったことができない理由がわかります。とにかく、これがお役に立てば幸いです。また、コードでいくつかの関数を使用していることに気付くかもしれません。str() と int()。これらは型変換関数です。以前にこれらに出くわしたことがあるかもしれませんし、すぐに出くわすことになるでしょう。

于 2013-03-20T20:26:40.580 に答える
-7

試す:

print("Your age is ",date-int(age))

str整数の結果を文字列にキャストして、残りの文字列に適切に「追加」できるようにします。

于 2012-09-25T14:24:34.403 に答える