Unit 1. 소프트웨어 교육과 파이썬
C언어 코딩도장에 나온 내용과 거의 동일하다.
이러한 과정에서 파이썬은 네덜란드 귀도 반 로섬이 개발한 프로그래밍 언어로,
연구실 문이 닫혀 있어서 취미삼아 파이썬을 만들었다고 한다. (...?!)
참고로 파이썬 로고가 뱀 모양인 이유는 python 본 뜻이 비단뱀이라 그렇다고 한다.
파이썬의 특징은 쉽고 간단한 문법으로 배우기가 쉽고,
객체 지향 언어이며 다양한 패키지 및 오픈 소스라는 점이다.
(그리고 구글링하면 정말 많은 자료가 나오는 언어 중 하나이다)
Unit 2. 파이썬 설치하기
파이썬을 설치하는 과정이 나온다.
이미 컴퓨터에 파이썬이 설치되어 있기 때문에 간단하게 버전만 확인해보자.
python 버전을 확인하는 방법으로는 두 가지 정도가 있는데,
python --version을 명령 프롬포트에 치는 방법과
직접 python 쉘에 들어가면 처음 나오는 정보로 확인할 수 있다.
Unit 3. Hello, wolrd!
IDLE에서 Hello, world! 출력해보는 것이 내용이다.
똑같이 IDLE을 실행시켜서 따라해보자.
C언어를 공부하다오면 다음과 같이 헷갈릴 수 있는데,
사용되지 않는 함수는 검은 색깔로 사용되지 않는 것을 확인할 수 있다.
이렇게 IDLE 처럼 한 줄 한 줄 코드를 실행해 결과를 얻는 방식을
인터프리터 방식이라고 하며, 해당 프로그램을 파이썬 셸이라고 한다.
또한, Read -> Eval -> Print (REPL) 루프 구조로 방향키로 코드를 다시 띄울 수 있다.
다음과 같이 python 파일(.py)로 저장해서 실행시킬 수도 있다.
또는 저장된 경로의 명령 프롬포트에서 python ~~.py로 실행시킬 수 있다.
또한, print()에서 뒤에 괄호가 붙은 것을 함수라고 하는데,
함수 실행을 호출(call)한다고 말하기도 한다.
(주의할 점은 C언어와 다르게 세미콜론을 붙히지 않는다.)
print('Hello, world!')
print('Hello, world!')
심사문제 정답은 다음과 같은데, 따로 개행 문자를 쓰지 않아도
자동으로 두 줄이 줄 바꿈이 되어서 정상 출력 된다. (...!!)
Unit 4. 기본 문법
파이썬은 기본적으로 세미콜론을 붙이지 않는다.
하지만, 붙여도 문법 에러는 발생하지 않으며 보통 한 줄에
여러 구문을 사용할 때 세미콜론으로 구분해준다.
(ex) print('Hello'); print('1234'))
한 줄 주석은 #, 블록 주석은 """ ~ """, ''' ~ ''' 을 사용할 수 있다.
파이썬에서 들여쓰기 방법은 공백 2칸, 4칸, 탭 1칸 등 여러 방법이 있는데,
파이썬 코딩 스타일 가이드에서는 공백 4칸으로 규정하고 있다.
코드 블록에서 같은 블록은 들여쓰기 칸 수가 같아야 하고,
공백과 탭 문자를 섞어 쓰면 안된다.
Unit 5. 숫자 계산하기
숫자는 정수(int), 실수(float), 복소수(complex) 정도가 있으며,
보통 프로그래밍에서는 정수와 실수를 주로 사용한다.
사칙연산에는 +, -가 있고, 나눗셈 후 소수점 이하를 버리는 // 연산자도 있다.
(ex) 5 // 2 => 2, 버림 나눗셈(floor division)이라 함)
(참고로 실수에 // 연산자를 하면 결과는 실수이고 소수점 이하는 버린다.)
나눗셈 후 나머지를 구하는 % 연산자와,
거듭제곱을 구하는 ** 연산자도 있다.
(C언어 공부할때는 math.h의 pow 함수로 했는데...WoW)
값을 정수로 만들 때는 int(3.3)처럼 만들어준다. (소수점 이하는 버림)
객체의 자료형을 알아내려면 type(값)을 사용해준다.
몫과 나머지를 함께 구하려면 divmod() 함수를 사용한다.
정수는 10진수 이외에도 2, 8, 16진수로 표현할 수 있는데,
2진수는 숫자 앞에 0b를 붙이며 0과 1을 사용한다.
8진수는 숫자 앞에 0o를 붙이며 0부터 7까지 사용한ㄷ.
16진수는 숫자 앞에 0x 또는 0X를 붙이며 0~9, A~F까지 사용한다. (a~f도)
실수 연산할때는 부동소수점 오차가 발생하는데,
파이썬 3.5이상부터는 두 실수가 같은지 판단할 때 math.isclose 함수 등을
사용할 수 있다. (부록에서 확인 가능)
값을 실수로 만들고 싶으면 float(값)을 작성해주면 되고,
복소수에서의 실수부와 허수부의 허수부는 숫자 뒤에 j를 붙인다.
두 실수를 복소수로 만들 때는 complex(값, 값)을 사용하면 된다.
print(102 * 0.6 + 225)
곱셈 연산자가 덧셈 연산자보다 우선이기 때문에 괄호는 필요없다.
Unit 6. 변수와 입력
변수는 변수이름 = 값 형식으로 선언할 수 있고,
변수가 생성되는 동시에 값이 할당(저장)된다.
변수는 영문, 숫자 사용 가능하고 대소문자를 구분한다.
문자부터 시작해야하고 숫자부터 시작하면 안된다.
_(밑줄) 문자로 시작할 수 있고 특수 문자는 사용할 수 없다.
또한, 파이썬의 if, for 등의 키워드는 사용할 수 없다.
여러 개의 변수를 한 번에 만들어 선언할 수 있다.
(ex) x, y, z = 10, 20, 30)
C언어는 scanf 함수가 있다면 Python에는 input 함수가 존재한다.
input 함수로 값을 입력받을 수 있고, 값을 변수에 할당할 수 있다.
(ex) x = input() 이라고 주어지면 변수 x에 값이 할당된다.)
이렇게 입력 받은 값을 공백 등으로 나누기 위해서는 split() 함수를 사용한다.
(ex) a, b = input('문자열 두 개 입력바람: ').split() 이면 각각 a와 b에 값을 저장한다.)
주의할 점은 int()로 변환하지 않으면, 받은 값은 str이기 때문에 문자열끼리 더해진다.
split의 결과를 int로 계속 변환하는 방법은 좋지 않다.
이럴 때는 map 함수를 함께 사용해주면 되는데,
a, b = map(int, input('숫자 두 개를 입력바람: ').split()) 이라고 작성하게 되면
split의 결과를 모두 int로 변환해준다.
split() 함수 내에 다른 문자로 지정해주면 해당 문자를 기준으로 분리한다.
a = 50
b = 100
c = 'None'
print(a)
print(b)
print(c)
a, b, c, d = map(int, input().split())
average = (a+b+c+d)//4
print(average)
Unit 7. 출력 방법
print에는 여러 개의 값 혹은 콤마로 구분하여 출력할 수 있다.
또한, sep로 값 사이에 문자 넣을 수 있는데 콤마와 공백 지정 등이 가능하다.
또는 print(1, 2, 3, sep='\n') 처럼 개행 문자를 넣어주면 줄 바꿈이 가능하다.
또한, end로 값 뒤에 문자를 삽입할 수 있다.
year, month, day, hour, minute, second = input().split()
print(year, month, day, sep='-', end='T')
print(hour, minute, second, sep=':')
Unit 8. 불과 비교, 논리 연산자
여기서 불은 fire가 아니라 boolean이다. (...;;)
불린은 참(True)와 거짓(False)를 나타낸다.
비교 연산자에는 <, >, ==, !=, >=, <= 정도가 있다.
특히, 문자열은 비교할 때 대소문자를 구분한다.
객체가 같은지 다른지 비교도 가능한데, is 혹은 is not처럼 사용 가능하다.
(ex) 1 is 1.0 => False 인데, 정수와 실수 각 객체가 달라서 False를 반환한다.)
논리 연산자에는 and, or, not 연산자가 존재한다.
식 하나에 전부 들어있으면 not, and, or 순으로 판단하게 된다.
(ex) not True and False or not False -> False and False or True
-> False or True -> True가 된다. not 부터 검사, and 검사)
a, b, c, d = map(int, input().split())
if(a>=90 and b>80 and c>85 and d>=80):
print('True')
else:
print('False')
Unit 9. 문자열 사용
문자열은 작은따옴표, 큰따옴표, 작은따옴표 3개, 큰따옴표 3개로 묶을 수도 있다.
여러 줄로 된 문자열을 사용할 수 도 있는데 작은따옴표 3개로 시작하고 끝에 입력한다.
문자열 안에 작은따옴표를 넣고 싶다면 문자열을 큰따옴표로 묶어준다.
s = """'Python' is a "programming language"
that lets you work quickly
and
integrate systems more effectively."""
print(s)
Unit 10. 리스트와 튜플
값을 여러개 저장하기 위해 리스트를 사용하는데,
리스트 = [값, 값, 값] 처럼 사용할 수 있고 각 값을 요소(element)라고 부른다.
빈 리스트를 만들 때는 리스트 = [], 리스트 = list() 라고 선언해주면 된다.
리스트는 range를 사용해서 만들수도 있는데, range는 연속된 숫자를 생성한다.
리스트 = list(range(횟수)) 처럼 만들 수 있고,
리스트 = list(range(시작, 끝)) 처럼도 만들 수 있다.
리스트 = list(range(시작, 끝, 증가폭)) 처럼도 가능하다.
튜플은 리스트처럼 요소를 일렬로 저장하지만,
안에 저장된 요소를 변경, 추가, 삭제가 불가능하다. (읽기 전용 리스트처럼 생각)
튜플 = (값, 값, 값) 처럼 사용하면 된다.
요소가 한 개 들어있는 튜플은 튜플 = (값, ) 처럼 사용하면 되고,
리스트처럼 튜플 = tuple(range(횟수)) 처럼 그리고 시작과 끝과 증가폭처럼 가능하다.
튜플을 리스트로 만들거나 리스트를 튜플로 만들 수 있는데,
a = [1,2,3]; tuple(a) 처럼 만들거나 b = (1,2,3); list(b) 처럼 만들 수 있다.
n = int(input())
num = tuple(range(-10, 10, n))
print(num)
부동소수점 관련해서 부록을 보게되었다..!
'Study > python' 카테고리의 다른 글
[Python] 코딩도장 공부 (Unit 41~44) (0) | 2022.09.30 |
---|---|
[Python] 코딩도장 공부 (Unit 31~40) (0) | 2022.09.29 |
[Python] 코딩도장 공부 (Unit 21~30) (0) | 2022.09.28 |
[Python] 코딩도장 공부 (Unit 11~20) (0) | 2022.09.27 |