플레이데이터 국비지원 day 2(1)

미난·2023년 10월 1일
0

오늘부터 이틀간 자료구조와 흐름제어에 관해 배울 예정이며, 오늘은 자료구조까지만 배울 수 있었다.
기존에 파이썬 공부를 한 상태라서 크게 어렵진 않았지만 기초를 다지는 것이 가장 중요하다고 하셨기에 상세히 기록하려고 한다.

> 변수

  • 변하는 값
  • 다음 예를 변수라고 한다.
a  = 1
b = "python"
c = [1, 2, 3]

변수 표기법

카멜 표기법

  • 낙타의 모양을 연상해서 중간에 툭 튀어나온 단봉 낙타를 생각하면 편한다.
 helloWorld = "Hello World!"
 helloWorld

스네이크 표기법

  • 뱀처럼 쭉 일정하게 일자로 작성되는 표기법이고 언더바(_)까지 추가가 된다.
hello_world =  = "Hello World!"
hello_world 

변수 사용시 주의사항

  1. 의미 없는 변수이름은 사용하지 않는다.
  • ex) a, abc, asdkfjo 등
  • 뜻을 유추할 수 있는 변수이름을 사용해야 코딩 시 효율적이며, 협업시 차질이 생기지 않는다.
  1. 변수명 첫 글자에 숫자를 사용하지 않는다. (문법 오류)
  2. python 키워드 및 정의된 함수 및 클래스명으로 사용 불가

변수 비교

  • is 와 is not 은 변수의 메모리 주소가 같은지 비교한다.
  • == 와 != 은 변수의 값을 비교한다.
x = 100
y = 100

x is y 
> False  # 값은 같지만 x, y의 메모리 주소가 같지 않아 False!

x == y
> True  # 메모리 주소는 다르지만, 값이 같아 True!

상수

  • 변하지 않는 수 (ex. 무지개 색, 원주율 등)
  • 변수명을 대게 대문자로 표현
  • 상수를 사용하고 싶을땐 아래에서 설명할 enum을 쓰는 것이 유용하다.

enum

  • 일반적으로 서로 관련이 있는 여러 개의 상수의 집합을 정의할 때 사용된다.
  • import enum으로 정의 후 사용 가능
import enum

class Rainbow(enum.Enum):
  Red = (enum.auto(), 0)
  Orange = (enum.auto(), 1)
  Yellow = (enum.auto(), 2)
  Green = (enum.auto(), 3)
  Blue = (enum.auto(), 4)
  Navy = (enum.auto(), 5)
  Purple = (enum.auto(), 6)
  
Rainbow.Red.name
> 'Red'
Rainbow.Red.value[1]
> 0

RAINBOW.RED.name = 'GREEN'
> Error 발생 # 상수로 지정한 name을 'GREEN'으로 변경하려고 했기 때문

'Red' in Rainbow.__members__
> True
'Black' in Rainbow.__members__
>False

자료형

어떤 프로그래밍 언어든 "그 언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반을 터득한 것이나 다름없다"는 말이 있다.

자료형이란 프로그래밍을 할 때 쓰는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 뜻한다. 프로그램의 기본이자 핵심 단위가 바로 자료형이다.

숫자형

정수형 (int)

a = 1
b = 1004
c = -100

type(a)
> int

실수형 (float)

  • 소수점이 포함된 숫자를 말한다.
a = 3.14
b = 0.12
c = 4.23E3  # 컴퓨터식 지수 표현 방식으로 E3은 10^3을 의미한다.
c
> 4230.0
d = 4.23e-3 # 컴퓨터식 지수 표현 방식으로 E3은 10^-3을 의미한다.
d
>0.00423

type(a)
> float

숫자형 연산

  • 사칙연산
a, b = 3, 4

a + b  #더하기
> 7

a - b  #빼기
> -1

a * b  #곱하기
> 12

a / b  #나누기
> 0.75 

a ** b  #제곱
> 81

7 & 3  #나머지 연산
> 1 

7 // 3 #몫 연산
> 2

문자열 (str)

문자열 생성

  • 쌍따옴표"" 와 홀따옴표'' 사용
a = "Hello World"
b = 'hello world'

type(a)
> str

이때 주의사항!

  • 작은 따옴표 안에 큰 따옴표는 작성할 수 있지만, 작은 따옴표는 작성할 수 없다.
  • 큰 따옴표 안에 작은 따옴표는 작성할 수 있지만, 큰 따옴표는 작성할 수 없다.
a = 'I'm a student'
b = "He said "Hi""

이스케이프 코드

  • 프로그래밍할 때 사용할 수 있도록 미리 정의해둔 "문자 조합"
  • 출력물(print)을 보기 좋게 정렬하는 용도로 주로 사용된다.
\n: 문자열 안에서 줄을 바꿀때 사용
\t: 문자열 사이에 탭(Tab) 간격을 줄 때 사용
\\: 문자'\'를 그대로 표현할 때 사용
\' & \": 작은 따옴표와 큰 따옴표를 그대로 표현할 때 사용

문자열 연산

# 문자열 더하기
a = "Hello"
b = "World"
a + b
> Hello World

a * 5
> HelloHelloHelloHelloHello

인덱싱

  • 파이썬에서 숫자를 셀 때, 0부터 시작한다는 점을 주의하자!
a = "Hello World!"
a[0]
> H

a[-1]  # -숫자의 의미는 뒤에서부터 숫자번째 값을 의미한다.
> !

슬라이싱

  • 인덱싱과 비슷한 개념(범위와 간격이 존재함)
a = "Hello World!"
a[:4]
> Hell

a[6:]
> World!

# 변수명[시작:끝:간격] (간격은 생략 가능)
a[0:-1:2]
> HloWrd

문자열 포매팅

  • 문자열 안에서 숫자를 넣고 싶은 자리에 %d를 사용한다.
  • 문자열 안에서 문자를 넣고 싶은 자리에 %s를 사용한다.
  • 마지막 방법을 가장 추천
# 첫 번째 방법
print("I eat %d apples." %3)
> I eat 3 apples. 

# 두 번째 방법
number = 10
day = "three"
print ("I ate %d apples. so I was sick for %s days." % (number, day))
> I ate 10 apples. so I was sick for three days.

# 세 번째 방법 (가장 추천)
print("I eat {} apples.".format(3)
> I eat 3 apples.

# 네 번째 방법
number = 10
day = "three"
print(f"I ate {number} apples. so I was sick for {day} days.")
> I ate 10 apples. so I was sick for three days.

문자열 관련 함수들

  • count() : 문자 개수 세기
  • len() : 문자열 길이
  • find() : 인덱싱 위치 알려주기
  • join() : 문자열 삽입
  • split() : 문자열 나누기 (이때 리스트로 형태 변환)
  • upper() : 모든 문자 대문자로 바꾸기
  • lower() : 모든 문자 소문자로 바꾸기
  • strip() : 양쪽 공백 지우기 (lstirp: 왼쪽 공백, rstirp(): 오른쪽 공백)
  • replace() : 문자열 바꾸기
a = "Hello world"

a.count('l')
> 3

len(a)
> 11

a.find('w')
> 6

",".join(a)
> 'H,e,l,l,o, ,w,o,r,l,d'

a.split(" ") # " "을 기준으로 나누기
> ['Hello', 'world']

a.upper()
> 'HELLO WORLD'

a.lower()
>'hello world'

b = "  Hi  "
b.strip()
> 'hi'

b.lstrip()
> 'hi '


b.rstrip()
> ' hi'

a.replace("world", "King")
> 'Hello King'
profile
개발이 하고 싶어요!

0개의 댓글