プログラミング初心者のPython入門#7|数値と文字列

タイトル「Python入門#7数値と文字列」
この記事でわかること

・少数数点以下を丸める方法

・指数、2進数、8進数、16進数の書き方

・エスケープシーケンスの種類と使い方

・文字列から指定した文字を取り出す方法

Pythonで扱う数値の種類

整数

実数で小数点以下がない値をが整数です。整数には0以下の負の値(マイナス)も含まれます。

#整数の計算例
a = 10; b = -5; c = 8
num = a + b + c
print(num)

このコードを実行すると、計算結果の「13」と表示されます。

浮動小数点

浮動小数点とは小数点がある値のデータ型です。例えば、3.14、-1.68などです。

#浮動小数点の計算例
a = 1.23; b = -4.56; c = 8.9
num = a + b + c
print(num)

このコードを実行すると、計算結果の「5.57」と表示されます。

小数点以下を丸めた値に変換する方法

小数点以下の数値を丸めたい場合は、「round()」を使います。この関数は、通常の四捨五入とは異なります。例えば「2.5」の場合、四捨五入では「3」になりますが、「round()」では「2」と「3」までの差がどちらも「0.5」なので偶数の「2」となり、偶数が優先されます。

#小数点以下を丸めた例
print(round(2.4))
print(round(2.5))
print(round(2.6))

このコードを実行すると「2」「2」「3」と表示されます。

また、「round()」は「round(数値,桁)」の書式で、丸める数値の桁を指定することが可能です。

#小数点1桁を指定して丸めた例
print(round(3.14, 1))

小数点切り上げを指定したい場合は「ceil()」、小数点切り捨てを指定したい場合は「floor()」を使います。これらの関数を使うにはmathモジュールをインポートする必要があります。

指数

大きな桁数の値を表示する場合は、指数表記も利用できます。指数表記は「e」を使います。

#指数表記例
a = 1.23e+4
print(a)

このコードを実行すると、「12300.0」と表示されます。

2進数、8進数、16進数

基本的に整数は10進数を使いますが、Pythonでは2進数、8進数、16進数でも扱うことができます。

2進数は先頭に「0b」を付けて、0と1の組み合わせで数字を表します。

8進数は先頭に「0o」を付けて、0~8の数字の組み合わせで数字を表します。

16進数は先頭に「0x」を付けて、0~9の数字、A~Fのアルファベットの組み合わせで数字を表します。

#2進数、8進数、16進数の表記例
print(0b1011)
print(0o1011)
print(0xF11)

このコードを実行すると、「11」「521」「3857」と表示されます。

2進数、8進数、16進数は数値なので、もちろん計算にも使えます。

#2進数を使った足し算
print(0b1011 + 0b1011)

このコードを実行すると、計算結果の「22」と10進数で表示されます。

文字列

プログラミングでは数値はもちろんのこと文字列も処理します。文字列は英語で「string」ですので、このデータ型をストリング型と言ったりします。

前回の記事で数値を文字列に変換したときに使った「str()」も、この頭文字を意味している関数です。

文字列の作り方は3つあります。

  • シングルクォートで囲う
  • ダブルクォートで囲う
  • 3連続のシングルクォートで囲う
#文字列の作り方
print('ドル円')
print("ドル円")
print('''ドル円''')

このコードを実行するとすべて「ドル円」と表示されます。

また、シングルクォートとダブルクォートを同時に使うことで、文字としてシングルクォート又はダブルクォートを含んだ文字列が作れます。

#文字としてダブルクォートを含んだ文字列
print('USDJPYは”ドル円”と読みます。')

このコードを実行すると、「USDJPYは”ドル円”と読みます。」と表示されます。

エスケープシーケンス

Windowsの場合、バックスラッシュが円マークで表示されていることがあります。その場合は、円マークをバックスラッシュに読み替えてください。

文字列に改行やタブを入れたい場合は、エスケープシーケンスを使います。エスケープシーケンスは「\(バックスラッシュ)」を使って作成します。

よく使うエスケープシーケンスを表にまとめました。

\n改行
\t水平タブ
\rキャリッジターン
\’シングルクォート
\”ダブルクォート
\\バックスラッシュ

例えば、改行したい部分に\nを入力することで、複数行の文字列を作成することができます。

#エスケープシーケンスを使って改行する
news = "日銀は\n金融緩和拡大に\n踏み切った。"
print(news)

文字列の演算子

文字列では数値と同じように、文字列の足し算、文字列の掛け算が可能です。

文字列を連結「文字+文字」

「+」演算子を使って文字列を足し算するように、文字と文字を連結することができます。

#「文字+文字」で文字列を連結する
USDJPY = "ドル" + "円"
print(USDJPY)

また、文字列は変数に代入しても「+」を使って連結できます。

#文字列を変数に代入して連結する
a = "ドル"; b = "円"
print(a + b)

文字を繰り返す「文字*n」

「*n」を使って文字列をn回繰り返し、表示させることができます。

#文字列をn回繰り返す
a = "ドル円" * 3
print(a)

このコードを実行すると、「ドル円ドル円ドル円」と3回繰り返します。

数値と文字を連結「数値+文字」

数値と文字列を先ほど同様に「+」で連結するとタイプエラーになります。数値と文字列を連結したい場合は、数値を文字列に変換する必要があります。

数値を文字列に変換する場合は「str()」を使います。

#数値を文字列に変換する
ave = (110+100)/2
ans = "平均取得単価" + str(ave) + "円"
print(ans)

「str()」を使うことで数値が文字列化され、エラーにならず表示されます。

文字列から指定した文字を取り出す

例えば「今日のドル円レートは110円です。」の文字列から「110」のみを取り出したい場合など、文字列から指定した文字を取り出す方法を解説します。

文字列位置の数え方

文字列から文字を取り出すには、まず、文字列位置の数え方を覚える必要があります。

文字の位置は下の図のように1文字目を0と数えます。マイナスは後ろから数えることを意味し、最後の文字がー1と数えます。

Python文字列位置の数え方

ちなみに、位置を指す値はインデックス番号といいます。

文字(一文字だけ) を取り出す方法

文字列から指定した文字を取り出すには角括弧[]を使います。文字列の後に角括弧内を書き、角括弧内には取り出したい文字の位置を指定します。

次のコードでは変数名「id」に「ABCDEFG」の文字列を代入し、実行するときに先頭から3番目の文字を取り出します。

#文字列から指定した文字を取り出す
id = "ABCDEFG"
print(id[2])

このコードを実行すると、先頭から3番目の「C」が表示されます。

文字を範囲で取り出す方法

文字列から文字を範囲で取り出す場合、「文字列[開始位置:終了位置]」と書きます。

位置をインデックス番号で指定するだけでなく、2つのポイントがあります。

  • 開始位置、終了位置は省略可能
  • 角括弧内の「:」は文字列全体を返す

わかり難いと思うので、いくつか例を見てみましょう。

#文字列をすべて取り出す
news = "今日のドル円レートは110円です。"
print(news[:])
#10文字目から最後まで取り出す
print(news[10:])
#先頭から10文字目の手前(9文字目)まで取り出す
print(news[:10])
#10文字目から4文字取り出す
print(news[10:10+4])

このように文字列から選択した一部分を取り出すことをスライスと呼びます。

文字列の文字数は「len()」を使って調べることが可能です。

今回のまとめ

・浮動小数点の小数点以下をまとめるには「round()」

・2進数、8進数、16進数の表記は先頭に「0b」「0o」「0x」を付ける。

・文字列に改行、タブなどを入れるときはエスケープシーケンス。

・文字列の位置を数えるときは先頭は「0」と数える。

・文字列から文字を取り出すには、角括弧内に取り出すインデックス番号を入れる。

コメント

タイトルとURLをコピーしました