web-dev-qa-db-ja.com

pythonで変数の型、Cスタイルを宣言する方法

私はプログラミングの学生で、先生はCからプログラミングのパラダイムを教え始めています。宿題をPythonで送っても大丈夫だと言っています(宿題の方が簡単で早いです)。そして、私はコードをプレーンCのように可能な限り近くにしたいと思います。質問は、Cで行うようにpythonで変数のデータ型を宣言するにはどうすればよいですか。例:

int X,Y,Z;

私はこれをPythonでできることを知っています

x = 0
y = 0
z = 0

しかし、それは多くの作業のようであり、pythonはCよりも簡単/高速です)のポイントを逃しています。それで、これを行うには最短の方法ですか?PS iは知っています。しないする必要があるほとんどの場合pythonでデータ型を宣言しますが、それでも実行したいので、コードはクラスメートのようにできるだけ見えるようにします。

Cの意味での「宣言」も「変数」も存在しないため、Pythonで変数を宣言する方法はありません。これは、同じオブジェクトにbind 3つのnamesになります。

x = y = z = 0

Python 3.6から始めて、次のように変数と関数の型を宣言できます。

explicit_number: type

または機能について

def function(explicit_number: type) -> type:
    pass

この投稿のこの例: Python 3.6 で静的型チェックを使用する方法はより明示的です

from typing import Dict

def get_first_name(full_name: str) -> str:
    return full_name.split(" ")[0]

fallback_name: Dict[str, str] = {
    "first_name": "UserFirstName",
    "last_name": "UserLastName"
}

raw_name: str = input("Please enter your name: ")
first_name: str = get_first_name(raw_name)

# If the user didn't type anything in, use the fallback name
if not first_name:
    first_name = get_first_name(fallback_name)

print(f"Hi, {first_name}!")

typingモジュールの ドキュメントを参照してください

22
Cam T

あなたが実際にこれを行うことができると誰も指摘していないことに私は驚いています:

_decimalTwenty = float(20)
_

多くの場合、変数はいつでも再入力できるため、変数を入力しても意味がありません。ただし、上記の例では便利な場合があります。 int()long()float()complex()など、このような他の型関数があります。

6
DisplayName

Pythonは可能性があるですが、Cよりも簡単/高速であるとは限りません。

作成した別のステートメントを明確にするために、「データ型を宣言する必要はありません」-再宣言する必要がありますできないデータ型を宣言します。変数に値を割り当てると、値のタイプが変数のタイプになります。それは微妙な違いですが、それでも違います。

6
KevinDTimm

Python=のすべてはオブジェクトであり、クラス、クラスインスタンス、関数のコード、モジュールと呼ばれる関数のライブラリ、整数、浮動小数点数、文字列などのデータ値が含まれます。リストや辞書のようなコンテナ。識別子名(文字列オブジェクト)と現在存在するオブジェクトとの関連付けを追跡するために使用される辞書のような(またはマッピング)コンテナである名前空間も含まれます。オブジェクトは、 2つ以上の識別子が同じオブジェクトに関連付けられる場合の複数の名前。

識別子とオブジェクトの関連付けは、「オブジェクトへの名前のバインド」と呼ばれます。これは、Pythonの変数宣言に最も近いものです。名前はさまざまな時点でさまざまなオブジェクトに関連付けることができるので、アタッチするデータのタイプを宣言しても意味がありません。多くの場合、<variable> = 0def <funcname>で始まる関数など、オブジェクトの値の名前と定義の両方を指定して、オブジェクトを作成する1行またはコードブロックで行われます。

これがどのように役立つか。

4
martineau

ただし、開発を容易にするために、実際には強力な型と変数定義が存在します。これらのことを事前に考えていなければ、コードを設計および開発するのではなく、単にハッキングするだけです。

緩やかなタイプは単純に、複雑さを「設計/ハック」時から実行時にシフトします。

2
Carl Pickering

簡単に言うと、pythonでの入力はヒントのみに役立ちます。

x: int
y: int 
z: int
0