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 = 문법오류라는 뜻
정수끼리 연산하면 정수로, 소수끼리 연산하면 소수로, 소수가 하나라도 있으면 소수로 출력된다.
단, 나눗셈은 무조건 결과값은 소수.
덧셈 +
뺄셈 -
곱셈 *
나눗셈 /: 나누면 무조건 그 결과값은 floating
나머지 %: 나눈 것의 나머지 (8 나누기 3의 나머지는 2)
거듭제곱 **: 2**3은 2의 3승
버림나눗셈 // : floor division, 소숫점 버리기, 두번째 파라미터로 버리는 소수점 위치 설정
반올림 round: 두번째 파라미터로 반올림하는 소수점 위치 설정
"" 또는 '' 안에 넣어 문자로 취급
사용해야하는 문자열 안에 " 또는 '가 사용될 경우 그 앞에 백슬래시 \를 넣어 무효화
print("hello"+"rune"
print("hello"*3)
∴
hellorune
hellohellohello
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("와인", "커피", "치즈"))
∴ 나는 커피, 와인, 치즈를 좋아합니다.
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))
name = "최지웅"
age = 32
print(f"제 이름은 {name}이고 {age}살입니다.")
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'>
파이썬에서 =은 '같다'가 아니다
왼쪽의 값을 오른쪽의 값으로 지정해주는, 지정연산자다
**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이 도출된다.
파라미터 중 제일 마지막에 기입
(~, ~, 마지막 파라미터=" ")
예시)
def myself(name, age, nationality="한국"):
print("내 이름은 {}".format(name))
print("나이는 {}살".format(age))
print("국적은 {}".format(nationality))
myself("코드잇", 1, "미국") #옵셔널 파라미터에 값을 제공
myself("코드잇", 1) #옵셔널 파라미터에 값을 제공x
∴
내 이름은 코드잇
나이는 1살
국적은 미국
내이 이름은 코드잇
나이는 1살
국적은 한국
다음 두 줄은 같습니다
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
scope: 변수가 사용가능한 범위
로컬변수: 변수를 정의한 함수 내에서만 사용 가능, 파라미터도 로컬변수
글로벌 변수: 모든 곳에서 사용 가능
함수에서 변수를 사용하면, 로컬변수를 먼저 찾고나서 글로벌 변수를 찾음
예시)
x=3
def example():
x=2
print(x)
def example()
print(x)
결과)
2 --- 로컬변수 2
3 --- 글로벌 변수 3
절대로 바뀌지 않는 수: 상수 constant
상수를 대문자로 표시함으로써 변수와 상수를 구분한다.
코딩상의 제약은 없지만 프로그래머사이의 룰...!!
꼭 필요한 좋은 습관!!
이해하기 쉬운, 가독성이 좋은 코드가 좋은 코드
회사마다 스타일 가이드가 있다.
파이썬에서 가장 많이 쓰는 스타일 가이드의 PEP8!
이름 규칙
(1) 모든 변수와 함수 이름은 소문자로 써 주시고, 여러 단어일 경우 '' 로 나눠 주세요.
(2) 모든 상수 이름은 대문자로 써주시고, 여러 단어일 경우 로 나눠주세요_.
(3) 변수나 함수의 이름을 그냥 a, b로 하지말고 진짜 그것이 뜻하는 바, 즉 의미있는 이름을 지정해주세요.
(4) 상수를 맨먼저 정의해주고, 그 다음에 변수를 정의해주세요.
화이트 스페이스
(1) 들여쓰기는 무조건 스페이스 4개를 사용하세요.
(2) 함수 정의 위아래로 빈 줄이 두 개씩 있어야 합니다. 하지만 파일의 첫 줄이 함수 정의인 경우 해당 함수 위에는 빈 줄이 없어도 됩니다.
(3) 괄호 바로 안에는 띄어쓰기를 하지 마세요.
(4) 함수를 정의하거나 호출할 때, 함수 이름과 괄호 사이에 띄어쓰기를 하지 마세요.
(5) 쉼표 앞에는 띄어쓰기를 하지 마세요.
(6) 지정 연산자(=) 앞뒤로 띄어쓰기를 하나씩만 해 주세요.
기본적으로는 연산자(+, -..) 앞뒤로 띄어쓰기를 하나씩 합니다. 하지만 연산의 "우선 순위"를 강조하기 위해서는, 연산자 앞뒤로 띄어쓰기를 붙이는 것을 권장합니다.
(7) 일반 코드와 같은 줄에 코멘트를 쓸 경우, 코멘트 앞에 띄어쓰기 최소 두 개를 해 주세요.
while 조건부분:
수행부분
조건부분 = 불린문으로 이 조건부분이 false가 될때까지 수행부분을 반복한다
수행부분 = 반드시 앞에 들여쓰기
예시) "나는 잘생겼다" 100번 쓰기
i = 1
while i =< 100:
print("나는 잘생겼다")
i += 1
가장 쉬운 무한반복문
while True:
수행부분
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문만 있어도 무방함
if 조건부분(1):
수행부분(1)
elif 조건부분(2):
수행부분(2)
elif 조건부분(3):
수행부분(3)
elif:
마지막 수행부분(4)
읽기 편하다.
위에서 아래로 차례로 적용된다.
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