(Python) 01.29.수 TIL

Kepler·2020년 1월 30일
0

Python

목록 보기
2/12

default argument 가 Non-default argument 앞에 오면 안되는 이유:

image.png

현상:

위의 예제와 같이, default argument name = "Kim" 가 non-default argument gender 앞에 오는 경우, 파이썬에서는 SyntaxError 가 발생한다.

이유:

파이썬에서 argument를 가지는 함수를 정의할 경우, non-default argument는 필수요소(mandatory)인 반면, default argument는 필수가 아니다. 위와 같이 필수적인 요소가 뒤에 오게 되는 경우, 인터프레터는 어떤 값이 어떤 argument와 매치 시켜야 하는지를 해석할 수 없게 된다.

위의 예제에서 살펴보면, name이 default 로 지정되어 있어서, greetings()를 불러올때는 gender에 들어갈 female만 입력하였다. 하지만 인터프레터는 여기서 받은 female 이란 값을 name or gender에 적용 시킬지를 판단할 수 없다.

해결:

positional or keyword argument를 사용하여 다음과 같은 방법으로 해결할 수 있다.

positional argument

  • 각각의 argument, name 과 gender 가 non-default 이므로, 값을 순서대로 넘겨줌
    image.png

keyword argument

  • argument의 순서가 바뀌었어도, argument = value 로 argument를 확실히 해주었으므로, 원하는 결과가 도출
    image.png

참고링크: https://stackoverflow.com/questions/16932825/why-cant-non-default-arguments-follow-default-arguments

변수 이름 법칙:

  • 변수 이름은 영어 알파벳과 숫자 그리고 underscore (_) 으로만 구성

  • 변수 이름 첫글자는 알파벳(abc)이나 underscore(_)로만 시작. 숫자 불가.

  • 영어 알파벳은 대문자와 소문자가 구분 (case sensitive)

f-Strings:

  • formatted string literals : 문자열에 함수와 변수를 넣어서 통합하여 문자열로 표현할 수 있는 방법.

f"string {variable}"
f"{function name(argument)} string"

Slicing:

  • 리스트의 일부분을 따로 copy하는 법.

    • index에는 정수만 사용가능, 즉 정수 나누기에 유용.

    • slicing만으로는 리스트는 업데이트 되지 않으므로, 새 변수에 저장해야 함.

    • format : list_name[start : stop : step]

파이썬 수학 연산 표현들의 순서

( )

**

*, / ,  %

+ , -

String concatenation

  • string과 string을 더하는 것

if구문

  • else : if 구문 (or elif) 의 condition이 False인 경우 default 로 실행됨. 그러므로, 테스트 구문이 없음.
  • nested if 구문 : 반복되는 컨디션이 있을때, 중첩되는 if 구문을 사용하면 가독성이 높아짐 ※ 2단계 이상은 하지 말것 (비효율적, 가독성 떨어짐)

List

  • string, 숫자, boolean 값의 모든 type을 섞어서도 저장 가능.
  • 두가지의 list를 합치는 경우, list 들을 합한 값을 다시 저장하고자 하는 변수에 지정해줘야함.
  • List = 수정 가능 = flexible하기에 용량 더 많이 차지함.
    Tuple = 수정 불가 = 용량 더 적게 차지함. 상황에 따라서 가려쓸것!

Tuple :

  • Tuple의 요소들을 읽어들이는 방법, slicing은 모두 list의 그것과 동일. ex) my_tuple[1:2]
  • When to use tuples : 2~5개 사이의 요소들을 저장할때, 특정 데이터를 ad hoc(즉석적으로) 하게 표현하고 싶을때 사용 ex) 좌표 그리기
profile
🔰

0개의 댓글