나는, 인터넷 검색 및 파이썬 책 ...를 읽고 하루 종일 보냈다 내가 여기서 잘못하고 있어요 확실하지 않다파이썬 렌() 혼란
나는 다음과 같은 기능을 가지고 : 나는 '
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()
에 대한 이해가 잘못의 결과를 줄 것이다, 또는 내가 잘못 코딩입니까?
기본적으로이 기능의 역할은 다음과 같습니다. 인수로서 입력, 출력 및 문자 길이가 필요합니다. 이들은 다른 함수에서 왔고 두 번째 함수는 인수로 이것을 호출합니다.
이 함수는 입력 파일에서 행을 읽습니다. 모든 행에 대해 문자 길이를 가져 와서 입력 번호와 비교합니다. 동일하면 해당 행을 출력 파일에 작성해야합니다. 나는 "else"가 없다고 가정합니다. 반복해야합니다. print() 함수를 사용하면 계산 된 길이를 정확하게 볼 수 있습니다.
len() 즉 len (line) +1에 '- 1'또는 '+1'을 추가하려고하면 더 이상한 일이 발생합니다.
'len (123)'은 3이 아닙니다.'len (123)'은 길이가 없기 때문에 TypeError를 발생시킵니다. – user2357112
입력 파일의 각 행은 개행 문자로 끝납니다. 파이썬의 readlines() 함수는이 라인 끝을 제거하지 않습니다. 따라서 각 줄의 길이는'charactersYouCanSee + 1'이고,'666666' 줄은 실제로'666666 \ n '('\ n'은 한 글자)입니다. – Bilkokuya
또한''\ n '' 문자가 있다는 것을 명심하십시오 모든 라인. 줄 바꿈을 표시하는 편집기 사용 –