文字列の操作 – 【Pythonプログラミング1 ~基礎編~】

PROGRAMMING

Pythonの文字列の操作や編集方法を、演習用プログラムのソースコードを使い、それを実行しながら解説します。

1.演習用プログラムのダウンロード

演習用プログラム( practice07.py )をダウンロードします。
ダウンロードファイルは テキストファイルになっているので、エクスプローラーを使って拡張子を .txt から .py に変更します。
practice07.py を Python をインストールしたフォルダ(今回は C:\Python)に置きます。


2.ソースコードの表示

メモ帳を使って、演習用プログラム( practice07.py )を開きます。

practice07.py

practice07.py


3.文字列の操作

① 文字列を用意する

コマンドプロンプト で practice07.py を実行します。
プログラムを実行する方法は、こちらの記事『ファイルに保存されたプログラムの実行』を参照します。
以下のように表示されます。

C:\Users\kotablog>python "C:\Python\practice07.py"

*** 文字列を用意 ***
abcd1234

*** 文字数を数える ***
文字数は 8文字です

 
プログラムソースを確認します。


01 # -*- coding: utf-8 -*-
02 """
03 演習プログラム7
04 
05   文字列の操作
06 
07 """
08 import sys  # モジュールのインポート
09 
10 # 文字列を用意する
11 print("\n*** 文字列を用意 ***")
12 strWork = "abcd1234"
13 print(strWork)
14 
15 print("\n*** 文字数を数える ***")
16 intCount = len(strWork)  # len()は文字数を返す関数
17 print("文字数は " + str(intCount) + "文字です")
18 
19 #終了1
20 sys.exit()

12行目の strWork = "abcd1234" で文字列を用意しています。
"abcd" は半角文字、"1234" は全角文字です。
16行目の 関数 len() で、文字列の文字数を取得することができます。
半角文字でも全角文字でも1文字として数えられます。

② 文字列の取り出し

ソースコード #終了1 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

*** 2文字目から4文字目を取り出す ***
bcd

*** 2文字目以降を取り出す ***
bcd1234

*** 先頭から4文字目までを取り出す ***
abcd

*** 末尾の1文字を取り出す ***
4

 
文字列には、先頭の1文字目からゼロで始まるインデックス(番号)が付与されます。

文字列    a  b  c  d  1 2 3 4
インデックス 0 1 2 3 4 5 6 7
       -8 -7 -6 -5 -4 -3 -2 -1

インデックスを指定することで文字列から1文字を取り出すことができます。

また文字列の一部分を、スライスを使って取り出すことができます。

スライス
[start: end]
start から end-1 までの範囲指定となります。


22 print("\n*** 1文字目を取り出す ***")
23 print(strWork[0])
24 
25 print("\n*** 2文字目から4文字目を取り出す ***")
26 print(strWork[1:4])
27 
28 print("\n*** 2文字目以降を取り出す ***")
29 print(strWork[1:])
30 
31 print("\n*** 先頭から4文字目までを取り出す ***")
32 print(strWork[:4])
33 
34 print("\n*** 末尾の1文字を取り出す ***")
35 print(strWork[-1:])
36 
37 #終了2
38 sys.exit()

23行目の strWork[0] では、1文字目(インデックスが0)を取り出しています。
26行目の strWork[1:4] は、2文字目のインデックスが1、4文字目のインデックスが3なので スライスの end の指定は4になります。
29行目の strWork[1:] では、 スライスの end が省略されているので、インデックスが1以降の文字を取り出しています。
32行目の strWork[:4] では、 スライスの start が省略されているので、先頭からインデックスが4より前の文字を取り出しています。
35行目の strWork[-1:] は、末尾の1文字を簡単に取り出すための方法です。負のインデックスの使い方に慣れるようにしましょう。

演習問題

ソースコード #終了2 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

【演習問題1】月の6を取り出してください
2024/6/9

【演習問題2】末尾の3文字を取り出してください
2024/6/9

 
【演習問題1】月の6を取り出してください
以下の結果となるようにスライスの start と end をコーディングしてください
結果:6


42 print(strWork[:])  # ここにコーディングしてください

【演習問題2】末尾の3文字を取り出してください
以下の結果となるようにスライスの start と end をコーディングしてください
結果:6/9


45 print(strWork[:])  # ここにコーディングしてください

③ 文字列を分割する

ソースコード #終了3 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

*** 文字列を分割する(区切り文字が','の場合)***
札幌,東京,大阪
['札幌', '東京', '大阪']
<class 'list'>

*** 1番目の値を取り出す ***
札幌

 
文字列を分割するときは、関数 split() を使います。


50 print("\n*** 文字列を分割する(区切り文字が','の場合)***")
51 strWork = "札幌,東京,大阪"
52 print(strWork)
53 result  = strWork.split(',')  # result はリスト型になります
54 print(result)
55 print(type(result))
56 
57 print("\n*** 1番目の値を取り出す ***")
58 value = result[0]
59 print(value)
60 
61 #終了4
62 sys.exit()

51行目で、『 , 』(カンマ)で区切られた文字列『札幌,東京,大阪』を用意しています。
53行目の strWork.split(',') で、区切り文字『 , 』(カンマ)で文字列を分割しています。
分割した結果はリストに格納されます。55行目の type(result) で、<class 'list'> が表示されます。
58行目、リストに格納された要素はインデックスを指定することで取り出すことができます。

④ 文字列の両端の空白文字を削除する

ソースコード #終了4 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

*** 両端に空白文字が付いている文字列を用意 ***
 Python プログラミング 
16文字

*** 両端の空白文字を削除する ***
Python プログラミング
14文字

 
文字列の両端(先頭、末尾)の空白文字も削除するときは、関数 strip() を使います。


64 print("\n*** 両端に空白文字が付いている文字列を用意 ***")
65 strWork = " Python プログラミング "
66 print(strWork)
67 print(str(len(strWork)) + "文字")
68 
69 print("\n*** 両端の空白文字を削除する ***")
70 strWork = strWork.strip()
71 print(strWork)
72 print(str(len(strWork)) + "文字")
73 
74 #終了5
75 sys.exit()

65行目で、『Python プログラミング』(文字数は14)の先頭に半角スペース1個、末尾に全角スペース1個を付けています。
67行目の、len() で16文字と表示されます。
70行目で、strip() を使って両端の空白文字を削除しています。
削除後の文字数は、72行目の、len() で14文字と表示されます。

⑤ 文字列を置き換える

ソースコード #終了5 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

*** 半角スペースをカンマに置き換える ***
Python,プログラミング

 
文字列を置き換えるときは、関数 replace() を使います。


77 # 文字列を置き換える
78 print("\n*** 半角スペースをカンマに置き換える ***")
79 strWork = strWork.replace(' ', ',')
80 print(strWork)
81 
82 #終了6
83 sys.exit()

文字列『Python プログラミング』に含まれる半角スペースを、79行目の strWork.replace(' ', ',') で『 , 』(カンマ)に置き換えています。

演習問題

ソースコード #終了6 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

【演習問題3】次の文字列から『 " 』(ダブルクォーテーション)を削除してください
"Python","プログラミング"

"Python","プログラミング"

 
【演習問題3】文字列『"Python","プログラミング"』から『 " 』(ダブルクォーテーション)を削除するコーディングしてください。


90 strWork = strWork  # ここに削除するためのコーディングをしてください

⑥ 文字列が数字か確認する

ソースコード #終了7 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
 Ctrl  キーを押しながら、 S  キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3  キーを押して、 Enter  キーを押下します。
以下のように表示されます。

*** 文字列が数字か確認する ***
abcdは数値ではありません

 
文字列が数字かを確認するときは、関数 isnumeric() を使います。


 96 # 文字列が数字か確認する
 97 print("\n*** 文字列が数字か確認する ***")
 98 strWork = "abcd"
 99 if strWork.isnumeric():
100   print(strWork + "は数値です")
101   print("数値に変換してint型の変数に格納します")
102   intWork = int(strWork)
103   print(intWork)
104 else:
105   print(strWork + "は数値ではありません")
106 
107 sys.exit()

98行目が strWork = "abcd" なので数値ではないため、99行目の if文 が Flase となり、105行目で 数値ではありませんと表示されます。
それでは、98行目を strWork = "1234" のように数値を表す文字列に修正して、再度プログラムを実行してください。

*** 文字列が数字か確認する ***
1234は数値です
数値に変換してint型の変数に格納します
1234

 

<複数の値を扱うデータ型 文字列の操作 数値の操作>
タイトルとURLをコピーしました