Kodrill

数値・文字列・リストの基礎

Python 3 エンジニア認定基礎試験

数値の演算/文字列のインデックス・スライス・演算/リストの基本

問題数
15 問
合格ライン
70%
実行して確認済み
15 問
この分野の要点を読む6 章・約 6 分。実行して確かめたコード例と、試験でよくある引っかけをまとめています

ログインなしで試す

無料の 5 問を、1問ごとに正誤と解説を見ながら解けます。解答は保存されません。

5 問を試す

無料登録して学習を記録する

学習履歴・ダッシュボード・ブックマーク・模試モードが使えます。

★ 残り 10 問はプレミアム会員限定です

無料プランでは先頭 5 問まで解けます。プレミアムなら全問題・苦手問題の復習・広告非表示が使えます。
料金プランを見る

問題と解説を見る (無料)

登録しなくても、次の5問は問題文と解説をそのまま読めます。

数値・文字列・リストの基礎の要点

内容の確認日: 2026-10-04

この分野は「Pythonチュートリアル」の第 3 章 (形式ばらない Python の紹介) に対応し、数値・文字列・リストという最も基本的な型の扱いが問われます。出題数が多く、// の切り捨ての向きや、スライスの終了位置のような細かい規則で差が付きます。

演算の結果を答える問題がほとんどなので、規則を覚えるだけでなく、実際の値を手で計算できるようにしておきましょう。

数値の演算

Python の主な算術演算子は次のとおりです。

・/: 割り算。割り切れても常に float を返す (6 / 2 は 3.0) ・//: 整数除算。結果を負の無限大の方向へ切り捨てる (床関数) ・%: 剰余。結果の符号は割る数 (右側) と同じになる ・**: べき乗。右から計算する (2 ** 3 ** 2 は 2 ** 9)

-7 // 2 は -3.5 を負の方向へ切り捨てて -4 になります (0 の方向の -3 ではありません)。-7 % 2 は -7 - (2 * -4) で 1 です。

round() は、ちょうど中間の値を偶数の方へ丸めます (銀行家の丸め)。round(2.5) は 2、round(3.5) は 4 です。また、2.675 のような小数は内部では 2 進数の近似値で表されるため、round(2.675, 2) は 2.68 ではなく 2.67 になります。

Python
print(17 / 3, 17 // 3, 17 % 3)print(6 / 2, type(6 / 2))print(-7 // 2, -7 % 2)print(2 ** 3 ** 2)print(round(2.5), round(3.5), round(2.675, 2))
ターミナル
python3 main.py
5.666666666666667 5 2
3.0 <class 'float'>
-4 1
512
2 4 2.67

int と float を混ぜて計算すると、結果は float になります。

文字列のインデックスとスライス

文字列は '...' か "..." で囲みます。複数行の文字列は """...""" で書けます。\n などのエスケープを無効にしたいときは、r"C:\name" のように前に r を付けた raw 文字列を使います。

文字列の 1 文字はインデックスで取り出します。インデックスは 0 から数え、負の数は末尾から数えます (-1 が最後の文字)。s[開始:終了] のスライスは、開始の位置を含み、終了の位置を含みません。開始・終了は省略でき、s[::2] のように 3 つ目に増分も書けます。

範囲外のインデックス (s[10] など) は IndexError になりますが、スライスは範囲外を指定してもエラーにならず、ある分だけを返します。

文字列は変更できない (イミュータブル) ので、インデックスで 1 文字だけ置き換えようとすると TypeError です。変更したいときは、新しい文字列を作ります。

Python
s = "Python"print(s[0], s[-1], s[1:4], s[:2] + s[4:])print(s[-3:], s[::2], len(s), s[2:100])print("Py" "thon", 3 * "ab" + "c")s[0] = "J"
ターミナル
python3 main.py
P n yth Pyon
hon Pto 6 thon
Python abababc

例外が発生: TypeError

"Py" "thon" のように、隣り合う文字列リテラルは自動的に連結されます (変数どうしではできません)。* は文字列の繰り返しで、+ より先に計算されます。

f-string と文字列のメソッド

f"..." (f-string) の中の { } には式を書け、その値が埋め込まれます。文字列のメソッドは、元の文字列を変えずに新しい文字列を返すので、続けて呼び出せます。

Python
name = "py"print(f"{name.upper()} は {len(name)} 文字")text = "  Hello Python  "print(text.strip().lower().replace("python", "world"))print(text)
ターミナル
python3 main.py
PY は 2 文字
hello world
  Hello Python

リストの基本

リストは [1, 2, 3] のように書き、文字列と同じくインデックスとスライスが使えます。文字列と違って変更できる (ミュータブル) ので、要素の代入や、スライスへの代入 (要素の置き換え・削除・挿入) ができます。

b = a は同じリストを指す名前を増やすだけで、a を変更すると b から見ても変わります。別のリストとしてコピーしたいときは a[:] (スライスは新しいリストを返す) を使います。

Python
nums = [1, 2, 3, 4, 5]nums[1:3] = [20, 30, 35]print(nums, len(nums))alias = numscopy = nums[:]nums[:] = []print(alias, copy)
ターミナル
python3 main.py
[1, 20, 30, 35, 4, 5] 6
[] [1, 20, 30, 35, 4, 5]

a, b = b, a + b のような多重代入では、右辺がすべて先に (代入前の値で) 計算されてから、まとめて代入されます。

比較と真偽値

Python では 1 < 2 < 3 のように比較を連鎖でき、(1 < 2) and (2 < 3) と同じ意味になります。if や while の条件では、False のほかに、0・0.0・空の文字列 ""・空のリスト []・None などが偽とみなされます。"0" や " " は空ではないので真です。

Python
a, b = 1, 2a, b = b, a + bprint(a, b)print(1 < 2 < 3, 3 > 2 > 2)print(bool(""), bool("0"), bool([]), bool(0.0))
ターミナル
python3 main.py
2 3
True False
False True False False

試験でよくある引っかけ

  • / の結果の型

    / は割り切れても float を返します。6 / 2 は 3.0 です。

  • 負の数の //

    -7 // 2 は -4 です。// は負の無限大の方向へ切り捨てます。

  • ** の結合順

    2 ** 3 ** 2 は右から計算して 2 ** 9 = 512 です。

  • round の丸め方

    round(2.5) は 2、round(3.5) は 4 です。中間の値は偶数の方へ丸めます。

  • スライスの終了位置

    s[1:4] は位置 1・2・3 の 3 文字です。終了の位置は含みません。

  • 文字列への代入

    s[0] = "J" は TypeError です。文字列は変更できません。

問題で確認する

この分野の問題を、解説つきで読めます (登録不要)。

出典・参考

コード例は、実際に実行して結果を確認しています。