1

だからここに私のコードがあります:

with open('lines.txt') as f:
for i in f:
    line = input('line: ')
    if line not in i.split('\n'):
        print(line, i.split('\n'), end='\n')
    else:
        continue

テキスト ファイルから行を取得し、1 番目、2 番目、3 番目などと入力するように求めます。ファイル内の行がなくなるまで、行を間違えると「No!」と出力されます。しかし、それは「いいえ!」と言います。入力するすべての入力に対して、このコードを機能させるにはどうすればよいでしょうか?

4

4 に答える 4

4

よい試み!rstripこれらの厄介な改行文字を処理するために stringの便利なメソッドを使用するソリューションを次に示します。これは、行ごとに入力を求めて、必要なことを行います。間違っている場合は、次の入力に移動します。

with open('lines.txt') as f:
    for i in f:
        i = i.rstrip()
        line = input('line: ')
        if line != i:
            print('No!')
于 2013-09-01T08:30:54.417 に答える
3

.split()リストを返します。おそらく、行がリストにあるかどうかを確認するつもりでした。

行う:

if line in i.split('\n'):
于 2013-09-01T08:12:35.760 に答える
1

文字列を行のリストと比較しています

    if line != i.split('\n')[0]:

配列の最初の要素と比較してみてください。

    if line != i.split('\n')[0]:

または、先頭と末尾のスペースを安全に無視できる場合:

    if line != i.strip()

あなたが持っているelseブロックは、正しく入力された行ごとに2番目のチェックされていない入力を提示しますが、それはあなたが意図したものでしたか?

于 2013-09-01T08:31:51.273 に答える