1. 파이썬 핵심개념

YoonA Kim·2022년 11월 19일

파이썬

목록 보기
1/6

0. 기본

Python Interpreter: 파이썬 코드를 컴퓨터가 알아들을 수 있는 머신 코드로 바꿔주는 프로그램
Pycharm: 코딩에 사용하는 몇가지 프로그램을 하나로 통합한 올인원 솔루션 = 통합 개발 환경 Integrated Developed Enviroment(IDE)

코멘트 # (코드 적힌 줄 뒤에 적어도 됨)

자료형 Data Type
- 숫자형 Numbers: 정수 Integer, 소수 Floating Point
- 문자형 String : "", '' 안에 적힌
- 불린 Boolean: 참과 거짓

추상화 Abstraction: 복잡한 내용은 숨겨주는 것
- 변수 Variable : 값을 저장하는 것
^ 예) x=123, burger pirce = 4800
^ 코딩에서 =는 지정연산자
^ 직관적으로 변수의 이름을 잘 정하는 것이 중요하다
^ 복잡한 내용을 반복기입안해도 되고, 다른 사람이 봐도 이해하기 편하며, 내용이 수정되었을 때 한번에 수정하기 위함
- 함수 Function : 명령을 저장하는 것
^ 내재된 함수 : print 등 이미 만들어진 함수
^ 새로운 함수 정의 : def ____():
^ 예) def에 들어가는 내용은 반드시 tap

 def hello():
 	print("hello rune")

파라미터
- 함수의 ()안에 들어가는 변수, 여러개 설정 가능!

def plus(a, b, c):
	print(a+b+3)

return문: 되돌려주는 것

def squre(a, b):
	return (a*b)    #이때부터 squre(a,b)는 a*b 값을 가지게 된다. 

print(squre(3,4))

∴ 값: 12

Syntax = 문법 / Syntaxerror = 문법오류라는 뜻

1. 자료형

1.1 숫자형

정수끼리 연산하면 정수로, 소수끼리 연산하면 소수로, 소수가 하나라도 있으면 소수로 출력된다.
단, 나눗셈은 무조건 결과값은 소수.

덧셈 +
뺄셈 -
곱셈 *
나눗셈 /: 나누면 무조건 그 결과값은 floating
나머지 %: 나눈 것의 나머지 (8 나누기 3의 나머지는 2)
거듭제곱 **: 2**3은 2의 3승
버림나눗셈 // : floor division, 소숫점 버리기, 두번째 파라미터로 버리는 소수점 위치 설정
반올림 round: 두번째 파라미터로 반올림하는 소수점 위치 설정

1.2 문자열

"" 또는 '' 안에 넣어 문자로 취급
사용해야하는 문자열 안에 " 또는 '가 사용될 경우 그 앞에 백슬래시 \를 넣어 무효화

print("hello"+"rune"
print("hello"*3) 


hellorune
hellohellohello

1.3 형 변환 Type Conversion/Type Casting

float() 소수로 형변환
int() 정수로 형변환
str() 문자열로 형변환

문자열을 int, float으로 바꿀 수 없다 = vlaueerror

문자열을 출력할땐 문자들끼리만 있어야한다.

age=7
print("제 나이는" + str(age) + "살 입니다")

∴ 제 나이는 7살입니다

format: 문자열 {}에 파라미터를 넣어 포맷팅. {}안에 연산도 들어갈 수 있다.

year = 2022
month = 10
day = 20

date_string="{}년 {}월 {}일"

print(date_string.format(year, month, day))
print(date_string.format(year, month, day+1))


2022년 10월 20일
2022년 10월 21일

format 활용
1. {}속에 0부터 숫자를 넣으면, format안의 파라미터 중 해당 순서(제일 처음이 0)대로 기입된다.

print("나는 {1}, {0}, {2}를 좋아합니다".format("와인", "커피", "치즈"))

∴ 나는 커피, 와인, 치즈를 좋아합니다.

  1. {}로 도출되는 것이 소수일때, 도출되는 값에 특정 소숫점까지만 보여주고 싶을때 :
    {??:.2f} = 두번째 소수점까지 보여주기
    {??:.0f} = 정수로 표현하기
num_1=1
num_2=3
print("{0} 나누기 {1}는  {2:.2f}이다".format(num_1, num_2, num_1/num_2))

∴ 1 나누기 3은 0.33이다.

format과 유사한 펑션

  • % 기호: 가장 오래된 방식
name = "최지웅"
age = 32
print("제 이름은 %s이고 %d살입니다." % (name, age))
  • f-string: 파이썬 3.6에서 추가된 새로운 방식
name = "최지웅"
age = 32
print(f"제 이름은 {name}이고 {age}살입니다.")

1.4 불 대수

True
Flase
and
or
not : 참이면 거짓으로 거짓은 참으로 바꿔주기
== 같다
!= 같지 않다
<, >, <=, >=

true and true = true
false and false = false
true and false = false

true or true = true
false or false = false
true or false = true

예제)

x==3
print(x>4 or not (x<2 or x==3)) 

∴ false

TIP) type 함수 : 자료 상태를 알려줌
print(type(3)) --- <class 'int'>
print(type(3.0)) --- <class 'float'>
print(type("3")) --- <class 'str'>
print(type(True)) --- <class 'bool'>

def hello():
print("hello world")

print(type(hello)) --- <class 'function'>
print(type(print)) --- <class 'built in funtion or method'>

2. 추상화

2.1 변수

파이썬에서 =은 '같다'가 아니다
왼쪽의 값을 오른쪽의 값으로 지정해주는, 지정연산자다

2.2 Return문 제대로 알기

**Return의 기능 2가지

Return은 1)값을 돌려줄 뿐 아니라 2) 함수를 거기서 종료시킨다.
Return 뒤에 정의된 함수는 Dead code(의미없는 코드)가 된다.

**Return과 Print의 차이

Print는 콘솔에 계산된 값을 보여주지만, 그 자체를 값으로 바꿔주지 않는다.
Return은 가 자체의 값을 바꾸지만 그것을 콘솔에 보여주진 않는다.
파이썬에서 Return문이 따로 없으면 리턴 값이 없다는 뜻에서 None이 자동으로 리턴된다.

예시)

def print_square(x):
	print(x*x)

def get_square(x):
	return(x*x)
    
print(get_square(3))  # 1
print(print_squre(3)) # 2


9
9
None

2)에서 첫번째 9는 def로 정의된 print_square가 도출한 값이고, print_square 그 자체는 펑션만 했지 값은 없기에 (none)으로 취급되어 None이 도출된다.

2.3 Optional Paramenter 파라미터의 기본값

파라미터 중 제일 마지막에 기입
(~, ~, 마지막 파라미터=" ")

예시)

def myself(name, age, nationality="한국"):
    print("내 이름은 {}".format(name))
    print("나이는 {}살".format(age))
    print("국적은 {}".format(nationality))

myself("코드잇", 1, "미국") #옵셔널 파라미터에 값을 제공
myself("코드잇", 1) #옵셔널 파라미터에 값을 제공x


내 이름은 코드잇
나이는 1살
국적은 미국

내이 이름은 코드잇
나이는 1살
국적은 한국

2.4 syntactic sugar

다음 두 줄은 같습니다

x = x + 1
x += 1

x = x + 2
x += 2

x = x 2
x
= 2

x = x - 3
x -= 3

x = x / 2
x /= 2

x = x % 7
x %= 7

2.5 scope

scope: 변수가 사용가능한 범위
로컬변수: 변수를 정의한 함수 내에서만 사용 가능, 파라미터도 로컬변수
글로벌 변수: 모든 곳에서 사용 가능
함수에서 변수를 사용하면, 로컬변수를 먼저 찾고나서 글로벌 변수를 찾음

예시)
x=3
def example():
x=2
print(x)

def example()
print(x)

결과)
2 --- 로컬변수 2
3 --- 글로벌 변수 3

2.6 상수

절대로 바뀌지 않는 수: 상수 constant
상수를 대문자로 표시함으로써 변수와 상수를 구분한다.
코딩상의 제약은 없지만 프로그래머사이의 룰...!!
꼭 필요한 좋은 습관!!

2.7 스타일

이해하기 쉬운, 가독성이 좋은 코드가 좋은 코드

  1. 변수를 사용하기
  2. #코멘트로 변수에 대한 설명을 표기하기
  3. 변수이름을 직관적이게 설정하기
  4. 상수인 경우 이름을 대문자로 바꾸기
  5. 연산자 앞뒤 스페이스(화이트 스페이스 적절하게 활용하기)
  6. 문단 간 엔터로 가독성 높여주기
  7. 필요한 경우, 식을 함수를 바꾸고, 함수에 적절한 이름을 붙이고, 코멘트도 남긴다.

회사마다 스타일 가이드가 있다.
파이썬에서 가장 많이 쓰는 스타일 가이드의 PEP8!

  1. 이름 규칙
    (1) 모든 변수와 함수 이름은 소문자로 써 주시고, 여러 단어일 경우 '' 로 나눠 주세요.
    (2) 모든 상수 이름은 대문자로 써주시고, 여러 단어일 경우
    로 나눠주세요_.
    (3) 변수나 함수의 이름을 그냥 a, b로 하지말고 진짜 그것이 뜻하는 바, 즉 의미있는 이름을 지정해주세요.
    (4) 상수를 맨먼저 정의해주고, 그 다음에 변수를 정의해주세요.

  2. 화이트 스페이스
    (1) 들여쓰기는 무조건 스페이스 4개를 사용하세요.
    (2) 함수 정의 위아래로 빈 줄이 두 개씩 있어야 합니다. 하지만 파일의 첫 줄이 함수 정의인 경우 해당 함수 위에는 빈 줄이 없어도 됩니다.
    (3) 괄호 바로 안에는 띄어쓰기를 하지 마세요.
    (4) 함수를 정의하거나 호출할 때, 함수 이름과 괄호 사이에 띄어쓰기를 하지 마세요.
    (5) 쉼표 앞에는 띄어쓰기를 하지 마세요.
    (6) 지정 연산자(=) 앞뒤로 띄어쓰기를 하나씩만 해 주세요.
    기본적으로는 연산자(+, -..) 앞뒤로 띄어쓰기를 하나씩 합니다. 하지만 연산의 "우선 순위"를 강조하기 위해서는, 연산자 앞뒤로 띄어쓰기를 붙이는 것을 권장합니다.
    (7) 일반 코드와 같은 줄에 코멘트를 쓸 경우, 코멘트 앞에 띄어쓰기 최소 두 개를 해 주세요.

3. 제어문

3.1 while 반복문

while 조건부분:
수행부분

조건부분 = 불린문으로 이 조건부분이 false가 될때까지 수행부분을 반복한다
수행부분 = 반드시 앞에 들여쓰기

예시) "나는 잘생겼다" 100번 쓰기

i = 1
while i =< 100:
	print("나는 잘생겼다")
    i += 1

가장 쉬운 무한반복문
while True:

수행부분

3.2 if 문

if 조건부분: --- 불린만 가능, 참일 경우
수행부분(1)
else: --- 위의 불린이 거짓일 경우
수행부분(2)

조건부분에 and 또는 or을 쓸 수 있음

i = 1
while i <= 100:
    if i % 8 == 0 and i % 12 != 0:
        print(i)
    i += 1

참고) else: 뒤에 continue만 들어가는 상황이다? 그냥 else문 삭제하고 if문만 있어도 무방함

3.3 elif 문

if 조건부분(1):
수행부분(1)
elif 조건부분(2):
수행부분(2)
elif 조건부분(3):
수행부분(3)
elif:
마지막 수행부분(4)

읽기 편하다.
위에서 아래로 차례로 적용된다.

3.4 break & continue

break문
만약 while문의 조건 부분과 상관 없이 반복문에서 나오고 싶으면, break문을 사용하면 됩니다.

(예시) i가 23의 배수면 반복문을 끝냄

i = 100

while True:
    
    if i % 23 == 0:
        break
    i = i + 1

print(i) 

∴ 115

continue문
현재 진행되고 있는 수행 부분을 중단하고 바로 조건 부분을 확인하고 싶으면 continue문을 쓰면 됩니다.
(예시)i가 홀수면 print(i) 안 하고 바로 조건 부분으로 돌아감

i = 0

while i < 15:
    i = i + 1
    if i % 2 == 1:
        continue
       
   print(i) 

∴ 2 4 6 8 10 12 14

profile
코딩 배우는 중

0개의 댓글