Eggs Sunny Side Up
본문 바로가기
언어/Python

변수, 문자열 함수

by guswn100059 2023. 3. 23.

# 주석
# 한 줄 주석 => shift + 3
# 여러줄 주석 => ctrl + /
# 파란색 -> command mode : 셀 자체 설정
# 초록색 -> edit mode : 소스 코드 작성

# command mode 단축키
# a : 위로 셀 추가
# b : 아래로 셀 추가
# dd : 셀 삭제
# m : 마크다운 전환(메모장처럼 글 작성)
# y : 마크댜운된 셀 상태를 command mode로 변환(rollback)
# l : 줄 번호를 생성

# edit mode 단축키
# esc : comand로 전환
# ctrl + c : 복사
# ctrl + v : 붙여넣기
# ctrl + x : 잘라내기
# ctrl + z : 앞으로 되돌리기
# ctrl + y : 뒤로 되돌리기
# ctrl + d : 커서가 위치한 줄을 삭제

# 실행 단축키 : 2가지
# ctrl + enter : 해당 셀 하나만 실행
# alt + enter, shift + enter : 셀을 실행하고 아래로 커서 이동


1. 파이썬 변수

자료형을 선언하지 않는다 => 동적 자료형

num = 3
num # 3
print(num) # 3
print(type(num)) # <class 'int'>

 

2. 변수명 규칙

키워드 사용 불가능

함수명은 변수 선언 가능 => 변수명으로 사용하는 것을 권장하지 않음.

import keyword
print(keyword.kwlist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 
# 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 
# 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 
# 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
print = 5
print(print)

print - 프린트 기능이 있는 함수를 변수로 초기화되어 변수 개념이 적용됨

함수를 변수로 사용하게 되면 함수 본래의 기능이 삭제되는 것을 확인할 수 있음.

 

예제)

num1, num2 = 13, 25
num2 = 77
print(num1) # 13
print(num2) # 77
print(num1, num2) # 13 77
num3, num4, num5 = 3.1425, 1.25, 3.12
print(num3, num4, num5)
# 3.1425 1.25 3.12

 

예제)

str1, str2 = "Funny python", 'Easy python'
print(str1, str2)
# Funny python Easy python
str1
str2
# 이 경우엔 마지막 줄에 있는 변수만 실행됨
# 'Easy python'

 

3. 변수 대입 방법

# 변수 a에 10을 대입, b에 15를 대입
a = 10
b = 15
print(a, b)
# 10 15
a, b = b, a
print(a, b)
# 15 10

 

# 변수 str3, str4에 'python'이란 문자열 대입
str3 = 'python'
str4 = str3
print(str3, str4)
# python python
str3 = str4 = 'python'
print(str3, str4)
# python python

 

4. 문자열 사용  방법

command mode에서는 m(마크다운 전환) 을 했을 때,

'#'기호를 이용하여 글의 크기를 조정할 수 있다.

파이썬1 #

파이썬2 ##

파이썬3 ###

파이썬4 ####

파이썬5 #####

파이썬6 ######

# She's gone

str5 = "She's gone" # 쌍따옴표는 '표소리를 바로 표현 가능
str6 = 'She\'s gone' # 홑따옴표는 '표시를 \'(이스케이프 코드)로 표현해줘야 함.

# 아래 구문 출력
# he said that "she is gone"
# he said that she's gone

str = "he said that \"she is gone\""
print(str)
# he said that "she is gone"

str1 = "he said that she's gone"
print(str1)
# he said that she's gone

 

예제) 아래 글 출력

파이썬

- 동적언어

- 직관적, 명시적, 간결함

str = "파이썬\n- 동적언어\n- 직관적, 명시적, 간결함"
print(str)
# 파이썬
# - 동적언어
# - 직관적, 명시적, 간결함

파이썬 추가적인 문자열 기호 : '''문자열''', """문자열"""

# 여러 줄의 문장을 하나의 변수에 담고 싶을 때
# '''문장''', """문장"""
s2 = '''파이썬
- 동적언어
- 직관적, 명시적, 간결함
'''
print(s2)
# 파이썬
# - 동적언어
# - 직관적, 명시적, 간결함

 

5. 특정 문자(열)에 접근하는 방법

-인덱싱(indexing)

-슬라이싱(slicing)

# 문자 인덱싱
s = "This subject is python"

# u에 접근
s[6] # 'u'
s[-16] # 'u'

# subject의 t에 접근
s[11] # 't'
s[-11] # 't'
# 문자 슬라이싱
# s[시작인덱스 : 끝인덱스+1]

s = "This subject is python"

print(s[2:4], s[10, 15], s[18:22]
print(s[-20:-18], s[-12:-7], s[-4:])

# is ct is thon
# is ct is thon
# 문장 처음부터 끝까지 슬라이싱
s[0:22]
s[:] # 첫 인덱스, 끝 인덱스는 생략 가능!

# 슬라이싱[첫인덱스:끝인덱스:증감값] => 증감값의 기본값 : 1
s[::2] # 두 칸씩 이동하면서 데이터 접근
# 'Ti ujc spto'

s[::-1] # 문장의 앞뒤가 바뀐형태로 결과 반환
# 'nohtyp si tcejbus sihT'

 

 

예제)

day = "2023년 3월 23일의 날씨는 비입니다."
print("날짜 : ", day[:12], "\n날씨 : ", day[-5])

# 날짜 : 2023년 3월 23일
# 날씨 : 비

 

6. 문자열 함수

day = "2023년 3월 23일의 날씨는 비입니다."
# day 문자열에서 '비' 인덱스 번호 확인하기

# find 함수
day.find("비")

# index 함수
day.index("비")

# 18
# '맑음'이라는 문자 찾기
day.find("맑음")
# day.index("맑음") # 오류가 발생되는 코드로 주석처리

# index, find 함수 차이 비교 : 문장 안에서 없는 문자열을 찾을 때
# index : 문자를 찾을 수 없다면 에러 발생
# find : 찾는 문자가 없을 경우에 -1을 반환. 에러가 발생하지 않으므로 더 많이 사용됨.

# -1
# len() : 문자열 개수 반환(길이 반환)
len(day) # 공백 ! ? . 모두 포함한 길이를 반환

# 23
# replace() : 특정 문자열을 찾아서 변경하는 함수
# replace("찾을 문자열", "변경할 문자열")
# day : 비 -> 맑음
day = day.replace("비", "맑음")
day

# '2023년 3월 23일의 날씨는 맑음입니다.'
# strip() : 양쪽 공백을 제거하는 함수
day2 = "     오늘은 즐거운 금요일!"
day2 # "     오늘은 즐거운 금요일!"
day2.strip() # "오늘은 즐거운 금요일!"
day2.lstrip() # "오늘은 즐거운 금요일!"
day2.rstrip() # "     오늘은 즐거운 금요일!"
# count() : "찾을 문자열"이 몇 개 있는지 개수를 반환
# count("찾을 문자열")
day3 = "today is friday!"
day3.count("d")
# 2
# 대문자 => 소문자 : lower()
# 소문자 => 대문자 : upper()
day4 = day3.upper()
day4.lower().count("i")
# 2
# split() : 문자열 나눠주는 함수
day4.split() # 기본값은 공백
# ['TODAY', 'IS', 'FRIDAY!']

day4 = "TO,DAY, IS, FRIDAY, !"
day4
# 'TO,DAY, IS, FRIDAY, !'
day4.split(",")
# ['TO', 'DAY', ' IS', ' FRIDAY', ' !']

 

7. 문자열 포매팅 : 문자열 안의 특정한 값을 바꾸거나 추가할 경우 사용하는 기법

%기호 포매팅

format 함수, 포매팅

f 문자열 포매팅

# % 기호 포매팅
day
# '2023년 3월 23일의 날씨는 맑음입니다.'

a = 24
s = "오늘은 3월 %d일 입니다.'%a
s
# '오늘은 3월 24일 입니다.'
# 년도, 월, 일 정보를 받아서 % 포매팅을 활용하여 문장 완성하기
year = 2023
month = 3
day = 24
s = "%d년 %d월 %d일입니다."%(year, month, day)
s
# '2023년 3월 24일입니다.'
# format 함수를 사용한 포매팅
month = 3
d = 25
s = "내일은 즐거운 토요일 - {}월 {}일 입니다.".format(month, d)
s
# '내일은 즐거운 토요일-3월 25일입니다.'
# 인덱스를 활용한 format 함수 사용
s = "오늘은 금요일 {1}월 {0}일 2교시입니다.".format(24, 3)
s
# '오늘은 금요일 3월 24일 2교시입니다.'
# f문자열 포매팅
month = 3
d = 24
s = f"오늘은 {month}월 {d}일 입니다."
s
# '오늘은 3월 24일 입니다.'

lang = "python"
s = "Life is too short, you need '{}'".format(lang)
print(s)
# Life is too short, you need 'python'

s = "Life is too short, you need '{}'".format(lang)
print(s)
# Life is too short, you need 'python'

s = f"Life is too short, you need '{lang}'"
print(s)
# Life is too short, you need 'python'
# 리뷰 변수에서 날짜 가져오기
review = "[수료생 Real 후기] 후기입력 2022.10.13. 작성자 킹수. 드디어 \'인공지능 융합서비스 개발자과정\'을 수료했습니다!! 6개월이라는 길다면 길고 짧다면 짧은 기간 동안 많은 노력을 통해 받아낸 수료인 만큼 마음이 벅차네요. 그치만 정말 재밌고 즐거운 6개월이었습니다. 많은 것을 배웠고, 또 자신감도 얻은 기간이었다고 생각합니다. 이 후기를 본 많은 분들이 저를 따라서 수료를 목표로 도전하셨으면 좋겠습니다!!! 사랑해요 여러분"

# start 변수에 담을 시작 인덱스값 가져오기
start = review.find("2")

# end 변수에 담을 끝 인덱스값 가져오기
end = review.find("3")

# day변수 = [start : end+1]
day = review[19:29]
print(f"후기가 업로드된 일자는 {day}입니다.")
# 후기가 업로드된 일자는 2022.10.13입니다.

'언어 > Python' 카테고리의 다른 글

반복문  (0) 2023.03.31
tuple(튜플)  (0) 2023.03.29
리스트  (0) 2023.03.29
조건문  (0) 2023.03.28
연산자  (0) 2023.03.27

댓글