回答編集履歴

3 追記

LouiS0616

LouiS0616 score 34311

2018/10/16 12:13  投稿

str.endswithは**『特定の文字列で終わるか』**を判定するものです。
str.endswith は**『特定の文字列で終わるか』**を判定するものです。
ご提示のコードでは完全に使い方を間違えて居ます。
```Python
>>> 'abc123'.endswith('int')
False
>>> 'abcint'.endswith('int')
True
```
目的を考えると、str.endswithの活用は難しいでしょう。
目的を考えると、str.endswith の活用は難しいでしょう。
> CHAPTER IIといった行がプリントされてしまっている
むしろこれなら str.startswith で弾けます。
---
私なら**正規表現**を利用して、『末尾が数字列であるか』判定します。
```Python
>>> pattern = re.compile(r'^.+?([1-9][0-9]*)$')
>>>
>>> bool(pattern.match('abc123'))
True
>>> bool(pattern.match('abcint'))
False
```
これが出題の意に沿った解法であるかどうか分かりませんが。
2 修正

LouiS0616

LouiS0616 score 34311

2018/10/16 12:12  投稿

str.endswithは**『特定の文字列で終わるか』**を判定するものです。
ご提示のコードでは完全に使い方を間違えて居ます。
```Python
>>> 'abc123'.endswith('int')
False
>>> 'abcint'.endswith('int')
True
```
目的を考えると、str.endswithの活用は難しいでしょう。
---
私なら**正規表現**を利用して、『末尾が数字列であるか』判定します。
```Python
>>> pattern = re.compile(r'^.+[1-9][0-9]*$')
>>> pattern = re.compile(r'^.+?([1-9][0-9]*)$')
>>>
>>> bool(pattern.match('abc123'))
True
>>> bool(pattern.match('abcint'))
False
```
これが出題の意に沿った解法であるかどうか分かりませんが。
1 追記

LouiS0616

LouiS0616 score 34311

2018/10/16 12:09  投稿

str.endswithは**『特定の文字列で終わるか』**を判定するものです。
ご提示のコードでは完全に使い方を間違えて居ます。
```Python
>>> 'abc123'.endswith('int')
False
>>> 'abcint'.endswith('int')
True
```
目的を考えると、str.endswithの活用は難しいでしょう。
---
私なら**正規表現**を利用して、『末尾が数字列であるか』判定します。
私なら**正規表現**を利用して、『末尾が数字列であるか』判定します。
```Python
>>> pattern = re.compile(r'^.+[1-9][0-9]*$')
>>>
>>> bool(pattern.match('abc123'))
True
>>> bool(pattern.match('abcint'))
False
```
これが出題の意に沿った解法であるかどうか分かりませんが。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る