python 言語処理100本ノック -第1章: 準備運動- 03. 円周率

03. 円周率

“Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.”という文を単語に分解し,各単語の(アルファベットの)文字数を先頭から出現順に並べたリストを作成せよ.

少し時間が空きました。100本ノック、3問目です。
今回のポイントは2つあります。
1つはfor文の使い方、2つ目はisalpha()による英字判定です。
まずfor文ですが、10行目と14行目の2カ所に登場します。

10行目は配列「words」の要素を順番に読み込んでいます。
14行目も同じような記述ですが、こちらは文字列を先頭から順に1文字ずつ読み込んでいます。

次にisalpha()です。
こちらはpythonの標準関数の1つです。pythonには数多くの標準関数がありますが、
isalpha()はその中の文字列メソッドに分類されます。
文字列メソッドはその名のとおり、文字列に対して判定や加工を行うための関数です。

pythonの標準関数については以下を参照
pythonの標準関数

#coding: utf-8
target = u'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.'
result = []

#文字列を" "で分割
words = target.split(' ')

#分割した単語の数だけ繰り返し
for word in words:
	count = 0
	#各単語を1文字ずつ読み込み
	for charcter in word:

		#英字の場合カウントアップ
		if charcter.isalpha():
			count += 1
	result.append(count)
print(result)

実行結果

[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]

■開発環境
Windows10
Python 3.7.3
Visual Studio Code 1.33.1

■言語処理100本ノック 公式
言語処理100本ノック 2015