Python のデータ型と演算子

PythonBeginner
オンラインで実践に進む

はじめに

Python の世界へようこそ!この実験では、Python プログラミングの基礎となる「データ型」と「演算子」について学びます。数値、テキスト、そして真偽値(True/False)の扱い方を探求していきましょう。また、計算や比較の方法についても学習します。この実験は初心者向けに設計されているため、ステップバイステップで進めていきます。すべてが初めてでも心配いりません。私たちがガイドします。それでは始めましょう!

Python における数値の理解

このステップでは、Python の主要な 2 つの数値型、整数(integer:整数)と浮動小数点数(float:小数を伴う数)について見ていきます。

まず、Python インタプリタを開きます。これは Python コードを 1 行ずつ実行できるツールです。初心者の方にはデスクトップインターフェースが使いやすいでしょう。ターミナルの操作に慣れている場合は、左上の「Terminal」タブに切り替えて操作することも可能です。どちらの方法でも同じ結果が得られます。

Terminal Tab

ターミナルに次のように入力してください:

python

>>> と表示されれば、Python がコマンドを受け付ける準備が整った合図です。

Python Interpreter

まずは 整数(integers) から始めましょう。整数は -1、0、100 のような端数のない数値です。

books = 5
print(f"I have {books} books.")
type(books)

出力結果:

I have 5 books.
<class 'int'>

ここでは、books という名前の変数を作成し、値 5 を代入しました。変数は情報を入れておく「箱」のようなものです。print() 関数は結果を画面に表示します。f-string(引用符の前に f が付いていることに注目してください)を使うと、テキストの中に変数の値を簡単に埋め込むことができます。type() 関数は、booksint(整数)であることを教えてくれます。

次に、浮動小数点数(floating-point numbers)、通称 float を見てみましょう。これらは小数点を含む数値です。

price = 19.99
print(f"This book costs ${price}.")
type(price)

出力結果:

This book costs $19.99.
<class 'float'>

変数 price は小数点を持っているため、float 型となります。

では、簡単な計算をしてみましょう。Python は計算機としても使えます!

quantity = 3
total_cost = price * quantity  ## 合計金額を計算します
print(f"The total cost for {quantity} books is ${total_cost:.2f}.")

出力結果:

The total cost for 3 books is $59.97.

* 演算子を使って pricequantity を掛け合わせました。f-string 内の :.2f は、数値を小数点以下 2 桁まで表示するようにフォーマットしています。# 記号はコメントの開始を意味します。コメントは人間向けのメモであり、Python はこれを無視します。

自由に自分で計算を試してみてください!変数に新しい値を再定義して、結果がどう変わるか確認してみましょう。

テキストの操作(文字列)

このステップでは、Python でテキストを表現するために使用される「文字列(strings)」について学びます。

Python インタプリタで文字列変数を作成してみましょう。文字列は常にシングルクォート(')またはダブルクォート(")で囲む必要があります。

name = "Alice"
print(f"Hello, {name}!")
type(name)

出力結果:

Hello, Alice!
<class 'str'>

str データ型は Python における文字列を表します。

文字列は、さまざまな方法で結合したり操作したりできます。一般的な操作をいくつか試してみましょう。

## 2 つの文字列を結合する(連結)
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name)

出力結果:

John Doe
## 文字列を繰り返す
cheer = "Go! " * 3
print(cheer)

出力結果:

Go! Go! Go! 
## 文字列の長さを取得する
print(len(full_name))

出力結果:

8
## 個別の文字にアクセスする
print(full_name[0])  ## 最初の文字を取得
print(full_name[-1]) ## 最後の文字を取得

出力結果:

J
e

重要:Python は 0 から数え始めます。そのため、最初の文字のインデックス(位置)は 0 になります。インデックス -1 は、最後の文字を指定する便利なショートカットです。

Python の文字列は 不変(immutable) です。これは、一度作成されると内容を変更できないことを意味します。文字列内の一部の文字だけを書き換えることはできません。ただし、既存の文字列を元に新しい文字列を作成することは可能です。

message = "Hello World"
uppercase_message = message.upper()
print(uppercase_message)

出力結果:

HELLO WORLD
lowercase_message = message.lower()
print(lowercase_message)

出力結果:

hello world

.upper().lower() メソッドは新しい文字列を作成します。元の message 変数の内容は変わりません。

真か偽か?(ブール値)

このステップでは、True(真)または False(偽)のいずれかの値しか取らない「ブール値(boolean values)」について学びます。これらはプログラム内で意思決定を行うために不可欠です。

ブール値の変数を作成してみましょう。Python では TrueFalse の先頭は大文字で書く必要があることに注意してください。

is_learning = True
is_finished = False
print(f"Are we learning Python? {is_learning}")
type(is_learning)

出力結果:

Are we learning Python? True
<class 'bool'>

bool データ型はブール値を表します。

比較演算子(Comparison operators) は 2 つの値を比較するために使用され、結果は常にブール値(True または False)になります。

x = 5
y = 10
print(x < y)   ## x は y より小さいか?
print(x == y)  ## x は y と等しいか?
print(x != y)  ## x は y と等しくないか?

出力結果:

True
False
True

よく使われる比較演算子には、==(等しい)、!=(等しくない)、<(より小さい)、>(より大きい)、<=(以下)、>=(以上)があります。

文字列を比較することもできます。Python はアルファベット順で比較を行います。

name1 = "Alice"
name2 = "Bob"
print(name1 < name2)  ## アルファベット順で "Alice" は "Bob" より前か

出力結果:

True

論理演算子(Boolean operators)and, or, not)は、ブール式を組み合わせるために使用されます。

a = True
b = False
print(a and b)  ## a と b の両方が True の場合のみ True
print(a or b)   ## a または b のどちらか(あるいは両方)が True なら True
print(not a)    ## a の反対(反転)

出力結果:

False
True
False

これらの演算子を使うことで、プログラムにより複雑な条件を作成することができます。

データ型間の変換

あるデータ型の値を別の型に変換する必要がある場合があります。これは「型変換」または「キャスト(casting)」と呼ばれます。

文字列を数値に変換してみましょう。ユーザーからの入力は常に文字列として読み込まれるため、これは非常によく使われる操作です。

age_string = "25"
age_number = int(age_string) ## 文字列を整数に変換
print(age_number + 5)

出力結果:

30
price_string = "1.99"
price_float = float(price_string) ## 文字列を浮動小数点数に変換
print(price_float * 2)

出力結果:

3.98

整数への変換には int() を、浮動小数点数への変換には float() を使用します。注意点として、数値に見えない文字列(例:int("hello"))を変換しようとすると、Python はエラーを表示します。

また、str() 関数を使って数値を文字列に変換することもできます。

count = 50
count_string = str(count)
print("The count is " + count_string)

出力結果:

The count is 50

最後に、bool() を使って値をブール値に変換できます。ルールはシンプルです:

  • 0、空の文字列("")、およびいくつかの特別な空のオブジェクトは False になります。
  • それ以外のほとんどすべて(0 以外の数値、空でない文字列など)は True になります。
print(bool(100))      ## 0 以外の数値
print(bool(0))        ## ゼロ
print(bool("Hello"))  ## 空でない文字列
print(bool(""))       ## 空の文字列

出力結果:

True
False
True
False

型変換は、異なるデータ型を組み合わせて動作させるための強力なツールです。

すべてを組み合わせる

最後のステップとして、これまでに学んだすべてを盛り込んだ小さなプログラムを書いてみましょう。

LabEx VM の WebIDE タブに切り替えてください。WebIDE は、Python スクリプトを記述して保存できるオンラインコードエディタです。

WebIDE online code editor

WebIDE のインターフェースに関する詳細は、LabEx VM WebIDE ドキュメントを参照してください。

次のコマンドを使用して、~/project ディレクトリに user_info.py という名前の新しいファイルを作成します。

touch ~/project/user_info.py

左側のファイルエクスプローラーで新しいファイルをクリックし、エディタで開きます。

以下のコードをコピーしてファイルに貼り付けてください:

## データ型を練習するためのシンプルなプログラム

## ユーザー入力を取得(入力は常に文字列になります)
name = input("Enter your name: ")
age_str = input("Enter your age: ")

## 年齢を整数に変換
age = int(age_str)

## 簡単な計算を実行
years_to_100 = 100 - age
is_adult = age >= 18

## f-string を使って出力メッセージを作成
output = f"""
--- User Information ---
Hello, {name}!
You are {age} years old.
You will be 100 years old in {years_to_100} years.
Are you an adult? {is_adult}
--- End of Report ---
"""

## 最終結果を表示
print(output)

このスクリプトは input() 関数を使って名前と年齢を尋ねます。input() は常にユーザーの入力を文字列として返すため、int() を使って年齢を数値に変換する必要があります。また、出力にはトリプルクォート(""")を使用した複数行の f-string を使っています。これは、複数行にわたるテキストを整形するのに非常に便利な方法です。最後に、計算を行い、整形されたサマリーを表示します。

ファイルを保存し(自動保存されるはずです)、ターミナルから次のコマンドで実行します:

python ~/project/user_info.py

プログラムが名前と年齢を尋ねてきます。入力すると、サマリーが表示されます。

Enter your name: Alice
Enter your age: 25

--- User Information ---
Hello, Alice!
You are 25 years old.
You will be 100 years old in 75 years.
Are you an adult? True
--- End of Report ---
Program output example

異なる入力値でスクリプトを何度も実行して、出力がどのように変わるか試してみてください!

まとめ

この実験の完了、おめでとうございます!あなたは Python プログラミングの世界への大きな第一歩を踏み出しました。

この実験では、Python の基礎となる構成要素について学びました:

  • 数値型: 整数(int)と浮動小数点数(float)の扱い方を学びました。
  • 文字列(str): テキストの作成と操作方法を学びました。
  • ブール値(bool): TrueFalse の値、およびそれらを使った比較について探求しました。
  • 演算子: 算術演算(*)、比較演算(==, <)、論理演算(and, or)を使用しました。
  • 型変換: 文字列を数値に変えるなど、異なるデータ型の間で変換を行う練習をしました。

これらの概念は、今後 Python で行うすべてのことの土台となります。練習を続け、Python インタプリタでいろいろと実験することを恐れないでください。それが上達への近道です。お疲れ様でした。ハッピーコーディング!