Pythonのデータ型と演算子

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

はじめに

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

Pythonの数値を理解する

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

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

Terminal Tab

ターミナルで以下のように入力してください。

python

>>> という表示が出れば、Pythonがコマンドを受け付ける準備ができています。

Python Interpreter

まずは整数(integer)から始めましょう。整数は -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 に注目してください)を使用して、テキストの中に books 変数の値を簡単に含めました。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でテキストを表現するために使用される「文字列(string)」について学びます。

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の文字列はイミュータブル(変更不可能)です。つまり、一度作成した文字列の内容を後から変更することはできません。ただし、既存の文字列から新しい文字列を作成することは可能です。

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 か?(ブール値)

このステップでは、True または False の値しかとらない「ブール値(boolean)」について学びます。これらはコード内で判断を下すために不可欠です。

ブール変数をいくつか作成してみましょう。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 データ型はブール値を表します。

比較演算子は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

ブール演算子andornot)は、ブール式を組み合わせるために使用されます。

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

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

データ型を変換する

時には、ある値を別のデータ型に変換する必要があります。これを型変換(type conversion)または「キャスト(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 になります。
  • それ以外はほとんどすべて True になります(0以外の数値、空ではない文字列など)。
print(bool(100))      ## 0以外の数値
print(bool(0))        ## 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 の値を探求し、比較に使用しました。
  • 演算子: 算術演算子(*)、比較演算子(==<)、ブール演算子(andor)を使用しました。
  • 型変換: 文字列を数値に変換するなど、異なるデータ型間の変換を練習しました。

これらの概念は、Pythonで行うすべてのことの基礎となります。練習を続け、Pythonインタープリタでどんどん実験してみてください。それが学習の最良の方法です。よく頑張りました!ハッピーコーディング!