私は私がここで間違ってやっているかわからないんだけど、Pythonの本をグーグルと読んで一日を過ごした。..PythonのLEN()混乱
私は、次の機能があります。
def extract(inNo, inputFile2, outputFile):
ifile = open(inputFile2, 'r')
ofile = open(outputFile, 'w')
lines = ifile.readlines()
for line in lines:
print(str(len(line)))
if str(len(line)) == str(inNo):
ofile.write(line)
を私は」 len()
を理解しようとすると、使用すると奇妙な結果が出るようです。 私の入力ファイルは次のとおりです。
2
3
4
5
6
7
8
8
と出力ファイルは次のようになります。私はinNo
変数として「7」を使用している場合
1
22
333
4444
55555
666666
7777777
88888888
は今、私が手出力(すなわち、print
)があります:
666666
私は1すなわちからpython.exe長カウント開始にチェックインから確信している:
len('123')
は
3
len()
の私の理解が間違っているの結果を与えるだろうか、私はそれが間違ってコーディングのでしょうか?
本質的に、この機能は何ですか。それは引数として入力、出力、文字長を取ります。これらは別の関数から来て、2番目の関数は引数でこの関数を呼び出します。
この関数は、入力ファイルから行を読み込みます。 すべての行について、文字長を取得し、それを入力番号と比較します。 等しい場合は、その行を出力ファイルに書き込む必要があります。私は "else"を持っていないと仮定します。それは反復を続けるべきです。 print()関数を使うと、長さとして計算されたものを正確に見ることができます。
len()(len(line)+ 1)に ' - 1'または '+ 1'を追加しようとすると、さらに奇妙なことが起こります。
'len(123)'は3ではありません。 'len(123)'は、整数が長さを持たないため、TypeErrorを発生させます。 – user2357112
入力ファイルの各行は、改行文字で終わります。 Pythonのreadlines()関数は、これらの行末を削除しません。したがって、各行の長さは 'charactersYouCanSee + 1'、' 666666'行は '666666 \ n'です(' \ n'は1文字です)。 – Bilkokuya
'' \ n''文字はすべての行。改行を表示するエディタを使用してください –