본문 바로가기

Python

220116 학습일기

끝나지 않는 점프 투 파이썬..

오늘도 시작

 

1.

readline()은 더이상 읽을 줄이 없을 경우 빈 문자열('')을 리턴한다.

 

 

2.

프로그램 외부에 저장된 파일을 읽는 여러가지 방법 중에 readline 함수를 이용하는 방법이 있었다면

readlines 함수를 사용하는 방법도 있다.

 

readlines는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다.

 

먼저 num.txt는 다음과 같다.

1111
2222
3333

 

이제 f.readlines()를 이용해 외부에 저장된 num.txt라는 파일을 읽어보자.

f = open("num.txt", 'r',encoding="utf-8")
lines = f.readlines()
for line in lines:
    print(line)
f.close()

 

1111

2222

3333

 

3.

그냥 readline()과 readlines()을 단독으로 이용해 외부의 파일을 읽을 때는 문제점이 있다.

외부의 파일을 만들 때, 단순히 줄 바꿈을 하고 싶었을 뿐인데 그걸 읽을 때는 빈 줄과 함께 출력된다는 것이다.

 

이걸 해결할 수 있는 방법이 있다.

파일을 읽을 때 줄 끝의 줄 바꿈 문자(\n)를 제거하는 것이다.

 

strip() 함수를 사용하면 줄 바꿈 문자(\n)를 제거할 수 있다

f = open("num.txt", 'r',encoding="utf-8")
lines = f.readlines()
for line in lines:
    line = line.strip()
    print(line)
f.close()

 

1111
2222
3333

strip()함수를 사용할 때는 반드시 

line = line.strip()

와 같은 변수 저장을 해줘야 한다.

 

 

**틀린 예

이렇게 하면 안된다.

변수 저장을 안하고 그냥 line.strip() 이렇게만 한다거나...

f = open("num.txt", 'r',encoding="utf-8")
lines = f.readlines()
for line in lines:
    line.strip()
    print(line)
f.close()

왜냐? 아래와 같이 출력되기 때문이다.

1111

2222

3333

strip()이 제 기능을 못한다.

 

 

4.

3을 배우다가 갑자기 의문이 생겼다.

f.close() 처럼 변수 저장을 안 해도 되는 함수가 있는 반면, line = line.strip() 처럼 변수 저장을 해야 하는 함수가 있다.

이걸 뭐라고 하지???

구글에 뭐라고 쳐야할지도 모르겠어서 이와 비슷한 예를 생각해봤다.

 

sort 와 sorted가 그랬던 것 같았다.

변수 a에 리스트가 저장되어있다고 할 때,

sort는 a.sort() 해줘야 하는 반면, sorted는 a=sorted(a) 를 해줘야 한다.

 


*sort()는 리스트를 제자리에서(in-place) 수정하는 내장 메소드(built-in method) 이다.

sort는 리스트명.sort( ) 형식으로 "리스트형의 메소드"​​이며 리스트 원본값을 직접 수정한다.

 

 

*sorted()는 이터러블로 부터 새로운 정렬된 리스트를 만드는 내장함수이다.

sorted는 sorted( 리스트명 ) 형식으로 "내장 함수"이며 리스트 원본 값은 그대로이고 정렬 값을 반환한다.


그러면 내장 메소드와 내장 함수의 차이는 뭘까?

내장함수(built-in fuction)

  • python 언어 자체에서 제공하는 함수
  • 함수 이름으로 독립적으로 호출됨.
  • 어떤 객체와도 무관하게 적용, 호출됨

메소드(method)

  • 특정 객체(object)에 적용되는 함수
  • 각 데이터 타입별로 메소드가 별도로 존재.
  • 특정 객체(object)에 종속되어 적용 호출됨.
  • 메소드 이름만으로 호출 불가. 객체와 함께 호출됨
  • object명.method명(파라미터)로 호출,실행됨. 

 

[점프 투 파이썬]

 

점프 투 파이썬

** 점프 투 파이썬 오프라인 책(개정판) 출간 !! (2019.06) ** * [책 구입 안내](https://wikidocs.net/4321) 이 책은 파이썬 ...

wikidocs.net

 

[출처]

-sort와 sorted

 

[Python] sort( ), sorted( ) 차이

파이썬에서 리스트를 정렬할 때 사용하는 sort함수와 sorted함수의 차이점에 대해서 알아보겠습니다. sort ...

blog.naver.com

 

 

정렬 HOW TO — Python 3.10.2 문서

정렬 HOW TO 저자 Andrew Dalke와 Raymond Hettinger 배포 0.1 파이썬 리스트에는 리스트를 제자리에서(in-place) 수정하는 내장 list.sort() 메서드가 있습니다. 또한, 이터러블로부터 새로운 정렬된 리스트를 만

docs.python.org

 

-메소드, 내장 함수 차이

 

 

파이썬 함수, 메소드, 모듈, 내장함수, 내장모듈의 의미와 차이

전 회에서 반복(loop) 처리용 while 및 for 명령어와 반복제어용 break, continue 와 pass 명령어에 대해 ...

blog.naver.com

 

'Python' 카테고리의 다른 글

[sw expert acadmey] 1859. 백만 장자 프로젝트  (0) 2022.01.19
220117 학습일기  (0) 2022.01.18
220115 학습일기  (0) 2022.01.15
220112 학습일기  (0) 2022.01.14
220109 학습일기  (0) 2022.01.10