2017-09-28 4 views
-2

回答に「年齢」のユーザーの回答を含めることにします。Pythonで浮動小数点型の入力をプリントするには?

ただし、「年齢」を含むとエラーが返されます。フロートが先行していると思われる。 「あなたは何歳ですか?」という回答を含める方法はありますか?

ここでは、コードです:例えばとは異なり

name = input("What is your name? ") 
age = float(input("How old are you? ")) 
answer1 = (age + "!? That's very old, " + name + "!") 
answer2 = (age + "? You're still young, " + name + ".") 
if age > 60: 
    print(answer1) 
if age < 60: 
    print(answer2) 

答えて

1

は、 Javaでは、既に文字列であるオブジェクトの一部を連結するとき、Pythonは__str__メソッドを自動的に呼び出すことはありません。あなたがそれを行う方法は、手動で文字列に変換する必要があります:

answer1 = (str(age) + "!? That's very old, " + name + "!") 

は、最初の場所での書式適切な文字列を使用して、しかし、考えてみましょう:

answer1 = ("{age}!? That's very old, {name}!".format(age=age, name=name)) 
+0

ありがとうございました。 .0を削除する方法はありますか?これが印刷応答に追加されますか?私は見ている: "65.0 !?それは非常に古いです..." – ukraineinthemembrane

+0

はい、あなたが使用することができます。 '{age:.0f}'。詳細については、文字列[formatting docs](https://docs.python.org/2/library/string.html#format-string-syntax)を参照してください。 – schwobaseggl

0

あなたがここにいくつかのオプションを持っています。文字列へ

  1. 変換年齢:

    answer1 = (str(age) + ...)

  2. 使用古いスタイルの文字列フォーマット:

    answer1= "%f!? That's very old, %s!" % (age, name)

  3. 使用のPython 3.6の優れた文字列補間:

    answer1 = f"{age}!? That's very old, {name}!"

私は3番目に行くでしょう。

+0

'format'を使って4番目の方法もありますが、特に文字列補間が利用できるようになりました。 – zmbq

+0

なぜあなたはそれが好きですか? 'format'はPython3.6の前にお勧めの方法です。補間とは異なり、これはすべてのPythonバージョンで使用でき、その使用法は旧式の書式設定よりも自然なものです。 – schwobaseggl

+0

私はそれがCで私のルーツだと思います。決してそれを好きではなく、他人にそれを気に入らないように説得するほど気にすることはありませんでした。 – zmbq

関連する問題