파이썬 기초 #2 문자열, 포맷팅, 리스트, 튜플, 딕셔너리

5105 단어 파이썬pythonpython

String 문자열

my_str = "안녕하세요"

print(my_str)
print( type(my_str))

my_str = '감사해요'
print(my_str)

'''스트링'''
"""스트트링링"""

my_str = """
안녕하세요
감사해요
잘있어요
"""
print( my_str)
#세개씩하면은 줄바꿈 가능

독스트링과 동일하게 스트링은 '와 "를 사용하여 넣을 수 있고 세개씩 사용하면 안에 줄바꿈이 가능하다.

Formatting 포맷팅

my_str = 'My name is %s' % 'ony'
print(my_str)
# %s 문자열 대입

print('%d %d' % (1,2))
#%d 정수형 숫자 대입

'%f' % 3.14
# %f 실수형 3.14 같은 숫자 대입

C언어 스타일
%s - 문자열 / %d - 정수형 숫자 / %f - 실수형 숫자 ex)3.14
문자열안에 %s,%d,%f 등을 배치하고 % 뒤에 대입하고 싶은 자료를 넣으면 된다.

my_format = 'My name is {}'.format('ony')
print(my_format)

my_format = '{} x {} = {}'.format(2, 3, 2*3)
print(my_format)
# 자료형 상관없이 대입 가능하고 ()안에 , 이걸로 여려개 대입 가능

my_format = '{1} x {0} = {2}'.format(2, 3, 2*3)
print(my_format)
# {}안에 인덱스값을 넣어주면 순서대로가 아니라 그 인덱스값 순서로 들어감

파이썬 스타일
'{}'.format.()
자료형에 상관없이 대입 가능하며, 여러개 대입가능하다.
위의 방법보다 파이썬스러운 방식으로 이를 더 많이 사용한다.

Indexing & Slicing - 인덱싱과 슬라이싱

my_name = "ony540의 파이썬공부"
print(my_name[8])
print(my_name[-1])
#음수로도 표현가능 맨끝에 문자가 -1이고 그 앞은 -2로 점점 숫자가 작아짐

인덱싱
문자열안에서도 문자마다 주소(인덱스 값)이 있다
맨처음이 0으로 뒤로 갈수록 1씩 늘어나거나(양수로 표현), 맨 끝의 문자가 -1이고 앞으로 갈수록 1씩 줄어든다.(음수로 표현)

#위의 my_name에서 파이썬을 뽑으려면  8 11으로 잘라야함
#문자열에서 공백도 인덱스 한칸의 값을 가진다 ! ! !
print( my_name[8:11])
print( my_name[:11]) #맨앞부터 11번째 앞에서 짜르기
print( my_name[5:]) #5번째 뒤로  맨끝까지 짜르기

슬라이싱
인덱스번호가 앞의 숫자인 것부터 뒷 숫자 앞까지 자른다.
예 [1:4] 인덱스가 1번째부터 4번째 앞!!까지 자른다. ny5까지 (실제로는 2,3,4 번째 애들을)

슬라이싱을 한 값을 복사하는거지 그 문자열이 진짜 잘리는게 아니다. 보통 슬라이싱 값을 복사해서 다른 변수나 원래 변수로 설정한다(=)

print( my_name.split() )

fruit_str = '수박 포도 복숭아 망고 딸기 참외'
fruits = fruit_str.split()
print(fruits)
# 스플릿은 띄어쓰기 기준으로 잘라서 리스트로 만든다

string.split() 스플릿 매서드
스플릿은 띄어쓰기 기준으로 잘라서 리스트로 만든다

++ 함수 - 어떤 기능을 모아서 이름을 붙여서 반복해서 쓸 수 있는 것
매서드 - (스트링이라는) 자료형이 가진 함수!



List 리스트

my_list = []

print(type(my_list))

my_list = [1,2,3]
print(my_list)

std = ['오예스', '일예스', '이예스']
# 문자도 리스트 목록으로 가능

std.append('삼예스')
# 리스트 맨 뒤에 추가하기

print(std)

리스트 - Mutable(변형 가능한) 자료구조
[val1, val2,..]

.append() - 맨 뒤에 벨류 하나를 추가할 수 있는 매서드


animals = []
animals.append('코알라')
animals.append('기린')
animals.append('거북이')
animals.append('코끼리')


animals.insert(0,'코끼리')
#인서트 인덱스 위치에 값넣는  

print(animals)

animals.append('스컹크')
animals.append('다람쥐')
animals.append('햄스터')

print(animals)
print(animals[2])

del animals[3]
#리스목록에서 거북이 삭제하기 

print(animals)

print( animals[1:3] )
#슬라이싱 1에서 3 사이에 잘라서 복사 ( 벨류  사이사이에 숫자가 있다고 생각하기)

#list.sort()
#가나다 순으로 소트함 정렬함

animals.sort()

print(animals)
print(animals.count('다람쥐'))
#해당 객체가 몇개인지 확인

print(len(animals))
#안에 값이 몇개 있는지 확인하는 내장함수

list.insert(0,'코끼리') - 인덱스 위치에 뒤의 값을 넣는 매서드
list.sort() - 가나다 순으로 소트,정렬하는 매서드
list.count('다람쥐') - 해당 객체가 리스트안에 몇개인지 확인하는 매서드

del animals[3] - 리스트에서 인덱스번호가 3인 객체 삭제하는 함수
len(animals) - 안에 값이 몇개 있는지 확인하는 내장함수

  • 스트링과 동일하게 리스트도 슬라이싱이 가능하다 ex) animals[1:3]



Tuple 튜플

my_tuple = ()

print( type(my_tuple) )

my_tuple = (1,2,3)
my_tuple = 1,2,3
# 괄호 없어도됨

print(my_tuple)
print( type(my_tuple) )

#패킹 언패킹 여러값을 묶고 푸는 거 

my_tuple = 1,2,3  
#이걸 묶어서 한번에 저장 이거를 패킹이라고함 ! 

num1, num2, num3 = my_tuple
#언패킹 !! num1에는 1이 들어가고 각자 나눠서 들어가짐 ! 

print( num1 ) 
print( num2 ) 
print( num3 ) 

#num1 = 2 num2 =1 로 바꾸려면!
num1, num2 = num2, num1
print( num1 ) 
print( num2 ) 

튜플 - Immutable(변형 불가능한) 자료구조
(val1,val2,..) val1,val2,..
괄호없어도 튜플로 된다.
여러값을 묶어서 한번에 저장하는 패킹이나, 각자 나눠서 값이 들어가는 언패킹이 가능하다.
변형이 불가능하기때문에 append는 불가능하다



Dictionary 딕셔너리

my_dict ={}

my_dict[0]= 'a'
my_dict['ony']= 24
my_dict['학생1']= '오사공'
my_dict['학생2']= '오리'
my_dict['학생3']= '오레오' #키와 벨류값에 숫자와 문자 모두 사용 가능

print( my_dict['학생1']) #학생1의 벨류값이 나옴

print(my_dict)

del my_dict[0] # 0 값을 마이딕트에서 삭제
del my_dict['ony'] # ony 값을 마이딕트에서 삭제
print(my_dict)

#딕셔너리의 매서드
#dict.values()  
for std in my_dict.values():
    print(std)
#dict.keys()
for key in my_dict.keys():
    print(key)
#dict.items()
for key,val in my_dict.items():
    print(key, val) # 값이 나눠서 이렇게 나옴 ! !

딕셔너리 - 키와 벨류값을 가진 자료구조
{key1: val1, ...}
my_dict[키값] 하면 해당하는 벨류값이 나온다

딕셔너리의 매서드
dict.values() - 벨류값만 나온다
dict.keys() - 키값만 나온다
dict.items() - 벨류, 키 둘다 나오는데 따로 값이 나눠서 나옴

좋은 웹페이지 즐겨찾기