Pythonの基礎文法について学習する方法
本日も、python関係の記事を記載したいと思います。当分CGはお休みです。
工学系エンジニアの私にとって、プログラミング勉強する上でやはり大事だったのは、「Python基本構文の理解は必須!」でした。そのため、
今回も、私と同じような立場の人のため、少しでも役に立てばと思い。
記事にしたいと思います。
★Python基礎文法について
ここから、python基礎文法について、ザクっとまとめて行きます。
覚悟してください。むしろこの記事は、全部を読むというよりも、
必要な部分について導入部分を理解するような役立て方をしてください。
正直、全部読むと眠くなります。
● 変数とデータ型の基礎
Pythonにおける変数とデータ型の基本的な概念と使い方について詳しく解説します。変数は値を格納するための箱で、データ型はその値の性質を定義します。何を言っているかというと、以下に例を示します。
変数の例:
# 整数型の変数
age = 25
print(age) # 出力: 25
# 文字列型の変数
name = "John"
print(name) # 出力: John
# リスト型の変数
numbers = [1, 2, 3, 4, 5]
print(numbers) # 出力: [1, 2, 3, 4, 5]
上記の例では、変数は値を格納するための箱として利用されています。例えば、age変数には整数の値 25 を格納し、name変数には文字列の値 "John" を格納しています。また、numbers変数にはリストというデータ型の値
[1, 2, 3, 4, 5] を格納しています。
データ型の例:
# 整数型 (int)
age = 25
print(type(age)) # 出力: <class 'int'>
# 文字列型 (str)
name = "John"
print(type(name)) # 出力: <class 'str'>
# リスト型 (list)
numbers = [1, 2, 3, 4, 5]
print(type(numbers)) # 出力: <class 'list'>
データ型は、変数に格納される値の性質を定義します。例えば、整数型 (int) は整数値を表し、文字列型 (str) は文字列を表します。リスト型 (list) は複数の値をまとめて格納することができるデータ型です。変数のデータ型を知ることは、適切な操作や処理を行う上で重要です。
●変数の宣言と初期化の方法
変数名を指定し値を代入することで変数を宣言し、初期値を与えます。
以下のコードは、変数「count」を宣言し、初期値として「0」を代入する例です。
count = 0
他にもリストの初期値指定も多用します。
やり方は単純で、角括弧 [] 内に要素を列挙します。
以下にリストの初期値を指定する例を示します。
numbers = [1, 2, 3, 4, 5]
上記の例では、numbers という変数を宣言し、初期値として整数の要素を持つリストを代入しています。リスト内には要素として1から5までの整数が含まれています。
他にも、空のリストを作成する場合は、初期値として何も指定せずに空の角括弧 [] を使用します。
my_list = []
この例では、my_list という変数を宣言し、空のリストを初期値として代入しています。
●整数、浮動小数点数、文字列、リスト等主要なデータ型の特徴と操作方法
以下にザクっと各型の使い方を示します。
①.整数(int): 整数を表現、数値計算に使用。※算術演算子で計算が可能。
x = 5
y = 3
print(x + y) # 出力: 8
print(x * y) # 出力: 15
※算術演算子とは
加算演算子 (+): 2つの数値を足し合わせます。
減算演算子 (-): 左の数値から右の数値を引きます。
乗算演算子 (*): 2つの数値を掛け合わせます。
除算演算子 (/): 左の数値を右の数値で割ります。
整数除算演算子 (//): 左の数値を右の数値で割り、整数の結果を返します。
剰余演算子 (%): 左の数値を右の数値で割った余りを返します。
べき乗演算子 (**): 左の数値を右の数値の累乗として計算します。
別途下記で説明するので、とりあえず割愛です。
②.浮動小数点数(float): 実数を表現し、小数点以下の精度を持つ。
数値計算や科学計算に適している。
pi = 3.14159
radius = 2.5
area = pi * (radius ** 2)
print(area) # 出力: 19.6349375
③.文字列(str): 文字の連続データ。文字列連結や長さ取得等の操作可能。
不変性を持ち、インデックスを用いた要素のアクセスが可能。
greeting = "Hello"
name = "Alice"
message = greeting + ", " + name + "!"
print(message) # 出力: Hello, Alice!
print(len(message)) # 出力: 13
④.リスト(list): 複数要素を順序付けて格納。追加・削除・変更が可能。
可変性を持ち、インデックスを用い要素のアクセスやスライスが可能。
numbers = [1, 2, 3, 4, 5]
print(numbers[2]) # 出力: 3
numbers.append(6)
print(numbers) # 出力: [1, 2, 3, 4, 5, 6]
numbers[1] = 10
print(numbers) # 出力: [1, 10, 3, 4, 5, 6]
●値の代入と変数の再代入に関する注意点
変数に値を代入すると、その値が変数に格納されます。当然ですが再代入すると、元の値は上書きされます。
以下に、値の代入と変数の再代入の注意点を示すコード例を示します。
# 値の代入
x = 5
print(x) # 出力: 5
# 変数の再代入
x = 10
print(x) # 出力: 10
# 値の代入と変数の再代入
y = 2
x = y
print(x) # 出力: 2
# 変数の再代入による上書き
y = 7
x = x + y
print(x) # 出力: 9
上記では、まず変数 x に初めて値 5 を代入。その後、変数 x を再代入し値 10 を格納します。また、別の変数 y の値 2 を変数 x に代入し、その後に変数 y の値を 7 に変更し、変数 x と y の値を足し合わせて再び変数 x に代入します。
これらの例から分かるように、値の代入では変数に値が格納されますが、再代入すると元の値は上書きされます。そのため、変数の値を更新する際には元の値や他の変数の値に注意しながら操作する必要があります。
●型変換とその活用法
型変換というテクニックをご紹介します。
型変換は、あるデータ型から別のデータ型に変換することを指します。
例えば、文字列を整数に変換する際には int() 関数を使用します。
num_str = "10"
num_int = int(num_str)
ここでは、文字列型の変数 num_str を整数型に変換し、num_int に代入しています。これにより、文字列 "10" が整数 10 に変換されます。
※型変換は、データの取得や計算、データ整形などで活用されます。
例えば、ユーザーからの入力を数値として扱う場合や、異なるデータ型のデータを組み合わせ計算する場合などに使用します。
また、逆の操作として、整数や浮動小数点数を文字列に変換する際には str() 関数を使用します。
num_int = 20
num_str = str(num_int)
ここでは、整数型の変数 num_int を文字列型に変換し、num_str に代入しています。これにより、整数 20 が文字列 "20" に変換されます。
型変換は、異なるデータ型のデータを相互に変換するための強力なツールであり、柔軟なデータ処理を実現する上で重要な役割を果たします。
※筆者が体験したの不具合事例として
例えば、age という変数(箱)に対し、その箱に入れるのは、25なのか、'25'なのかどっちを入れているのかちゃんと把握することが大事です。前者は、int(整数)であり、後者はsrc(文字列)です。
日本語に置き換えると、そんなの当然ですが、pythonは変数代入時この型を間違えると、数値の型が違う!っとよく関数に怒られます。当然全部暗記できる訳もないので、都度都度、デバックです。
print(type(*))を使用し、型を確認していきます。
また、エクセル等から、¥2,000など、¥マークや、カンマがついているものも、いきなり、int()にて変換しようにも、実は整数としては扱ってもらえません。¥2,000なら、例えば、replace関数や、strip関数を用いて、¥2,000→2000に置換することから始める必要があります。
●演算子の使い方とデータの操作方法
演算子は数値の計算や比較に使用され、データの操作ではメソッドやインデックス・スライスを利用して要素の追加、変更、削除などを行います。
これらの説明だけでは、頭に入らないので、例を用いて説明します。
【演算子の使い方】
算術演算子:
x = 5
y = 3
sum = x + y # 加算
difference = x - y # 減算
product = x * y # 乗算
quotient = x / y # 除算
remainder = x % y # 剰余
power = x ** y # べき乗
比較演算子:
x = 5
y = 3
is_equal = x == y # 等しいかどうか
is_not_equal = x != y # 等しくないかどうか
is_greater = x > y # より大きいかどうか
is_less = x < y # より小さいかどうか
is_greater_equal = x >= y # 以上かどうか
is_less_equal = x <= y # 以下かどうか
【データの操作方法】
文字列の操作:
message = "Hello, World!"
length = len(message) # 長さ取得
uppercase = message.upper() # 大文字に変換
lowercase = message.lower() # 小文字に変換
substring = message[7:12] # 部分文字列の取得
リストの操作:
numbers = [1, 2, 3, 4, 5]
length = len(numbers) # 要素数取得
numbers.append(6) # 要素の追加
numbers.remove(3) # 要素の削除
numbers[0] = 10 # 要素の変更
sublist = numbers[1:4] # スライスによる部分リストの取得
●変数のスコープと名前空間についての基礎知識
スコープ (Scope): 変数のスコープとは、その変数の有効範囲を示す
概念です。Pythonには以下のようなスコープがあります。
▲.グローバルスコープ (Global Scope): グローバルスコープは、プログラム全体で有効なスコープです。つまり、どこからでもアクセスできます。
x = 5 # グローバルスコープ
def my_function():
print(x) # グローバル変数へのアクセス
my_function() # 出力: 5
▲.ローカルスコープ (Local Scope): ローカルスコープは、
関数やブロック内で有効なスコープです。変数はその関数や
ブロック内で宣言された場合にのみ有効です。
def my_function():
y = 10 # ローカル変数
print(y)
my_function() # 出力: 10
print(y) # エラー: NameError - 変数 'y' はスコープ外
名前空間 (Namespace): 名前空間は、変数名とその値の関連付けを保持する領域です。名前空間はスコープに対応しており、それぞれのスコープ内で独立して存在します。
x = 5 # グローバル変数
def my_function():
x = 10 # ローカル変数
print(x)
my_function() # 出力: 10
print(x) # 出力: 5 - グローバル変数は別の名前空間で存在
ここで、my_function 内での x = 10 はローカルスコープの名前空間に存在する変数となり、関数外のグローバル変数 x とは違う関数として扱います。
● 制御フローと条件分岐の文法
【制御フロー】
■if文: if文は、指定した条件が真である場合にブロック内のコードを
実行します。
x = 5
if x > 0:
print("Positive number")
elif x == 0:
print("Zero")
else:
print("Negative number")
■forループ: forループは、指定された範囲やコレクション内の要素を
順番に処理します。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
■whileループ: whileループは、指定した条件が真である限り、
ブロック内のコードを繰り返し実行します。
count = 0
while count < 5:
print(count)
count += 1
【条件分岐】
■論理演算子: 複数の条件を組み合わせるために論理演算子を使用します。
x = 10
if x > 0 and x < 20:
print("x is between 0 and 20")
if x == 0 or x == 10:
print("x is either 0 or 10")
if not x > 100:
print("x is not greater than 100")
■三項演算子: 条件に応じ異なる値を代入するため三項演算子を使用します。
x = 5
result = "Positive" if x > 0 else "Negative"
print(result)
以上で基本的な文法について触れました。
別記事で、下記に触れたいと思います。
★ Pythonの関数とモジュールの活用について
★ 関数の定義と呼び出し方の基礎
To be continue
この記事が気に入ったらサポートをしてみませんか?