私はPython(2日目)が初めてで、ASCIIファイルを読み取り(入力としてファイル名を要求する)、2つ以上の単語があるかどうかを確認し、最初の2つの単語を出力するプログラムを作成するように求める問題に取り組んでいます画面上のファイル。
少しあいまいですが、ファイルはすべてスペースで区切られた str であると仮定します。
元。
text1 text2 text text text
これまでのところ、私は持っています:
name = (raw_input("Please enter the name of the file: "))
f=open(name)
with codecs.open(name, encoding='utf-8') as f:
for line in f:
line = line.lstrip(BOM)
words=line.split()
print words
if len(words) > 2:
print 'There are more than two words'
firsttow = words[:2]
print firstrow
私はelseステートメントを書くのに問題があります。
if len(words) > 2:
print 'There are more than two words'
firsttow = words[:2]
print firstrow
else:
if len(words) <2:
print 'There are under 2 words, no words will be shown'
これをどのように追加する必要がありますか?この質問のコードを改善する他の方法はありますか? 本当に助かります
前もって感謝します
*編集: 助けてくれてありがとう、私が最後に抱えていた問題は、.py ファイルを実行したときでした。cmd ウィンドウが閉じる前に結果を確認できるようにしたいのです。
追加:raw_input("Press return to close this window...")
機能せず、すぐに閉じます。何か案は?
Edit2* これは私の現在のコードで、後で cmd ウィンドウを開こうとしています。
import codecs
BOM = codecs.BOM_UTF8.decode('utf8')
name = (raw_input("Please enter the name of the file: "))
with codecs.open(name, encoding='utf-8') as f:
words=[] #define words here
for line in f:
line = line.lstrip(BOM)
words.extend(line.split()) #append words from each line to words
if len(words) > 2:
print 'There are more than two words'
firstrow = words[:2]
print firstrow #indentation problem here
elif len(words) <2: #use if
print 'There are under 2 words, no words will be shown'
raw_input("Press return to close this window...")