退会済みユーザー
2019/09/14 09:31 投稿
endswithを使ったIF文の書き換えについて(Python) |
### 前提・実現したいこと |
【概要】 |
外部のテキストファイルを取り込んだ後、endswithを使ってのIf文の書き換えを試みています。 |
後述の通り各章のタイトルプリントまでは行き着いたのですが、条件の数字を参照というコードになっていないのと、不要行が残ってしまっている部分の解決についてアドバイスをいただきたいです。 |
【実現したいこと】 |
①テキストファイル「 |
①テキストファイル「rac.txt」を元に、冒頭の目次をプリント |
②"Chapter"で始まる行と空白行を削除 |
③上記②を実行後、各章のタイトルをページ番号付でプリントさせたい |
※この際、if文を各章のページ番号の"数字"を参照してプリントするように指示すること |
例) |
【条件】 |
・一つのifブロック内で完結させること |
・if文は各章のページ番号の"数字"を参照してプリントするように指示すること |
・ブール型ないしネストされたif文を使用 |
・elif文は使用できない |
【備考】 |
実現できればendswithの使用は必須ではないのですが、知る限りの使えそうなものがendswithのみのためこちらを記載しています。 |
現在のコードでは不要な空白行やCHAPTER IIといった行がプリントされてしまっているため、これらを削除した一覧をプリントさせたく思います。 |
【課題に使用しているファイル】 |
https://drive.google.com/drive/folders/1AehNVwjKWhdkF80LDDprRjSPipPb3A3M?usp=sharing[リンク内容](https://drive.google.com/drive/folders/1AehNVwjKWhdkF80LDDprRjSPipPb3A3M?usp=sharing) |
### 該当のソースコード(途中経過) |
```ここに言語名を入力 |
in_file = open('dracula.txt','r',encoding='UTF-8') |
all_text = in_file.readlines() |
in_file.close() |
toc_text_lines =[] |
#Get the table of contents from the dracula file. |
toc = (all_text[79:186:1]) |
for line in toc: |
if line == line.endswith("int"): |
print(toc_text_lines) |
toc_text_lines.append(line) |
for answer in toc_text_lines: |
print(answer) |
``` |