1.  메소드 method

 

🐰  메소드 method란 특정 객체 object가 가지고 있는 함수 function을 의미
🐰  함수는 독립적으로 호출할 수 있지만, 메소드는 특정 객체를 통해서만 호출할 수 있음

함수()
객체.메소드() : 점(.) 연산자 사용
객체 -> 메소드() php, c

 


 

1)  count()

👩🏻‍🚀  문자열 내부에 포함된 특정 문자열의 개수를 반환하는 메소드

s = '내가 그린 기린 그림은 목 긴 기린 그림이고, 네가 그린 기린 그림은 목 짧은 기린 그림이다.'
print(s.count('기린'))  # 4

# 인덱스를 지정해서 범위를 지정할 수 있음
s = 'best of best'
print(s.count('best',5))  # 1 / 인덱스 5번 부터 검색

# 마이너스 인덱스를 사용할 수 있음
s = 'best of best'
print(s.count('best', -7))  # 1 / o부터 검색

 

 


2) find()

👩🏻‍🚀  문자열 내부에 포함된 특정 문자열을 찾고자 할 때 사용
👩🏻‍🚀  찾고자 하는 문자열이 있으면 그 문자열이 처음으로 나온 위치 즉 인덱스 index를 반환

 

 🐰  find() : 왼쪽부터 찾아서 처음 등장하는 위치를 찾는다

 🐰  rfind() : 오른쪽부터 찾아서 처음 등장하는 위치를 찾는다

 

s = 'apple'
print(s.find('p'))  # 1

# 찾는 문자열이 없는 경우 -1 반환
s = 'apple'
print(s.find('z'))  # -1

if s.find('z') == -1:
    print(s)

# 인덱스를 이용해서 검색할 범위를 지정 가능
# 시작할 인덱스를 지정하지 않는 경우에는 문자열의 처음부터 찾고, 시작할 인덱스를 지정하는 경우 지정된 인덱스부터 찾음
s = 'best of best'
print(s.find('best'))  # 0
print(s.find('best',5))  # 8


# find() 메소드와 찾는 방향이 다른 rfind() 메소드
# right와 find를 합친 이름으로 오른쪽부터 찾음
s = 'best of best'
print(s.find('best'))  # 8

 

  📌  문자열은 0번째 부터 시작, 결과는 해당 글자가 위치한 인덱스를 찾아 리턴함

  📌  찾는 문자열이 없는 경우  -1 반환

 


 

3) index()

👩🏻‍🚀  find() 메소드와 같은 역할을 수행하며 사용방법도 동일. 두 메소드의 차이점은 문자열이 없을 때 발생
👩🏻‍🚀  find() 메소드는 찾는 문자열이 없는 경우 -1을 반환, index() 메소드는 오류 발생

s = 'apple'
print(s.index('p'))  # 1
print(s.index('z'))  # ValueError : substring not found

 


 

4) upper() / lower() / capitalize()

 

 👩🏻‍🚀  upper : 모두 대문자로 변환한 결과를 반환
 👩🏻‍🚀  lower : 모두 소문자로 변환한 결과를 반환
 👩🏻‍🚀  capitalize : 첫 글자는 대문자로 변환하고 나머지는 소문자로 변환한 결과를 반환

 

s = 'Best of best'
print(s.upper())  # BEST OF BEST
print(s.lower())  # best of best
print(s.capitalize())  # Best of best

 


 

5)  join()

 

👩🏻‍🚀  인수로 전달한 반복가능객체(문자열, 리스트 등)의 각 요소 사이에 문자열을 포함시켜 새로운 문자열을 만들고 그 결과를 반환

문자열.join(문자열로 구성된 리스트)
print('-'.join('python'))  # p-y-t-h-o-n

print('+'.join(['a', 'b', 'c', 'd', 'e']))  # a+b+c+d+e

# 포함하는 문자 없이 단순하게 리스트의 요소들을 연결하고자 한다면 빈 문자열 사용
print(' '.join(['x', 'y', 'z']))  # x y z
a = {'a': 'apple', 'b': 'banana'}
print(''.join(a))  # ab / 딕셔너리의 경우 key를 연결

 

 


 

6) split()

 

👩🏻‍🚀  문자열을 '특정한 문자'로 자를 때 사용하는 함수  

s = 'Life is too short'
s2 = s.split()  # split() 메소드에 아무 인수도 전달하지 않으면 공백문자를 기준으로 각 문자열이 분리
print(s2)  # ['Life', 'is', 'too', 'short']

s = '010-1234-5678'
s2 = s.split('-')  # 공백대신 특정 문자열을 기준으로 분리하는 방법
print(s2)  # ['010', '1234', '5678']

 


 

7)  replace()

 

👩🏻‍🚀  문자열의 일부 문자열을 다른 문자열로 바꾼 결과를 반환

s = 'Life is too short'
s2 = s.replace('short', 'long')
print(s2)  # Life is too long

# 특정 문자열을 제거하기 위한 용도로 사용
s = '010-1234-5678'
s2 = s.replace('-', '')
print(s2)  #01012345678

 


 

8)  strip()

 

 strip()    문자열 양옆의 공백을 제거
 lstrip()  문자열 왼쪽의 공백을 제거
 rstrip()  문자열 오른쪽의 공백을 제거

 

s = '     apple'
print(len(s))  # 10

s2 = s.lstrip()
print(s2)  # apple
print(len(s2))  # 5

 

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 자료 ]


 

1.  format() 함수

 

👩🏻‍💻  숫자를 문자열로 변환하는 함수로 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 format() 함수를 사용

       ▶️  중괄호 개수와 format() 함수 괄호 안 매개변수의 개수는 반드시 같아야 함

"{}".format(10)
"{} {}".format(10,20)

 

   📌 위의 구문과 같이 앞쪽에 있는 문자열 {} 기호가 format() 함수 괄호 안에 있는 매개 변수로 차례로 대치되면서 숫자가 문자열로 되는 것

 

zipcode = '06236'
print('우편번호 : {}'.format(zipcode)) # format() 메서드를 이용해 출력
# 결과) 우편번호 : 06236

zipcode_str = '우편번호 : {}'.format(zipcode)
print(zipcode_str)
# 결과) 우편번호 : 06236

address = '''서울특별시 강남구
테헤란로 146''' # multi line
print('주소 : {addr}'.format(addr=address))  # format() 메서드의 변수 이용
# 결과) 주소 : 서울특별시 강남구
# 테헤란로 146

 

  📌  {} 기호의 개수가 format() 함수의 매개변수 개수보다 많으면 IndexError 예외가 발생

 


2.  format() 함수의 다양한 기능

 

1) 정수 출력의 다양한 형태

# 정수를 특정 칸에 출력하기

# 정수
num_a = "{:d}".format(52)

# 특정 칸에 출력하기
num_b = "{:5d}".format(52)  # 5칸
num_c = "{:10d}".format(52) # 10칸

# 빈칸을 0으로 채우기
num_d = "{:05d}".format(52)  # 양수
num_e = "{:05d}".format(-52) # 음수

print('# 기본')
print(num_a)
print('# 특정 칸에 출력하기')
print(num_b)
print(num_c)
print('# 빈칸을 0으로 채우기')
print(num_d)
print(num_e)

 

실행결과

 

📌  {:d}는 int 자료형의 정수를 출력하겠다고 직접적으로 지정하는 것

       ➡️ 매개변수로 정수만 올 수 있다.

📌  {:5d}는 5칸을 빈칸으로 잡고 뒤에서부터 52라는 숫자를 채운다.

📌  {:05d}는 5칸을 잡고 뒤에서부터 52라는 숫자를 넣은 후 앞의 빈곳을 0으로 채운다.

       ➡️ 부호가 있을 때는 맨 앞자리를 부호로 채우고 나머지 빈 곳을 0으로 채움

 

 


# 기호와 함께 출력하기
num_a = "{:+d}".format(33)  # 양수
num_b = "{:+d}".format(-33) # 음수
num_c = "{: d}".format(33) # 양수: 기호 부분 공백
num_d = "{: d}".format(-33)# 음수: 기호 부분 공백

print("# 기호와 함께 출력하기")
print(num_a)
print(num_b)
print(num_c)
print(num_d)

 

 

📌  {:+d} 와 같이 d앞에 +기호를 붙이면 양수와 음수 기호를 표현할 수 있다.

📌  {: d} 처럼 앞에 공백을 두어 기호 위치를 비워주면 함수에 입력한 기호가 표현된다.

 

 

 

 

# < : 지정된 공간 내에서 왼쪽 정렬
# > : 지정된 공간 내에서 오른쪽 정렬
# ^ : 지정된 공간 내에서 가운데 정렬

# 10d는 10자리의 필드 폭을 의미
print("10자리 폭 왼 쪽 정렬 '{:<10d}'".format(123))  
# 10자리 폭 왼 쪽 정렬 '123       '

print("10자리 폭 오른 쪽 정렬 '{:>10d}'".format(123))  
# 10자리 폭 오른 쪽 정렬 '       123'

print("10자리 폭 가운데 정렬 '{:^10d}'".format(123))  
# 10자리 폭 가운데 정렬 '   123    '
print()

# 채움문자를 지정하면 공백 대신 채움문자가 빈자리를 채움
print("10자리 폭 왼 쪽 정렬 채움문자 '{:*<10d}'".format(123))  
# 10자리 폭 왼 쪽 정렬 채움문자 '123*******'
print("10자리 폭 오른 쪽 정렬 채움문자 '{:*>10d}'".format(123))  
# 10자리 폭 오른 쪽 정렬 채움문자 '*******123'
print("10자리 폭 가운데 쪽 정렬 채움문자 '{:*^10d}'".format(123))  
# 10자리 폭 가운데 쪽 정렬 채움문자 '***123****'

 

 


 

# 조합하기
num_a = "{:+5d}".format(33)  # 기호를 뒤로 밀기: 양수
num_b = "{:+5d}".format(-33) # 기호를 뒤로 밀기: 음수
num_c = "{:=+5d}".format(33) # 기호를 앞으로 밀기: 양수
num_d = "{:=+5d}".format(-33) # 기호를 앞으로 밀기: 음수
num_e = "{:+05d}".format(33)  # 0으로 채우기: 양수
num_f = "{:+05d}".format(-33) # 0으로 채우기: 음수

print("# 조합하기")
print(num_a)
print(num_b)
print(num_c)
print(num_d)
print(num_e)
print(num_f)

 

 

 

📌  기호와 공백을 조합할 때 '=' 기호를 앞에 붙일 수 있다.

        ➡️ 5칸의 공간을 잡았을 때 기호를 빈칸 앞에 붙일 것인지, 숫자 앞에 붙일 것인지 지정

 

 

 

 

 

 

 


# 부동 소수점 출력의 다양한 형태
num_a = "{:f}".format(12.345)
num_b = "{:15f}".format(12.345)   # 15칸 만들기
num_c = "{:+15f}".format(12.345)  # 15칸에 부호 추가하기
num_d = "{:+015f}".format(12.345) # 15칸에 부호 추가하고 0으로 채우기

print(num_a)
print(num_b)
print(num_c)
print(num_d)

 

실행 결과

 

# 소수점 아래 자릿수 지정하기
num_a = "{:15.3f}".format(12.345)
num_b = "{:15.2f}".format(12.345)
num_c = "{:15.1f}".format(12.345)

print(num_a)
print(num_b)
print(num_c)

실행 결과

 

📌  15칸을 잡고 소수점을 각각 3자리, 2자리, 1자리로 출력

        ➡️  자동으로 반올림도 일어남

 

 

 


# 의미없는 소수점 제거
num_a = 33.0
num_b = "{:g}".format(num_a)

print(num_a)
print(num_b)

실행 결과

 


3. f-문자열

👩🏻‍💻  formatted strings ; 파이썬 3.6이후 버전에서 사용 가능

👩🏻‍💻  문자열 앞에 'f'를 붙여서 만드는데, 문자열 내부에 표현식을 {} 괄호로 감싸서 삽입할 수 있다.

 

f'문자열{표현식}문자열'

 

who = 'you'
how = 'happy'
print(f'{who} make me {how}') # you make me happy / 문자열에 f 또는 F라는 접두어 prefix를 붙임

age = 25
print(f'내년엔 {age + 1}살이 됩니다.')  # 내년엔 26살이 됩니다.

 

  📌  format() 함수보다 간단하고 직관적이라 대부분 f-문자열을 사용하는 편

 

 

💡 format() 함수를 사용하는 것이 더 좋은 경우

 

   a)  문자열 내용이 너무 많을 때

      - f-문자열을 사용하면 어떤 데이터를 삽입하여 출력하는지 확인하기 위해 문자열을 모두 읽어야 하는 문제가 있다.

   b)  데이터를 리스트에 담아서 사용할 때

     - 리스트를 f-문자열로 형식화해서 출력하려면 [] 기호로 일일이 리스트 요소에 접근해야 하지만,

        format() 함수와 전개 연산자를 사용하면 더 간단하게 입력하여 리스트 요소를 한꺼번에 출력 가능

 

data = ['별', 2, 'M', '서울특별시 강서구', 'Y']
f"""이름: {data[0]}
나이: {data[1]}
성별: {data[2]}
지역: {data[3]}
중성화 여부: {data[4]}"""

"""이름: {}
나이: {}
성별: {}
지역: {}
중성화 여부: {}""".format(*data)

'''
실행결과)
이름: 별
나이: 2
성별: M
지역: 서울특별시 강서구
중성화 여부: Y
'''

 


4. 문자열의 구성 파악하기: isOO()

 

👩🏻‍💻  문자열이 소문자로만 구성되어 있는지, 알파벳으로만 구성되어 있는지, 숫자로만 구성되어 있는지 등을 확인할 때 사용

isalnum() 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
isalpha() 문자열이 알파벳으로만 구성되어 있는지 확인
isidentifier() 문자열이 식별자로 사용할 수 있는지 확인
isdecimal() 문자열이 정수 형태인지 확인
isdigit() 문자열이 숫자로 인식될 수 있는 것인지 확인
isspace() 문자열이 공백으로만 구성되어 있는지 확인
islower() 문자열이 소문자로만 구성되어 있는지 확인
isupper() 문자열이 대문자로만 구성되어 있는지 확인

 

print("Python1".isalnum())
# 실행결과) True

print("33".isdigit())
# 실행결과) True

 

 

 


 

5.  문자열과 'in 연산자'

👩🏻‍💻  문자열 내부에 어떤 문자열이 있는지 확인할 때 'in 연산자' 사용

👩🏻‍💻  리턴 값은 boolean 형 (True / False)

 

print("영희" in "내 이름은 영희입니다.")  # True
print("안녕" in "내 이름은 영희입니다.")  # False

 

 

 

 

 

[ 내용 참고 : 책 '혼자 공부하는 파이썬' 및 IT 학원 강의 자료 ]

 


 

1.  숫자의 종류

 

  👾  정수 integer : 소숫점이 없는 숫자
  👾  실수 floating point : 소수점이 있는 숫자

 

print(type(100))  # <class 'int'>
print(type(3.14)) # <class 'float'>

 

 


 

2. 숫자 연산자

 

a = 7
b = 2
print('{} + {} = {}'.format(a, b, a+b))   # 7 + 2 = 9 / + 덧셈
print('{} - {} = {}'.format(a, b, a-b))   # 7 - 2 = 5 / - 뺄셈
print('{} * {} = {}'.format(a, b, a*b))   # 7 * 2 = 14 / * 곱셈
print('{}/{} = {}'.format(a, b, a/b))     # 7/2 = 3.5 / /나눗셈
print('{} ** {} = {}'.format(a, b, a**b)) # 7 ** 2 = 49 / ** 거듭제곱
print('{} // {} = {}'.format(a, b, a//b)) # 7 // 2 = 3 / //몫
print('{} % {} = {}'.format(a, b, a%b))   # 7 % 2 = 1 / % 나머지

 

 

1)  사칙 연산자 ( +, -, *, / )

 

연산자 설명 구문
+ 덧셈 숫자 + 숫자
- 뺄셈 숫자 - 숫자
* 곱셈 숫자 * 숫자
/ 나눗셈 숫자 / 숫자

 

 

2)  정수 나누기 연산자 : //

  -  숫자를 나누고 소수점 이하의 자릿수를 떼어 버린 후 정수 부분만 남기는 것 = 몫

 

 

3)  나머지 연산자 : %

  -  A를 B로 나누었을 때 남은 나머지를 구하는 연산자

 

 

4)  제곱 연산자 : **

  -  2 ** 4 = 2 * 2 * 2 * 2

 

 


 

3. 연산자의 우선순위

 

👾  곱셈과 나눗셈이 덧셈과 뺄셈보다 우선

👾  같은 우선순위인 경우 연산자는 왼쪽에서 오른쪽 순서로 계산

👾  덧셈이나 뺄셈이 곱셈과 나눗셈보다 먼저 계산되도록 하고 싶다면 괄호() 사용

 

print ((5+3) * 2)
# 결과: 16

 

 


4. TypeError 예외

👩🏻‍💻  서로 다른 자료를 연산하면 발생

# TypeError가 발생하는 경우
string = "문자열"
number = 273
string + number

 

 


 

5.  변수

 

👩🏻‍💻  변수는 값을 저장할 때 사용하는 식별자

👩🏻‍💻  파이썬에서 pi를 변수라고 하며 숫자 뿐만 아니라 모든 자료형을 저장

 

1)  변수를 활용하는 방법

 

   a.  변수를 선언 및 값 할당

# 변수 선언
pi = 3.14159265
''' 
여기서 기호 '='는 같다는 의미가 아닌 우변의 값을
좌변에 '넣겠다', '할당하겠다'를 의미
'''

 

 

   b.  변수 참조

     -  변수에서 값을 꺼내는 것을 의미 

# 변수 참조
2 * pi * r
'''
3.14159265 값을 직접 쓰지 않고
pi를 써서 안에 들어있는 값을 사용
'''

 


 

💡 파이썬은 다른 프로그래밍 언어와 달리 변수에 자료형 지정 x

 

name = 'Alice'  # single line 문자열 저장
age = 25  # 정수를 저장
address = '''
우편번호 12345
서울시 영등포구 여의도동
서울빌딩 501호
'''  # multiple line 문자열 저장
boyfriend = None  # 아무 값도 저장하지 않음
height = 168.5  # 실수를 저장

print(name)  # Alice
print(age)   # 25
print(address) 
#우편번호 12345
 서울시 영등포구 여의도동
 서울빌딩 501호 
print(boyfriend) # None
print(height)    # 168.5

 

 



6.  복합 대입 연산자

 

연산자 이름 설명
+= 숫자 덧셈 후 대입
-= 숫자 뺄셈 후 대입
*= 숫자 곱셈 후 대입
/= 숫자 나눗셈 후 대입
%= 숫자의 나머지를 구한 후 대입
**= 숫자 제곱 후 대입

 

c = 10

c = c + 10
print(c) # 20

c += 10
print(c) # 30

c -= 10
print(c) # 20

c //= 10
print(c) # 2

c *= 10
print(c) # 20

 

 


 

📌  문자열 복합 대입 연산자

연산자 이름 설명
+= 문자열 연결 후 대입
*= 문자열 반복 후 대입

 

string = "안녕하세요"
string += "!"
string += "!"
print("string:", string)
# 결과 : 안녕하세요!!

 

 


 

7.  사용자 입력 :  input()

 

👾  사용자로부터 데이터를 입력받을 때 사용하는 함수

👾  input 함수 괄호 안에 입력한 내용을 프롬프트 문자열

 

n = input('정수를 입력하세요.') # 100
print(n)  #'100'
print(type(n))  # <class 'str'> / input() 함수는 모든 입력을 '문자열 str'로 저장

  

  ⚡️  input() 함수는 숫자를 입력해도 결과는 문자열 자료형으로 리턴된다.

 


 

  📌  문자열을 숫자로 바꾸기

      - 영어로 'cast' 형변환 이라고 함

# 정수로 형변환
n = int(input('정수를 입력하세요.')) 
#n = input('정수를 입력하세요.') #100
#n = int(n)
print(type(n)) # <class 'int'>
# 실수형으로 형변환
a = float(input('첫 번째 실수를 입력하세요 >>> '))
b = float(input('두 번째 실수를 입력하세요 >>> '))

print(f'{a}와 {b}의 합은 {a+b}입니다.')

 


 

  📌 숫자를 문자열로 바꾸기

str(다른 자료형)

print(type(str(3.14))) 
# <class 'str'> '3.14' / 실수 3.14를 문자열 '3.14'로 변환

 

 


8.  ValueError 예외

 

👩🏻‍💻  자료형을 변환할 때 '변환할 수 없는 것'을 변환하려고 하면 발생하는 예외

 

     1) 숫자가 아닌 것을 숫자로 변환

int("안녕하세요")

 

     2) 소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환 

int("10.234")

 

 

 

 

[ 내용 참고 : 책 '혼자 공부하는 파이썬' 및 IT 학원 강의 자료 ]

 


 

1.  자료형과 기본 자료형

 

1) 자료형 data type ; 자료의 형식

 

  👩🏻‍💻  type() 함수로 자료의 형식을 확인

print(type('안녕하세요') # 결과 : <class 'str'>
print(type(100))  # 결과 : <class 'int'>
print(type(3.14)) # 결과 : <class 'float'>
print(type(True)) # 결과 : <class 'bool'>

 

  📌  파이썬의 기본 데이터 타입 4가지 :  정수, 실수, 불, 문자열
  📌  파이썬의 컬렉션 데이터 타입 4가지 :  list, tuple, set, dict

 


 

2) 문자열  String

 

  👩🏻‍💻  글자들이 나열된 것을 '문자열 (String)' 이라고 함

  👩🏻‍💻  문자열 만들 때 큰 따옴표("") 나 작은 따옴표('') 사용

 

     💡  문자열 내부에 따옴표 넣기

print(""안녕하세요"라고 말했다.")

# 결과) SyntaxError: invalid syntax

 

    ⚡️  파이썬 프로그래밍 언어는 자료(문자열)와 자료(문자열)를 단순하게 나열할 수 x

    ⚡️  위의 구문에서 문자열로 인식하는 부분은  [ ""        "라고 말했다." ]

    ⚡️  큰 따옴표를 내부에 넣고 싶으면 작은 따옴표로 문자열을 만들면 됨

           ▶️ 반대로 작은 따옴표를 문자열 내부에 넣고 싶으면 큰 따옴표로 문자열을 만들면 됨

print('"안녕하세요"라고 말했다.')
# 결과 : "안녕하세요"라고 말했다.

 

   


 

① 이스케이프 문자 escape character

 

  -  역슬래시( \ ) 기호와 함께 조합해서 사용하는 특수한 문자를 의미

  · \"   :  큰 따옴표
  · \'    :  작은 따옴표
  · \n   :  줄바꿈
  · \t    :  탭 (띄어쓰기)
  · \\    :  역슬래시(\)를 의미

 

print('Hello \'World\'')
print('*\n**\n***') 
print('이름\t연락처')

''' 
실행결과
Hello 'World'
*
**
***
이름	연락처
'''

 


 

②  여러 줄 문자열

 

  -  삼중 큰 따옴표(""") 및 작은 따옴표(''')사용하면 여러 줄 문자열 기능 지원

      ▶️  주석도 가능

address = '''우편번호 12345
서울시 영등포구 여의도동
서울빌딩 501호'''

print(address)
# 결과
# (공백)
# 우편번호 12345
# 서울시 영등포구 여의도동
# 서울빌딩 501호
# (공백)

 


 

③  줄바꿈 없이 문자열 만들기

 

  - 역슬래시 ( \ ) 사용하면 의도하지 않은 줄바꿈이 들어가지 않게끔 한다.

address = '''\
우편번호 12345
서울시 영등포구 여의도동
서울빌딩 501호\
''' 
print(address)
# 결과
# 우편번호 12345
# 서울시 영등포구 여의도동
# 서울빌딩 501호
# -> 위 아래로 공백 구간이 생기지 않음

 

 


3) 문자열 연산자

 

# 시퀀스 연산자 : 순서가 있는 시퀀스(리스트, 튜플, range, 문자열 등)에서 사용할 수 있는 연산자
# + : 연결하기
# * : 반복하기

tree = '#'
space = ' '
print(space * 4 + tree * 1) #    #
print(space * 3 + tree * 3) #   ###
print(space * 2 + tree * 5) #  #####
print(space * 1 + tree * 7) # #######
print(space * 0 + tree * 9) ##########
print('-' * 20) # --------------------

 

 

💡 문자열 연결 연산자 : +


 "문자열" + "문자열"

   -  두 문자열을 연결해서 새로운 문자열을 만들어 냄

print('안녕' + '하세요')
# 결과 ) 안녕하세요

 

   📌  문자열은 무조건 문자열끼리 + 연산자를 사용해서 연결해야함

   📌  숫자를 연결하고 싶다면 큰따옴표나 작은따옴표를 붙여 문자열로 인식시켜야 함

print('안녕하세요' + '1')
# 결과: 안녕하세요1

 

 


 

💡  문자열 반복 연산자: *

 

    - 문자열을 숫자와 * 연산자로 연결하면 숫자만큼 문자열을 반복할 수 있다.

print('반가워요' * 3)
print(3 * '반가워요')
# 결과 : 반가워요반가워요반가워요

 


 

💡 문자 선택 연산자(인덱싱): []

 

    - 문자열 내부의 문자 하나를 선택하는 연산자

    - 대괄호 [] 안에 선택할 문자의 위치를 지정하며, 이 숫자를 인덱스 index라고 부른다.

    - 파이썬은 제로 인덱스 유형을 사용  ▶️ 숫자를 0부터 세는 인덱스 

 

h e l l o
[0] [1] [2] [3] [4]
[-5] [-4] [-3] [-2] [-1]

 

s = 'hello'
print(s[1]) # e
# 마이너스(-) 인덱스는 문자열 뒤에서 부터 부여, 마지막 인덱스는 -1이 됨
print(s[1] == s[-4]) # True

 


 

💡  문자열 범위 선택 연산자(슬라이싱): [ : ]

 

    -  문자열의 특정 범위를 선택할 때 사용

        ex.  문자열에서 첫 번째 문자부터 세 번째 문자까지 선택 (범위 지정)

    -  범위는 대괄호 안에 위치를 콜론(:)으로 구분해서 지정

    - 파이썬은 범위 지정시 마지막 숫자를 포함하지 않는다.

# s[start:stop:step]
# start : 시작 인덱스를 지정. 생락하면 처음부터 추출
# stop :  종료 인덱스를 지정. 생략하면 끝까지 추출
# step : 인덱스의 증감값, 생략하면 1씩 변화
print()
s = 'banana'
print(s[0:3])  # ban / 종료 인덱스는 포함하지 않음
print(s[0:6:2])  # bnn
print(s[:6:2])  # bnn
print(s[::])  # banana
print(s[2::2])  # nn

 

 


 

💡  IndexError(index out of range) 예외

 

    - 발생 이유 : 리스트/문자열의 수를 넘는 요소/글자를 선택할 때 발생

        ex. '안녕하세요'[10]  ▶️  다섯 글자인데 10번째 문자에 접근  ▶️  IndexError

 


 

4) 문자열 길이 구하기

 

👩🏻‍💻 len() 함수를 사용하여 문자열의 길이를 구함

 

print(len('안녕하세요'))
# 결과: 5

 

 

 

 

 

[ 내용 참고 : IT학원 강의 및 책 '혼자 공부하는 파이썬' ]


 

 

1.  파이썬 용어

 

1) 문장  statement

 

  ·  실행할 수 있는 코드의 최소 단위

  ·  문장들이 모여 프로그램 program 이 된다.

# 실행되는 모든 한 줄 코드는 문장
print('Hello World!!')
10 + 20

 


2) 표현식 expression

 

  · 어떠한 값을 만들어 내는 간단한 코드

     ex.  숫자, 수식, 문자열

 

2024
10 + 20 + 30
"Hello Python!!"

 


 

3) 키워드 keyword

 

  ·  특별한 의미가 부여된 단어로 파이썬이 만들어질 때 이미 사용하겠다고 예약해 놓은 것

  ·  이름을 정할 때 키워드를 사용하면 안 된다.

  ·  파이썬은 대소문자를 구분

       ex.  True는 키워드지만 true는 키워드 x

 

# 키워드인지 확인하는 방법
import keyword
print(keyword.kwlist)

 


 

4) 식별자 identifier

 

  ·  이름을 붙일 때 사용하는 단어, 주로 변수 또는 함수 이름 등으로 사용

     

     📌  규칙

        a. 키워드를 사용 x

        b. 특수 문자는 언더 바(_)만 허용

        c. 숫자로 시작 x

        d. 공백 포함 x

 

  👾  공백 사용 대신 쓰이는 방법

      - 스네이크 케이스 : 단어 사이에 언더 바(_) 기호를 붙여 식별자를 만든다

      - 캐멀 케이스 : 단어들의 첫 글자를 대문자로 만들어 식별자를 만든다

    

  👾  식별자 구분하기

      - 파이썬에서는 첫 번째 글자를 소문자로 적는 캐멀 케이스는 사용 x

      - 캐멀 케이스 ➡️ 클래스 ➡️  뒤에 괄호가 있으면 클래스 생성자

      - 스네이크 케이스 ➡️  함수 또는 변수 ➡️ 뒤에 괄호가 붙어 있으면 함수, 없으면 변수

 


5) 주석 comment

 

  ·  프로그램의 진행에 전혀 영향을 주지 않는 코드

  ·  파이썬은 '#' 기호를 붙여 주석 처리

print('Hello World!!') 
# 문자열을 작은 따옴표나 큰 따옴표 둘 중 택1 붙여서 사용 가능, 세미콜론 안 붙여도 됨

 


 

6) 연산자와 자료

 

  · 연산자는 값과 값 사이에 무언가 기능을 적용할 때 사용하는 것을 말함

        ex. +, -

  ·  리터럴(literal) = 자료 :  숫자이든 문자이든 어떠한 '값' 자체를 의미

 


7) 출력: print()

 

  · 파이썬의 기본적인 출력 방법

print(출력1, 출력2, ... )

 

  ⚡️  여러 개 출력시 내용을 쉼표로 연결해서 여러개 적으면 된다.

print("안녕하세요", "저의", "이름은", "홍길동입니다!") 
# 결과 : 안녕하세요 저의 이름은 홍길동입니다!)

 

 

  ⚡️ print() 함수 괄호 안에 아무것도 입력하지 않으면 단순하게 줄바꿈을 한다.

print("# 아무것도 출력하지 않습니다.")
print("--- 확인 전용선 ---")
print()
print()
print("--- 확인 전용선 ---")
''' 실행결과 )
# 아무것도 출력하지 않습니다.
--- 확인 전용선 ---


--- 확인 전용선 ---
'''

 

 

 

 

[ 내용 참고 : 책 '혼자공부하는파이썬' 및 IT 학원 강의 ]

+ Recent posts