살콤아내 자기계발/파이썬

점프투파이썬 2주차 정리

살콤아내 2021. 4. 12. 10:47
728x90
반응형

점프투파이썬 143pg 

for i n range(2,10):
    for j in range(1,10):
        print(i*j, end=" ")   #띄어쓰기
    print (' ')                  #줄바꿈기능

파이썬 C언어
print('1')
prnit('2')
>> 1
     2
print('1')
print('2')
>> 12


파이썬 파라미터설정에 관한 개념정리
#end라 이름불리는 설정에는 어떤 초기 parameter(설정)이 있다.
end=" "의 초기에 '|n' 의 성질을 갖는다. 프린트물의 가장 마지막에 붙이는 문자열이다.

end='end'의 결과

0end1end2end3end4end5end6end7end8end9end

 

end=' '의 결과

0 1 2 3 4 5 6 7 8 9 

 

 

end='end\n'의 결과

0end
1end
2end
3end
4end
5end
6end
7end
8end
9end

 

 

 

 

질문: for문에서 for 다음에 나오는 변수명은 아무거나 와도 될까?

예: for socre in A

예: for a in A

답:  in은 불러와야 할 변수이므로 변수 선언을 미리 해야하지만 for 다음에 나오는 첫번째 변수는 아무거나 와도 된다.

 

 

4장. 프로그램의 입력과 출력은 어떻게 해야할까?

함수의 형태

1-2줄에서 def say( )에 관한 return값은 없다. (output값은 return값 뒤에 따라나오는 것임)

4-6줄의 결과는 다음과 같다. type(print(c))은 <class 'NoneType'> 이기 때문이다.

 

여러개의 입력값을 받는 함수 *

def add_many(*args)와 같이 매개변수 이름 앞에 *붙이면 된다. args는 임의로 정한 이름이므로 아무거나와도 된다.

참고로 args의 데이터 타입은 튜플이다.

 

키워드 파라미터 **

def print_kwargs(**kwargs)와 가이 매개변수 이름 앞에 **가 붙이면 된다. kwargs는 args와 마찬가지로 임의로 정한이름이다. 키워드 파라미터는 key-value가 쌍으로 이루는 딕셔너리 타입의 데이터를 만든다.

 

함수의 결과값은 하나이다.

def add_and_mul(a,b):

     return a+b, a*b

result=add_and_mul(a,b)

>> print(result)=(a+b, a*b) 라는 1개의 튜플타입의 데이터 값을 받는다.

 

def add_and_mul(a,b):

     return a+b

     return a*b

result=add_and_mul(a,b)

>>print(result)=a+b  라는 1개의 튜플타입의 데이터 값을 받는다. 두 번째 return a*b는 출력되지 않음

 

함수 안에서 선언한 매개변수는 함수 안에서만 효력이 있다. 함수 밖에 변수 이름과는 상관이 없다.

#vartest_error.py

a=1

def vartest(a):

     a=a+1

vartest(3) >>> 프린트하면 4가 나오지만

print(a) >> 프린트하면 1이 나온다. (위에 a=1이라고 변수를 선언했기 때문)

 

변수 a는 공간 안에 있는 메모리주소 값이 아닌 value 값을 던져준 것이다. (그러므로 각각의 a는 주소값이 달라서 서로 미치는 효력이 다름. 만약 a값의 메모리주소값을 받는다면 데이터를 변경할 수 있으므로 보안이 좋아지지 않게 됨)

>> 함수 내의 return은 함수의 output, 연산결과값을 메인코드로 들여놓는 중요한 역할을 한다.

 

 

171pg 파일 새로 만들기

파일에 쓰기

>>이러한 결과값은 나중에 업무자동화에서 명령어의 로그를 확인하고 디버깅하는 데 유용하게 사용된다.

 

readline함수

 

readline함수는 한줄씩 내려가면서 출력이 된다. print는 end='|n'가 기본값으로 되어있다. 이 개행문자 때문에 한줄 씩 띄어져서 출력된다.

readlines 함수는 이전의 readline 함수와 다르다. (동일하게 출력됨)

line이 string형태의 요소와 다르다면, lines는 10개 요소를 가진 한 개의 리스트 값이다.

read 함수의 결과는 다음과 같다. 전체를 하나의 string 값으로 나온다.

 

 

 

 

다음 예시를 보자. 'w'모드를 사용하면 처음부터 다시 내용이 작성된다.

 

'a'모드를 사용하면 기존의 자료에 새로운 내용이 추가된다.

 

with라는 명령어는 종속된 명령어를 마친 후 자동으로 파일을 닫아준다.

 

 

Class의 필요성

class는 붕어빵틀로 비유될 수 있다. (붕어빵틀을 이용해 붕어빵이라는 실체를 만들 수 있음) 즉 클래스를 통해 객체를 만들 수 있다.

- 객체: 클래스를 이용해 만들어낸 대상. 해당 클래스안에 정의된 다양한 메소드를 사용할 수 있는 기능을 가진 그 무엇.

- 메소드: 클래스 안에 정의된 함수.

- 복습: 매개변수는 함수를 정의하는 관점에서의 input값. 인수값은 함수를 사용하는 관점에서의 input값.

 

Ex) 점프투파이썬 186pg

cal1.add(3) >> cal1이라는 객체가 사용할 수 있는 메소드들 중에서 add함수를 쓰는데, input값으로 3을 넣는다는 의미.

 

파이썬은 객체지향 언어로 객체들이 이미 클래스가 설정되어 있다. (데이터 타입을 print하면 class. 'str' 이런 식으로 나옴)

 

 

생성자 __int__ 메서드

constsructor 기능을 하도록 인터프리터와 약속된 키워드. (이름을 마음대로 지으면 안됨. 언더바언더바int언더바언더바)

생성자는 클래스를 이용해서 객체를 생성될때 자동적으로 호출이 수행되는 메서드다. 그 때 input값으로 넣어준 값이 __int__의 매개변수로 들어가서 "객체생성>>set_data>>연산 과정에서 객체생성+set_data>>연산"으로 절차 하나가 줄어들게 된다.

 

상속: 클래스 이름 뒤 괄화 안에 상속할 클래스 이름을 넣어주면 된다.

Ex) class 클래스이름(상속할클래스이름):

 

메서드 오버라이딩(덮어쓰기): 클래스 상속이 되면 기본적으로 상속받은 클래스의 기능을 모두 사용할 수 있고, 새로운 클래스 안에서 기능을 수정해서 사용할 수 있다. 즉, 오버라이딩된 메서드가 호출된다.

 

클래스변수

객체변수는 특정개체에 종속된 변수로 다른 객체들에 의해 영향받지 않는다. 하지만 클래스변수는 특정 클래스를 공유하는 모든 변수들의 공통변수로 id함수값(주소값)이 같음을 알 수 있다.

728x90
반응형