スキルアップ

Python入門:変数とデータ型の基本と文字列・数値操作

はじめに

Pythonの学習に限った話ではないですが、
プログラミングを学び始めると、まず出会うのが

  • 変数ってなに?
  • データ型?
  • 演算子?

という基本的な疑問です。

特に最初のうちは、

「文字列はダブルクォーテーションで囲む」
「数値と文字列の扱いの違いは何?」
「演算子の使い分けがわかりにくい」

と、ちょっとしたことでつまずきがちです。

私自身も、はじめてプログラミング言語を学び始めた頃は
「この式はなぜこうなるの?」
と、「変数」周りで混乱することが多くありました。

しかし、プログラミングをしていくうえで
この「変数」周りについては避けては通れない道です。

この記事では、私が実際にPythonで学んだ

  • 変数とデータ型の基本
  • 数値や文字列の演算
  • 入力の受け取りや文字列整形

といった、Pythonの基礎中の基礎を
わかりやすくまとめています。

この記事はこんな方におすすめです!

  • Pythonの変数やデータ型の扱い方を
    基本から理解したい方
  • 文字列や数値をどう操作するのか、
    実際のコードと一緒に知りたい方
  • +* などの演算子を
    どう使えばいいか迷っている方
  • f-string や ヒアドキュメントといった
    便利な記法を学びたい方


第1章:Pythonの変数と基本データ型

変数とは

プログラミングにおいて、
変数は値を保存する「箱」のようなものです。

Pythonで特徴的なのは、
型を指定せずにそのまま代入できる点です。

たとえば、

x = 10       # 整数を代入
y = "Hello"  # 文字列を代入

ここで、xには整数、yには文字列が入りますが、
Pythonには変数の型を事前に宣言する必要はありません。

これを動的型付けと呼びます。


基本データ型:int, float, str, bool

Pythonでよく使う基本的なデータ型は以下の通りです:

データ型説明
int整数10, -5, 0
float浮動小数点数(小数を含む数)3.14, -0.001
str文字列"hello", 'Python'
bool真偽値(True/False)is_valid = True

それぞれの型に応じて、扱える演算や操作も変わります。


型の自動切り替えと再代入

Pythonでは、変数に別の型の値を代入しても
問題なく動作
します。

たとえば、

a = 100        # まず整数
a = "abc"      # 文字列に変更OK

このように、変数に入れるデータ型を意識せず扱えるのは、
動的型付けの強みです。

しかし、どのような値でも入れることができるので
バグ(プログラムの欠陥)の要因に
つながりやすくなることもあります。

プログラムを作るときには、変数には
現在どのようなデータが入っているか
を意識しながら作っていくことが大切です。


キーボード入力の受け取り:input()関数

ユーザーから文字列入力を受け取る際は、input()を使います。

msg = input("何か入力してください:")
print("あなたが入力したのは:" + msg)

このプログラムでは、
ユーザーに「何か入力してください:」と表示され、
ユーザーがEnterを押すまで入力された内容が、
変数 msg に代入されます。

その後、
「あなたが入力したのは:"実際に入力された内容"」として
表示がされるといった処理が実施されます。

ただし、input()が受け取るのは常に文字列になります。
入力された内容を数値として扱う場合は型変換が必要です。

num = int(input("数字を入力してください:"))
print(num + 10) #これは正常に実行される
num = input("数字を入力してください:"))
print(num + 10) #これは実行時エラーになる

エラーになる場合は、"10" + 5 といった状態になっており
文字列と数値の演算は、想定されていないため
実行時にエラーとなってしまいます。

"10" は人間から見れば数値なのが、一目でわかりますが
Pythonにおいては、引用符(「’」や「"」)で
囲まれたものは文字列として
数値とは厳格に区別されるので注意が必要です。

正常に実行されている行は、
int()"10"10として数値に変換しているので
問題なく実行されるという仕組みになります。


第2章:数値演算と変数の扱い

Pythonでは、数値や変数に関する基本操作が自由で直感的です。

ここでは 数値リテラルの扱い方演算子の使い方
そして便利な 代入方法複合代入 を中心にまとめていきます。


数値リテラルは引用符で囲まない

数値(整数や小数)は 引用符なし で表します。

たとえば、

a = 42       # int
b = 3.14     # float

これに対し、"42" とすると 文字列型(str) になり、
数値としての計算できなくなるので注意が必要です。


算術演算子の基本

Pythonで使える演算子は以下の通りです。

記号意味
+加算(足し算)
-減算
*乗算
/除算(結果は常に float)
//切り捨て除算(Floor)
%余剰(剰余)
**べき乗(指数)

例として、

print(7 / 2)    # 3.5
print(7 // 2)   # 3
print(7 % 2)    # 1
print(2 ** 3)   # 8
  • / は浮動小数点を返す
  • // は結果を小さい方の整数へ切り捨て
  • % は除算の結果の余りの値
  • ** は累乗

複合代入演算子の便利さ

数値の入った変数の値に対して、追加で数値を更新する際に
x = x + 3のような書き方が基本ですが、
複合代入演算子を使うことで、次のような書き方が可能です。

x = 5
x += 3   # x = x + 3
x *= 2   # x = x * 2

このような複合代入を使うと、コードがすっきりします。

複合代入演算子意味
+=x = x + 3ならx += 3
-=x = x - 3ならx -= 3
*=x = x * 3ならx *= 3
/=x = x / 3ならx /= 3

アンパック代入

Pythonでは変数を同時に宣言、代入することができます。

それをアンパック代入と呼び、以下のように利用します。

a, b, c = 1, 2, 3
#aには1
#bには2
#cには3

第3章:文字列の操作とリテラルのテクニック

Pythonの文字列は非常に柔軟で、日常的な操作から
高度な整形までさまざまな機能があります。

この章では、文字列を扱うための
基本となるポイントごとに紹介していきます。


文字列リテラルと演算(+, *

文字列は クォーテーションで囲む 必要があります。
(例:"hello" または 'hello'

文字列では一部の演算子の利用が可能で、
+ は文字列の結合* は指定回数の繰り返しを行います。

a = "Hello"
b = 'World'
greeting = a + " " + b  # "Hello World"
echo = "ha" * 3         # "hahaha"

エスケープシーケンス(\n, \t, \\, \', \"

文字列内に改行やタブ、特殊記号を含めたいときに使います。

含めたい特殊記号の前に
「\(バックスラッシュ)」をつけることで
含めることができるようになります。
※Windows環境では「¥」が「\」と同意味として
用いられることもあります。

text = "Line1\nLine2\n\tIndented"
quote = "She said, \"Hello!\""
path = "C:\\Users\\nico"

ヒアドキュメント(複数行文字列)

''' または """ を用いることで、
複数行の文字列を簡潔に記述できます。

doc = """
This is a multi-line string.
It preserves line breaks.
"""
doc = "通常の引用符で #この行でSyntaxErrorとなる
複数行の文字列は
記述できない"

ヒアドキュメントの文字列を表示する場合など、
意図しない先頭・末尾の空白や改行が含まれることもあります。

その場合、ヒアドキュメントや入力値の
不要な空白を取り除くには、.strip()が便利です。

raw = """
    Hello
    World
"""
clean = raw.strip()

.strip()は前後の空白・タブ・改行を削除します。


文字列リテラルの自動結合

複数行にまたがる文字列リテラルを括弧内で改行すると、
自動で結合されます。

long_str = ("A"
            "BCDE"
            "FG") #ABCDEFGとして扱われる

改行を気にせずつなげられる便利な書き方です。


f‑stringとフォーマット指定子

f-string (f"...")は、
変数を型指定付きで埋め込むのに便利です。

name = "nico"
age = 27
pi = 3.14159265
print(f"My name is {name}, age {age}.") [st-br /]#My name is nico, age 27.
print(f"{pi:.2f}") #3.14

{pi:.2f}のように書くと、
小数点以下2桁にフォーマットされます。
この時の2fをフォーマット指定子といい、
表示形式のフォーマットを指定することができます。

数値のフォーマット指定子

指定子意味と用途
d10進整数(デフォルト)、例:{num:05d} → 5桁・ゼロ埋め整数
n10進数、ロケールに応じてカンマ区切りが可能(例:{num:n}
f固定小数点表記(例:{pi:.2f} → 3.14)
%パーセント表記+%表示(例:{ratio:.1%} → 67.5%)
e, E指数表記(1.23e+04など)
b, o, x, X2進(b)、8進(o)、16進小文字(x)・大文字(X)表記、#で接頭辞付き表示も可能
,3桁区切りにするカンマ付き(整数・小数とも可)
_アンスコ区切り(2025年+)

例:

n = 1234567
print(f"{n:,.2f}")    # "1,234,567.00"
print(f"{0.678:.1%}") # "67.8%"
x = 255
print(f"{x:05d}")     # "00255"print(f"{x:#04x}")    # "0xff"(0x付きゼロ埋め

文字列の整列指定

文字列の幅指定や整列を加工することも可能です。

name = "Py"
print(f"|{name:<6}|")   # 左寄せ: |Py    |
print(f"|{name:>6}|")   # 右寄せ: |    Py|
print(f"|{name:^6}|")   # 中央寄せ: |  Py  |

第4章:まとめ&次回予告

ここまで、Pythonの基礎中の基礎である

  • 変数
  • データ型
  • 数値や文字列の演算
  • 文字列の整形方法

について、私が実際に学んだ内容を紹介してきました。

Pythonはとても柔軟な言語で、
変数に型を明示しなくても使えたり、
f-stringを使えばコードが一気に読みやすくなったりと、
初心者でもスムーズにプログラミングの楽しさを
実感できる仕組みが整っています。

特に、文字列の整形や、複雑な計算式も
f-stringや演算子を駆使すれば短く、わかりやすく記述できます。

日常的な業務の自動化やツール作成にも
応用できそうな感覚を持てるようになってきました。

変数は奥が深く、完璧に理解しきるのは大変ですが、
プログラミングをするためには必ず使う要素です。

IT初心者で独学だと、イメージを掴むのが
難しいポイントでもありますが
「とにかく手を動かして、コードを実行してみること」
が一番の近道だと思っています。

次回は、Pythonの中でも非常に重要なデータ構造である

  • リスト(list)
  • タプル(tuple)
  • ディクショナリ(dict)
  • セット(set)

について学びます。

これらは、実際のアプリケーション開発でも
頻繁に扱うデータ構造になります。

データのまとまりを扱う力が身につくと、
Pythonでできることが一気に広がってきます。

▶次回の記事はこちら:
[現在準備中です!少々お待ちください!]

-スキルアップ