2017-04-05 3 views
1

Python関数で2つの変数を定義し、それらを明示的にfloatと定義したいとします。しかし、関数のパラメータでそれらを定義しようとすると、構文エラーが表示されます。明示的にPython関数でデータ型を定義する

希望の出力を得るのを手伝ってください。ここで

コードです:

def add(float (x) , float (y)) : 
    z = (x+y) 
    return (print ("The required Sum is: ", z)) 

add (5, 8) 
+2

いいえ、あなたはPythonでこのようなことをすることはできません。なぜあなたはそれを望んでいますか? –

+0

[その他の言語には「変数」があり、Pythonには「名前」があります(http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables)。この重要なトピックの詳細を知りたい場合は、この記事が参考になります:[ベータ版の名前と値についての事実と神話](http://nedbatchelder.com/text/names.html)、SOベテランのNed Batchelder 。 –

答えて

0

変更機能z = float(x+y)z = float(x)+ float(y)

にこの時点では、私たちはただ一緒に数字を追加していると仮定します。

私たちは常にフロートで作業していることを確認しましょう。引数を一緒に追加する前に、引数を浮動小数点数に変換してください。これはfloat()関数で行うことができます。

OK]をクリックしてのは関係なく、それに来るが、フロート

def add(x, y): 
     z = float(x)+ float(y) 
     print "The required Sum is: {}".format(z) 
     return z 

    add (5, 8) 

しかし、どのような& bが文字列である場合に変換しているものを確認してませんしましょう??その世話をする必要があります。

ところで
def add(x, y) 
    try: 
     a = float(x) 
     b = float(y) 
    except ValueError: 
     return None 
    else: 
     return True 

、Pythonでデータ型をチェックする必要はありません、それははるかに簡単に作る

def addSum(x,y): 
    return x+y 

addSum(2.2, 5.6) 
7.8 
addSum(float(2), float(5)) 
7.0 
addSum(2, 5) 
7 
addSum("Hello ", "World!!") 
'Hello World' 
3

Pythonはとタイプではなく、名前を関連付け強く型付けされた動的言語であり、 。呼び出し元が特定の型のデータを提供するようにするには、関数内に明示的なチェックを追加するしかありません。

かなり最近type annotationsが言語に追加されました。引数と戻り値の型を含む構文的に正しい関数仕様を書くことができます。あなたの例のための注釈付きバージョンはが、これは構文のみあるといえ

def add(x: float, y: float) -> float: 
    return x+y 

注意、でしょう。 Pythonインタプリタの何もこれの何も動作しません。彼らはまだ初期段階にありますが、あなたの目標を達成するのに役立つmypyのような外部ツールがあります。

関連する問題