質問編集履歴

1 edited

退会済みユーザー

退会済みユーザー

2019/09/14 09:31  投稿

endswithを使ったIF文の書き換えについて(Python)
### 前提・実現したいこと
【概要】
外部のテキストファイルを取り込んだ後、endswithを使ってのIf文の書き換えを試みています。
後述の通り各章のタイトルプリントまでは行き着いたのですが、条件の数字を参照というコードになっていないのと、不要行が残ってしまっている部分の解決についてアドバイスをいただきたいです。
【実現したいこと】
①テキストファイル「dracula.txt」を元に、冒頭の目次をプリント
①テキストファイル「rac.txt」を元に、冒頭の目次をプリント
②"Chapter"で始まる行と空白行を削除
③上記②を実行後、各章のタイトルをページ番号付でプリントさせたい
※この際、if文を各章のページ番号の"数字"を参照してプリントするように指示すること
例)
Jonathan Harker's Journal                                            1  
Jonathan Harker's Journal                                            14  
【条件】
・一つの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)
```
  • Python

    28852 questions

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

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