python
  • string
  • python-3.x
  • integer
  • double
  • 2013-03-16 10 views 9 likes 
    9
    integer = input("Number: ") 
    rslt = int(integer)+2 
    print('2 + ' + integer + ' = ' + rslt) 
    double = input("Point Number: ") 
    print('2.5 + ' +double+' = ' +(float(double)+2.5)) 
    

    は、私はプログラミングにかなり新しいですし、私の背景は、これまでほとんどのC#のちょうど基本である Python 3で文字列をintまたはfloatに変換しますか?

    Traceback (most recent call last): 
        File "C:\...", line 13, in <module> 
        print('2 + ' + integer + ' = ' + rslt) 
    TypeError: Can't convert 'int' object to str implicitly 
    

    を与えます。私はすべてのC#の学校プロジェクトをPythonでやってPythonを学びたいと思っていました。ユーザー入力文字列を受け取り、私が指定したものに変換

    int integer = Convert.ToInt32(Console.ReadLine()) 
    

    または

    double double = Convert.ToDouble(Console.ReadLine()) 
    

    :私はこのようになりますC#のの簡単な構文に慣れています。

    私はpy2.xにはraw_inputというコマンドがありますが、これはpy3.xの入力コマンドよりも少し上手く動作していると思います。

    私はPythonで使用するのに慣れていたC#のフォーマットと似たフォーマットを見つけようとしていましたが、この後にユーザー入力文字列を整数に変換する方法を見つけるのは驚くほど困難ですグーグルで私が考えることができるすべて(と私はGoogleで見つけた)を試して、私はそれが尋ねる時間だと決めた。手伝ってくれますか?

    print('2 + ' + str(integer) + ' = ' + str(rslt)) 
    

    またはあなたのためにそれを行うだろうprintと印刷に引数として渡す:

    print('2 +', integer, '=', rslt) 
    

    は、私は、文字列を使用してそれを行うだろう

    +0

    彼は質問のタイトル – murgatroid99

    +0

    でのpython 3右は、なぜ私はというだけでコンマ以外の書式文字列を使用する必要があります言いましたか? – Rabcor

    +0

    コンマで書式文字列を使用する主な理由は、WYSIWYG(出力が '2 + {} = {} ''からすぐにわかるようになり、単純なケースでもより多くの制御ができます。余分なスペースはカンマで区切ります)。あまり重要でない理由は、少なくとも動的な値を使って書式設定を使いやすくし、国際化を容易にし、Python 2.xと3.xの間で移植性を高めることです。 ( 'print(1,2)'と書くと、3.xでは '1 2'、2.xでは'(1,2))になります。 – abarnert

    答えて

    12

    あなたは文字列に整数に変換する必要があります書式設定:

    print('2 + {} = {}'.format(integer, rslt)) 
    
    +0

    ありがとう!それも私のためにすべてに答えた:) – Rabcor

    6

    問題は、入力を整数に変換することではありません。問題は、' = ' + rsltと書いたときに、文字列に整数を追加しようとしていて、そのことができないということです。

    あなたはいくつかの選択肢があります。あなたは、文字列の残りの部分にそれらを追加するために戻って文字列にintegerrsltを変換することができます:

    print('2 + ' + str(integer) + ' = ' + str(rslt)) 
    

    それとも、単に複数のものを印刷することができます:

    print('2 + ', integer, ' = ', rslt) 
    

    や書式文字列を使用します。

    print('2 + {0} = {1}'.format(integer, rslt)) 
    
    +0

    ありがとう!私のためにすべてに答えた。 – Rabcor

    6

    Python 3.x - inputは、Python 2.xのraw_inputと同等です。

    あなたは、このためのフォーマット文字列を使用しなければならない - と、いくつかのエラーチェックを実行します。

    try: 
        integer = int(input('something: ')) 
        print('2 + {} = {}'.format(integer, integer + 2)) 
    except ValueError as e: 
        print("ooops - you didn't enter something I could make an int of...") 
    

    別のオプション - ビット複雑に見えるインタプリタは値でその最良の推測を取ることができるようにすることです、そして上げますintfloatないもの:これは、インスタンスのための入力として、複素数またはリストやタプルを望んでいたならば、もう少し柔軟性を可能に

    ​​

    ...

    +0

    を除いて構文エラー? – Rabcor

    +0

    @ user2115045あなたは本当ですか? (編集:はい - そこに最後の ')'を貼り付けませんでした '¬...) –

    0

    値を整数に変換する場合は、組み込み関数intを使用し、値を浮動小数点数に変換するには、組み込み関数floatを使用します。次に、組み込み関数strを使用して、これらの値を文字列に戻すことができます。あなたは、このようなコードでこれらの関数を使用しますので、機能にinputを返す文字列を構築しました:

    integer = input("Number: ") 
    rslt = int(integer)+2 
    print('2 + ' + integer + ' = ' + str(rslt)) 
    double = input("Point Number: ") 
    print('2.5 + ' +str(double)+' = ' +str(float(double)+2.5) 
    
    0
    integer = int(input("Number: ")) 
    print('2 + %d = %d' % (integer, integer + 2)) 
    
    double = float(input("Point Number: ")) 
    print('2.5 + %.2f = %.2f' % (double, double + 2.5)) 
    
    関連する問題