ここではプログラミング言語”Python”の初心者向けに、基本の文法について説明していきます。Python入門の初心者向けの進み方は以下をクリック。(print関数やコメント機能などの基本機能について知らない方は先に読むことをお勧めします。)
この回では、Pythonで登場する型という概念について説明していきます。
キーワード:型、int、float、str、type、キャスト
Pythonのみならずプログラミング言語には型(type)というものが存在します。型とはその変数(オブジェクト)が表す固有の特徴のようなものです。Pythonの型は数多くありますが、基本レベルで知っておくべき型は、おおまかに分けると二種類あります。
数値型には、整数値を表す int 型や 小数を表す float 型などがあります。文字列型は、str 型と呼ばれます。
そして例外を除き、同じ型どうしでなければプログラムは機能しません。例えば、int 型が入っている変数にstr 型のデータを代入することができません。
なので、プログラムを作る途中で型は何なのかをしっかり意識する必要があります。
というのもPythonは変数を定義するさいに、型を宣言する必要がありません。Javaのようなプログラムの場合、変数を定義するときは以下のように型を提示する必要があります。
int a = 100 #Java
a = 100 #Python
String s = "string" #Java
s = "string" #Python
よって変数の中身はどのデータ型だったのか初めのうちは、覚えておく必要があるかもしれません。
プログラムを書いている途中で、そのデータが表す型を知りたいときがあります。そんなときに便利なのが type 関数です。以下のように使います。
type(型を知りたいデータ)
この関数は、Pythonにあらかじめ組み込まれている関数で、誰でも簡単に使うことが出来ます。
year = 2021
site = "tomolog"
print(type(year))
print(type(site))
#結果
<class 'int'>
<class 'str'>
使い方は、type()の()の中に型を知りたいデータを入れるだけです。()の中は、変数(変数について知りたい方はこちら→変数)でも数値でも基本的に何でもOKです。この例では、yearはint型, siteはstr型であることが分かりました。
先ほどPythonは基本的に同じ型同士でしかプログラムとして機能しないと言いましたが、キャストと呼ばれる機能を使うと強制的に機能させることができます。
ここではそれに使える基本的な関数を紹介します。
・str( ) ( )の中に文字列にしたいデータを入れると str 型へと変換してくれる
・int( ) ( )の中に整数に相当する文字列を入れると int 型へと変換してくれる
・float( ) ( )の中に小数に相当する文字列を入れると float 型へと変換してくれる
例えば、以下のようにするとエラーが出ます。
year = 2021
print("今年は"+year+"年です。")
#結果
TypeError: can only concatenate str (not "int") to str
これは、str型(””で囲まれたやつ)とint型(year)という型の異なるデータを結合しようとしたためです。
ここで str() を使って year(int型) をstr型にキャストするとうまく表示されます。
year = 2021
print("今年は"+str(year)+"年です。")
#結果
今年は2021年です。
また、小数を切り捨てたいというときに、int()を使うこともできます。
print(int(5.3))
print(int(7.8))
#結果
5
7
しかしキャストは、型を強制的に変換させる分、思ってもいないエラーが起きるときがあるので、キャストを使った方が分かりやすいといった場面でのみ使うようにしましょう。
1.データ型は主に二種類。
・数値型 → int(整数)と float(小数)
・文字列型 → str
2.type関数でデータの型を調べることが出来る。
・type(型を調べたいデータ)
3.型を強制的に変換する関数。
・str() → ()の中身を文字列に変換。
・int() → ()の中身を整数に変換。ただし中身が文字列の場合、数値に相当している必要あり。
・float() → ()の中身を小数に変換。ただし中身が文字列の場合、数値に相当している必要あり。
クイズは全部で5問あり、正解するごとに難しくなります。
復習してみてね。
Question
Your answer:
Correct answer:
Your Answers
This website uses cookies.