본문 바로가기

programming study/Algorithm

[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (1)(2021.1.22)

본 내용은 해당 강의 토대로 작성

파이썬 기초 문법

1. 변수와 출력함수

  • 영문과 숫자, _로 이루어진다.

  • 대소문자를 구분한다.

  • 문자나, _로 시작한다.

  • 특수문자를 사용하면 안된다.(&, % 등)

  • 키워드를 사용하면 안된다.(if, for 등)

  • 대입연산자 =로 값 대입한다.

동시 변수 선언

변수 여러개를 동시 선언할 수 있다.

a, b, c =3, 2, 1

print(a, b, c)

# 3, 2, 1 출력

값 교환

a, b = 10, 20

print(a, b)

a, b=b, a

print(a, b)

'''
10 20

20 10 출력
'''

변수 타입

  • 정수형(int) : 메모리 한도까지 들어갈 수 있다.
a = 12345

print(type(a))

# <class 'int'> 출력
  • 실수형(float) : 8바이트 용량까지 저장 가능, 8바이트가 넘어가면 데이터가 손실된다.
    • 1바이트 = 8비트
    • 8바이트 = 64비트
a = 12.123456789123456789

print(a)

# 전부 출력되지 않는다.
  • 문자열(string) : ''나 ""사이에 쓴다.
a = "student"

print(a)

# student

출력 방식

print("number")

a, b, c  =1, 2, 3

print(a, b, c) # 1 2 3 자동으로 띄어쓰기 출력

print("number", a, b, c) # number 1 2 3 출력

print("number : ", a ,b, c) # number : 1 2 3 출력

print(a, b, c, sep=', ') # 1, 2, 3 출력

print(a, b, c, sep='') # 123 출력

print(a, b, c, sep='\n') # 

'''
a
b
c 출력
'''

print(a, end=' ')
print(b, end=' ')
print(c)
  • sep : separator. 각 변수 사이를 지정한다.
  • \n : 줄바꿈
  • print 함수는 출력 후 줄바꿈을 실행한다.
  • end=' ' : 출력 후 줄바꿈 실행하지 않고 공백을 넣는다.

2. 변수입력과 연산자

변수 입력 받기

  • 변수에 값을 입력할 때 키보드로 입력하도록 한다.
a = input("숫자를 입력하세요 : "); # 입력 문구 출력
print(a);
  • shell 환경에서 변수 a에 입력할 수 있게 된다.

2개 이상의 변수 입력 받기

a, b=input("숫자를 입력하세요 : ").split(); # 변수 두 개를 띄어쓰기를 분리자로 하여 입력 받는다.
print(a, b);
print(a+b); # 문자열 취급되어 연산이 되지 않고 연결되어 나온다.
c = a + b;
print(c) # 문자열 취급되어 연산이 되지 않고 연결되어 나온다.
  • 입력받은 데이터는 숫자라도 문자열로 취급된다.

입력받은 데이터 연산 처리 하기

a, b=input("숫자를 입력하세요 : ").split();
a = int(a);
b = int(b);
print(a + b);
  • 각각 자료형을 바꿔준다.
a, b = map(int, input("숫자를 입력하세요 : ").split());
print(a + b);
  • map : 한 번에 입력받은 자료형을 바꿀 수 있다. 두 개의 인자를 사용한다. (데이터형, 받은 데이터)

사칙연산

a, b = map(int, input("숫자를 입력하세요 : ").split());
print(a + b);
print(a - b);
print(a * b);
print(a / b);
print(a // b); # 몫 연산 
print(a % b); # 나머지 연산
print(a ** b); # 거듭제곱
  • // : 몫 연산
  • % : 나머지 연산
  • : 거듭제곱

다른 데이터형의 연산

a = 4.3; # 실수형
b = 5; # 정수형
c = a + b;
print(type(c)); # 실수형 데이터로 출력
  • 실수가 정수를 포함하는 넓은 범위의 집합이다. 그러므로 정수형과 실수형의 연산 결과는 실수형이 나오게 된다.

3. 조건문(if 분기문, 중첩)

if 문

  • 조건에 따라 명령을 실행
x=7;
if x ==7:
    print("Lucky"); # Lucky 출력
  • 조건문의 속하는 문장은 들여쓰기한다.(공백 4칸)
  • 관계 연산자
    • == : 같은 것인지
    • != : 같지 않은 지

중첩 if문

  • 여러 조건을 만들 수 있다.
x = 15;
if x >= 10:
    if x % 2 ==1:
        print("10이상의 홀수"); 

논리 연산자

  • 논리 연산자를 사용해서 여러 조건을 묶을 수 있다.
x = 7;
if x > 0 and x < 10:
    print("10보다 작은 자연수");

-------------------------------------------------------------------

x = 7;
if 0 < x < 10: # 위와 같은 표현
    print("10보다 작은 자연수");
  • and : 교집합. 두 조건이 맞아야 참.
  • 부등호의 경우, 사이값은 수학에서의 표현처럼 사용할 수 있다.
    • 0 < x < 10

분기문

  • 기존 조건을 참을 만족하지 않는 경우의 분기를 만들 수 있다.
x = 10;
if x > 0:
    print("양수");
else:
    print("음수");

다중 if문

  • 많은 분기를 만들 수 있다.
x = 93;
if x >= 90;
    print('A');
elif x >= 80:
    print('B');
elif x >= 70:
    print('C');
elif x >=60:
    print('D');
else:
    print('F');
  • elif : 2개 이상의 조건을 사용해야하는 경우 쓸 수 있다.
  • if, elif, else는 한 문장 구조이다.
    • 그래서 두 개 이상의 조건에서 참이어도 가장 처음으로 만족한 명령어만 실행한다.
  • 각각의 조건에 if를 쓰면, 각자 별개의 문장이므로 여러개의 조건에 참을 만족하면, 그 만큼 명령어를 실행하게 된다.