python基礎文法-2 基本データ型と変数

python基礎

変数とデータ構造(int, float, str, bool, None)

変数とは?

変数とは、データを格納するための名前付きの場所です。プログラム内で変数を使ってデータを保存し、後からそのデータを参照したり変更したりすることができます。Pythonでは、変数の宣言時にその型を指定する必要はなく、代入する値によって型が自動的に決まります。

例えば、x = 10というコードでは、変数xに整数の10を格納しています。xはその後、プログラム内で何度も使うことができ、xを使うことで値10を参照できます。変数はメモリ上に格納され、プログラムの実行中に必要なデータを保存する重要な役割を果たします。

変数の宣言と代入

x = 10            # 整数型(int)
y = 3.14          # 浮動小数点型(float)
name = "Alice"    # 文字列型(str)
flag = True       # 真偽値(bool)
nothing = None    # None(何もないことを表す特殊な値)

pythonでは、変数を宣言した際に、その値に応じたデータ型が自動的に決定されます。xには整数型(int)、yには浮動小数点型(float)、nameには文字列型(str)、flagには真偽値(bool)、nothingにはNone型がそれぞれ割り当てられます。pythonでは#を使うことでコメントを書くことができます。#を書いた後に書かれた文章は実行さず、エラーも出ません。

pythonの主なデータ型

データ型 説明
int 整数型 x = 10
float 浮動小数点型 y = 3.14
str 文字列型 name = "Alice"
bool 真偽値型 flag = True
None 特殊な型(何もないことを表す) nothing = None

Pythonのデータ型には、整数(int)、浮動小数点数(float)、文字列(str)、真偽値(bool)、およびNone型があります。これらの型は、Pythonがデータを格納する方法や操作を決定します。

# 各データ型を確認する
print(type(10))         # <class 'int'>
print(type(3.14))       # <class 'float'>
print(type("Alice"))    # <class 'str'>
print(type(True))       # <class 'bool'>
print(type(None))       # <class 'NoneType'>

上記のコードでは、type() 関数を使ってデータ型を取得し、その結果を print() 関数で表示しています。print() はデータを画面に出力するため、実行したときにそれぞれの変数の型(例えば intstr など)が表示されます。type() 関数は引数として渡した値のデータ型を返します。print() はその返り値を表示するため、型を確認することができます。

print()関数

print()は、Pythonで標準出力にデータを表示するための関数です。この関数を使うことで、変数や計算結果、文字列をコンソールに表示できます。

型変換(キャスト)

Pythonでは、異なるデータ型を相互に変換(キャスト)できます。型変換には、明示的な型変換と暗黙的な型変換があります。

明示的な型変換

明示的な型変換は、int()float()str()bool()などの関数を使って、意図的にデータ型を変換する方法です。

x = 10
print(float(x))  # 10.0
print(str(x))    # "10"
print(bool(x))   # True(0以外はTrue)

上記の例では、xという整数を浮動小数点数(float)に変換したり、文字列(str)に変換したり、真偽値(bool)に変換しています。整数xがゼロでないため、bool(x)Trueになります。

暗黙的な型変換(Pythonが自動で行う変換)

Pythonは、異なるデータ型の演算を行う際に自動的に型を変換します。例えば、整数型と浮動小数点型を加算すると、結果は浮動小数点数型になります。

x = 10   # int型
y = 3.5  # float型
z = x + y  # intとfloatの演算 → float型に変換される
print(z, type(z))  # 13.5 <class 'float'>

上記のコードでは、xが整数型で、yが浮動小数点型ですが、加算演算を行うと、Pythonは自動的にxを浮動小数点数に変換し、結果を浮動小数点型として返します。

文字列の基本操作

Pythonでは文字列(str型)を簡単に操作できます。文字列はシングルクォート(')またはダブルクォート(")で囲んで表現します。

s = "Hello, Python!"
print(s[0])  # H
print(s[-1]) # !
print(s[0:5])  # Hello

文字列のインデックスを使用して、特定の位置の文字を取得したり、スライスを使って文字列の一部分を取り出すことができます。

スライスの基本構文

スライスは、以下の構文を使って行います。

sequence[start:stop:step]

・start: 抽出を開始する位置(インデックス)。指定しない場合は、先頭(インデックス0)から開始されます。

・stop: 抽出を終了する位置(インデックス)。指定しない場合は、シーケンスの末尾まで抽出されます。

・step: 抽出する際の間隔。指定しない場合は、1となります。

スライスは、startからstopの間で、stepごとに要素を取り出します。

 

ほかにも以下のようなメソッドがあります。

メソッド 説明
len(s) 長さを取得 len("hello") # 5
s.upper() 大文字に変換 "hello".upper() # "HELLO"
s.lower() 小文字に変換 "HELLO".lower() # "hello"
s.replace("a", "b") 文字の置換 "banana".replace("a", "o") # "bonono"
s.split() 文字列を分割 "a,b,c".split(",") # ['a', 'b', 'c']
" ".join(list) リストを文字列に結合 "-".join(["a", "b", "c"]) # "a-b-c"
s = "banana"
print(len(s))  # 6
print(s.upper())  # "BANANA"
print(s.lower())  # "banana"
print(s.replace("a", "o"))  # "bonono"
print("a,b,c".split(","))  # ['a', 'b', 'c']
print("-".join(["a", "b", "c"]))  # "a-b-c"

これらのメソッドを使うことで、文字列の長さを取得したり、文字列の内容を変更したり、リストの要素を文字列に変換したりできます。

数値の演算(四則演算・剰余・累乗)

Pythonでは、数値型(intfloat)に対して基本的な算術演算を行うことができます。

a = 5
b = 3
print(a + b)  # 8
print(a - b)  # 2
print(a * b)  # 15
print(a / b)  # 1.666...
演算子 説明 結果
+ 加算 5 + 3 8
- 減算 10 - 4 6
* 乗算 7 * 2 14
/ 除算 9 / 2 4.5
// 切り捨て除算 7 // 2 3
% 剰余(余り) 7 % 3 1
** 累乗 2 ** 3 8

また、整数の除算や剰余、累乗の演算もサポートされています。

a = 10
b = 3
print(a // b)  # 3 (切り捨て除算)
print(a % b)   # 1 (剰余)
print(a ** b)  # 1000 (累乗)

//は切り捨て除算を、%は剰余を、**は累乗を求める演算子です。

変数のスコープ

変数のスコープとは、変数がどの範囲でアクセス可能か、つまり変数の有効範囲を意味します。Pythonには「グローバルスコープ」と「ローカルスコープ」という2つの主要なスコープがあります。

  • グローバル変数:プログラム全体でアクセス可能な変数です。グローバルスコープに定義された変数は、関数外でも使用できます。
  • ローカル変数:関数やブロック内で定義された変数で、関数内でのみ使用できます。関数外からはアクセスできません。

関数の導入

関数は、特定の処理をまとめて実行するための構造です。(python基本文法-5で詳しく説明します。)関数内で定義した変数は、その関数内でのみアクセスでき、外部からアクセスすることはできません。この関数内で定義された変数はローカル変数と呼ばれます。

global_var = "I'm global"

def my_function():
    local_var = "I'm local"
    print(local_var)
    print(global_var)

my_function()
print(global_var)
# print(local_var)  # エラー(関数外でアクセス不可)

このコードでは、global_varはグローバル変数で、関数外でもアクセス可能です。一方、local_varはローカル変数で、関数内でのみアクセス可能です。関数外でlocal_varを参照しようとするとエラーになります。

変数の命令規則

Pythonでは、変数名に関していくつかのルールがあります。これらを守ることで、コードがより読みやすく、理解しやすくなります。

  • 変数名にはアルファベット(大文字・小文字)、数字、アンダースコア(_)が使用できますが、数字で始めることはできません。
  • Pythonの予約語(ifforなど)は変数名として使用できません。予約語(キーワード)とは、Pythonの文法で特別な意味を持つ単語です。これらはPythonの制御構造や組み込み機能に関連しているため、ユーザーが変数名や関数名として使用することはできません。例えば、ifelseforwhiledefなどが予約語に該当します。予約語を変数名に使おうとすると、構文エラーが発生します。
  • 変数名は大文字と小文字が区別されます。例えば、Varvarは異なる変数です。
  • 変数名に意味を持たせることで、コードが理解しやすくなります。例えば、agenameなど、変数が何を表しているのかを示す名前にすることが推奨されます。
  • 定数(変更しない値)には大文字を使用し、複数の単語をアンダースコアで区切ることが一般的です(MAX_VALUEなど)。
my_variable = 10  # 正しい
1variable = 20    # エラー

予約語やキーワード(例えば、defclass)は使用できません。

def = 10  # エラー('def'は予約語)

また、PEP 8というPythonのスタイルガイドに従うと、コードの一貫性と可読性が高まります。PEP 8では、変数名に関しては小文字とアンダースコアを使用し、定数はすべて大文字で書くことが推奨されています。

MAX_VALUE = 100  # 定数は大文字

 

 

この章では、Pythonの基本的なデータ型と変数について詳しく説明しました。次の章では、制御構造(条件分岐・ループ)について学んでいきましょう!

error: Content is protected !!
タイトルとURLをコピーしました