문자열
Python은 문자와 문자열을 구분하지 않음!
Python은 문자개념이 없음, 그냥 몽땅 다 문자열
"" 또는 '' 두 표현이 같은 표현이기에 맘에 드는걸 골라 사용하면 됨
일반적으로 문자열을 표현할때는 ''을 관용적으로 이용
a = '소리없는 아우성' b = 'hello World' print(type(a)결과
<class ' str'>
a = 'Hello' b = 'World' result = a + b print(result)결과
Hello World
a = 'this is a sample text' print(a[0]) print(a[-1]) print(a[2:6]) print('sam' in a) print('haha' not in a) #결과 t t # (마지막 t) is i # 공백도 하나의 문자열로 취급 True True # not in은 in의 반대 (포함되어 있지 않은가?를 의미)
a = 'this is a sample text' result = a.upper() # upper()메서드는 변수안의 문자열을 대문자로 변경해준다 print(result)THIS IS A SAMPLE TEXT 출력됨
a = 'show me the money'1. 이 문자열의 길이는?
print(len(a)) # 18출력됨 // 이 함수는 size, 즉 length의 약자로 길이를 알려줌2. 문자열의 앞뒤 공백을 제거하려면 어떻게 해야하나요?
print(a.strip()) # 문자열의 앞 뒤의 공백을 제거한 나머지 문자열을 가져옴!3. 문자열중 일부 문자열을 다른 문자열로 변경하려면 어떻게 해야하나요?
- 'money'를 'code'로 변경한다고 치자
print(a.replace('money' , 'code')) # money라는 문자열을 code로 바꿈4. 문자열의 일부분을 치환하는 방법
num_banana = 20 num_apple = 7 a = '나는 바나나 {}개 가지고 있고 사과를 {}개 가지고 있어요!' result = a.format(num_banana, num_apple) print(result) # 나는 바나나 20개 가지고 있고 사과를 7개 가지고 있어요! print('바나나 개수 : {}'.format(num_banana)) # 바나나 개수 : 20- 출력하고 싶은 문자열의 문자를 변경하고 싶다면 중괄호를 사용하여 바꾸고 싶은 범위를 설정하고
- format() 메소드를 이용하여 변경
a{'name' : '홍길동', 'age' : 20, 'addr' " '서울'} print(a){'name' : '홍길동', 'age' : 20, 'addr' " '서울'} 출력
- 추가적으로 데이터를 저장하려면 어떻게 하나?
a['mobile'] = '01033334444' print(a) 결과 {'name' : '홍길동', 'age' : 20, 'addr' " '서울', 'mobile' : '01033334444'} 출력
- dictionary안의 값을 조회하려면
print(a['name']) # 홍길동 출력됨
- 값을 수정하려면
a['age'] = 30 print(a) # {'name' : '홍길동', 'age' : 30, 'addr' " '서울', 'mobile' :'01033334444'}
a = {'name' : '아이유', 'age' : 20, 'age' : 30} #의미론적으로는 맞지 않지만 코드 에러는 일어나지 않는다! print(a) # 같은 키 값은 하나만 출력되고 나머지는 무시된다! #{'name' : '아이유', 'age' : 20}이 출력됨a = {'name' : '홍길동', 'age' : 20} a[10] = '서울' # key 값을 정수로 사용하면 되나? print(a) # {'name': '홍길동', 'age': 20, 10: '서울'} 가능함a = {'name' : '홍길동', ['address'] : '서울'} # Error key 값으로 list 사용 불가! a = {'name' : '홍길동', ('address',) : '서울'} # key 값으로 tuple은 사용가능! => 키 값은 변하면 안되기 때문에 list는 불가 tuple은 가능!a = {'name' : '아이유', 'age' : 20} # 모든 key값을 얻어내는 기능(메소드) print(a.keys()) # dict_keys(['name', 'age']) # 만약 진짜 list라면 => ['name', 'age'] 출력되야 함 # 모든 value값을 얻어내는 기능(메소드) print(a.values()) # dict_values(['아이유', 20]) # 모든 key와 value의 쌍을 얻어내는 기능(메소드) print(a.items()) # dict_items([('name', '아이유'), ('age', 20)]) # key와 value를 tuple로 만들어서 리스트처럼 생성 print(a) # {'name' : '아이유', 'age' : 20} a.clear() # 몽땅 삭제 print(a) # {}
clas set
set은 주머니 개념
여러개의 데이터를 저장
순서가 없음!
키의 개념이 없음 ! (값만 저장함)
set 안에서는 중복을 허용하지 않음 ! (set의 가장 큰 특징)
literal => {} (dicionary와 set은 둘다 {} 사용)
a = {'홍길동', '아이유', 20, '서울'} print(a){'아이유', 20, '서울', '홍길동'} 출력됨
print(type(a))으로 찍어보면 <class 'set'>이 출력됨
a = {'홍길동', '아이유', 20, '서울', '서울', '홍길동', '아이유'} print(a) # {'아이유', 20, '서울', '홍길동'} 중복 값이 사라짐
a = set([1, 2, 3, 4, 5]) b = set([3, 4, 5, 6, 7)]
- 합집합(Union)
result = a | b print(result) # {1, 2, 3, 4, 5, 6, 7} 출력 중복값 사라짐!
- 교집합(intersection)
restult = a & b print(result) # {3, 4, 5} 출력!
- 차집합(difference)
result = a - b print(result) # {1, 2} 출력!
a = {1, 2, 3} a.add(6) print(a) # {1, 2, 3 ,6} 출력 a.add('안녕') print(a) # {1, 2, 3 ,6, '안녕'} 출력 a.add((45,) print(a) # {1, 2, 3 ,6, '안녕'. (45,)} 출력 a.add([1,2,3,4]) a.add({'name' : '홍길동'}) a.add({6, 7, 8}) # 3개다 Error // 즉, 값이 고정되어 있는 값들만 들어갈 수 있음!!a = {1, 2, 3} # add는 1개만 추가, update는 여러개 추가 a. update([6, 7, 8]) # 인자로 일반적으로 리스트가 옴 print(a) # {1, 2, 3, 6, 7, 8} # 특정 요소 삭제 a.remove(2) print(a) # {1, 3, 6, 7, 8} 출력
print(True and False) # False print(True and True) # True print(True or False) # True print(not True) # False print(type(True)) # <class 'bool'>
다음의 값들은 모두 False로 간주됨
= 이렇게 4가지의 경우 출력시 False로 간주됨
if 20 > 30: print('Hello") else: print('haha')
- 20이 30보다 작음으로 else문 내부의 문장이 실행되어 'haha'가 출력된다!
a = [1, 2, 3, 4, 5] for kk in a: print(kk) #결과 1 2 3 4 5 for kk in range(3): print('안녕') #결과 안녕 안녕 안녕
a = 0 while a < 4: print('히히') a = a + 1 print('끝났어요!') # 결과 히히 히히 히히 끝났어요!
- break 구문
- 반복문에서 사용되고 break를 만나면 가장 가까운 반복문을 탈출!
a = 0 while True: print('히히') a = a + 1 if a == 5: break print('끝났어요!') # 결과 히히 히히 히히 히히 히히 끝났어요!