質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1112閲覧

endswithを使ったIF文の書き換えについて(Python)

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/16 02:55

編集2019/09/14 00:31

前提・実現したいこと

【概要】
外部のテキストファイルを取り込んだ後、endswithを使ってのIf文の書き換えを試みています。
後述の通り各章のタイトルプリントまでは行き着いたのですが、条件の数字を参照というコードになっていないのと、不要行が残ってしまっている部分の解決についてアドバイスをいただきたいです。

【実現したいこと】
①テキストファイル「rac.txt」を元に、冒頭の目次をプリント
②"Chapter"で始まる行と空白行を削除
③上記②を実行後、各章のタイトルをページ番号付でプリントさせたい
※この際、if文を各章のページ番号の"数字"を参照してプリントするように指示すること
例)

【条件】
・一つのifブロック内で完結させること
・if文は各章のページ番号の"数字"を参照してプリントするように指示すること
・ブール型ないしネストされたif文を使用
・elif文は使用できない

【備考】
実現できればendswithの使用は必須ではないのですが、知る限りの使えそうなものがendswithのみのためこちらを記載しています。
現在のコードでは不要な空白行やCHAPTER IIといった行がプリントされてしまっているため、これらを削除した一覧をプリントさせたく思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2018/10/16 04:27

どういうデータに対して、どういう結果を得たいのかが不明です。
退会済みユーザー

退会済みユーザー

2018/10/19 19:52

コメントありがとうございます。本件に関しては自己解決しましたので、次回の投稿時に留意いたします。
guest

回答1

0

ベストアンサー

str.endswith は**『特定の文字列で終わるか』**を判定するものです。
ご提示のコードでは完全に使い方を間違えて居ます。

Python

1>>> 'abc123'.endswith('int') 2False 3>>> 'abcint'.endswith('int') 4True

目的を考えると、str.endswith の活用は難しいでしょう。

CHAPTER IIといった行がプリントされてしまっている

むしろこれなら str.startswith で弾けます。


私なら正規表現を利用して、『末尾が数字列であるか』判定します。

Python

1>>> pattern = re.compile(r'^.+?([1-9][0-9]*)$') 2>>> 3>>> bool(pattern.match('abc123')) 4True 5>>> bool(pattern.match('abcint')) 6False

これが出題の意に沿った解法であるかどうか分かりませんが。

投稿2018/10/16 03:05

編集2018/10/16 03:13
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/19 19:53

コメントありがとうございます!頂いたアドバイスを参考に自己解決することができました。大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問