늦은 프로그래밍 이야기
자료형 본문
변수
1. 변수 선언
- 변수이름 = 값 의 형태로 선언
a = 3 # 숫자 3을 a에 넣는다.
b = 'abc' # 문자열 abc를 b에 넣는다.
2. 출력
- 출력할 때는 print() 를 사용
a = 3
b = 'abc'
print(a, b) # 3 abc
자료형
1. 숫자 (Integer), 불 (Boolean)
1 ) 숫자
- 정수, 실수 사용가능
a = 5
b = 4.8
- 사칙연산, 몫, 나머지, 제곱
a = 3
b = 2
a+b # 5
a-b # 1
a*b # 6
a/b # 1.5
a//b # 몫 1
a%b # 나머지 1
a**b # 제곱 9
- 대입연산
a = 3
a = a + 3
print(a) # 6
a += 3
print(a) # 9
2) 불
- 대문자로 시작해야 함.
a = True
b = False
- 비교연산자
4 > 2 # True
5 < 1 # False
6 >= 5 # True
4 <= 4 # True
3 == 5 # False
4 != 7 # True
- 논리연산자
a = 4 > 2 # True
b = 5 < 1 # False
a and b # false
a or b # True
not a # False
* And 연산자 : 모두 True여야 True
* Or 연산자 : 둘 중 하나만 True면 True. 둘다 False여야 False.
* Not 연산자 : 반대로 바꿔줌.
2. 문자열 (String)
1) 문자열
- 작은따옴표('), 큰따옴표(") 둘 다 사용가능.
- 숫자에 따옴표 사용 시 문자열이 된다.
a = 'abc' # 작은따옴표로 감싸면 문자열이 된다.
b = "3" # 숫자를 따옴표로 감싸면 문자열이 된다.
2) 문자열 연산
- 문자열 사이에 (+) 연산자 사용시 문자열을 이어붙인다.
- 문자열과 정수는 더할 수 없다.
a = "abc"
b = "def"
c = 3
a + b # abcdef
a + c # 에러
3) 인덱싱, 슬라이싱
- 0부터 카운팅
- 인덱싱
a = 'abcdef'
print(a[1]) # b
- 슬라이싱
a = 'abcdef'
print(a[1:3]) # cd
print(a[-1]) # f (맨마지막)
4) 메소드
- 문자열 길이 len()
a = len('abc')
print(a) # 3
- 문자열 나누기 split()
a = 'abc@gmail.com'
b = a.split('@')
print(b[0]) # abc
print(b[1]) # gmail.com
c = b.split('.')
print(c[0]) # gmail
print(c[1]) # com
한번에 이어 붙일 수 있다.
a = 'abc@gmail.com'
b = a.split('@')[1].split('.')
print(b[0]) # gmail
print(b[1]) # com
5) f-string
- 결과 값을 문장에 넣어 출력하고 싶을 때
a = 'abc@gmail.com'
b = a.split('@')
id = b[0]
email = b[1]
print('아이디는 '+id+'이고, 이메일은 '+email+'이다.')
# 아이디는 abc이고, 이메일은 gmail.com이다. 출력
- f-string을 사용하면 간단해진다. (출력할 문장앞에 f 작성, {변수} 입력
print(f'아이디는 {id}이고, 이메일은 {email}이다.')
# 위와 동일하게 출력.
3. 리스트
1) 리스트
- 다른 자료형들을 순서에 맞게 나열.
- 리스트 요소로써 리스트와 딕셔너리도 사용가능.
a = [1, 2, 3]
b = [1, 'b', 3]
c = [1, 2, 3, ['a', 'b', 'c']] # 리스트를 리스트에 넣을 수 있다.
d = [1, 2, 3, {'name' : 'Kim'}] # 딕셔너리를 넣을 수도 있다.
2) 인덱싱, 슬라이싱
- 인덱싱
a = [1, 2, 3, ['a', 'b', 'c']
print(a[3][0]) # a (요소가 리스트인 경우)
- 슬라이싱도 동일하게 사용가능.
3) 메소드
- 길이 재기 len()
a = [1, 2, 3, 4, 5]
print(len(a)) # 5
- 덧붙이기 append()
a = [1, 2, 3, 4]
a.append(5)
print(a) # [1, 2, 3, 4, 5]
a.appent([1, 2])
print(a) # [1, 2, 3, 4, 5, [1, 2]]
대입 연산과 비교 (리스트로 합쳐지지 않는다.)
a = [1, 2, 3, 4]
a += [1, 2]
print(a) # [1, 2, 3, 4, 1, 2]
- 정렬하기 sort()
a = [1, 4, 3]
a.sort()
print(a) # [1, 3, 4]
a.sort(reverse=True) # 반대로도 정렬이 가능
print(a) # [4, 3, 1]
- 요소가 리스트 안에 있는지 확인하기 in
a = [1, 3, 6, 'a', 2]
print('a' in a) # True
print(4 in a) # False
print('b' not in a) # True
참, 거짓으로 값을 출력.
4) 리스트 + 딕셔너리
- 리스트 내에 딕셔너리 사용 가능
a = [{'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}]
print(a[0]['name']) # bob
print(a[1]['name']) # carry
b = {'name': 'john', 'age': 7}
a.append(b)
print(a) # [{'name':'bob','age':20}, {'name':'carry','age':38}, {'name':'john','age':7}]
print(a[2]['name']) # john
4. 딕셔너리 (Dictionary)
1) 딕셔너리
- 키(key), 밸류(value)의 쌍으로 이루어진 자료.
- 순서가 없으므로 인덱싱 사용불가, 키 값을 넣어 원하는 값을 출력.
a = {'name':'Bob', 'age':21}
print(a['name']) # Bob
- 값을 업데이트, 새로운 자료 추가
a = {'name':'Bob', 'age':21}
a['name'] = 'John' # 업데이트
print(a) # {'name':'John', 'age':21}
a['height'] = 180 # 추가
print(a) # {'name':'John', 'age':21, 'height':180}
- 밸류로 아무 자료형이나 사용가능 (딕셔너리 자료 사용가능)
a = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}
print(a["scores"]) # {'math': 81, 'science': 92, 'Korean': 84}
print(a["scores"]["science"]) # 92
딕셔너리 내에 리스트도 사용가능
b = {"name":"Alice", "age": 16, "scores": [81, 92, 84]}
print(b["scores"]) # [81, 92, 84]
print(b["scores"][1]) # 92
2) 메소드
- 키(key)가 딕셔너리 내에 있는지 확인하기 in
a = {"name":"Bob", "age": 21}
print("name" in a) # True
print("email" in a) # False
print("phone" not in a) # True
5. 튜플 (Tuple)
- 리스트와 비슷하지만 값이 불변인 자료형.
a = (1, 2, 3)
print(a[0]) # 1
a[2] = 4
print(a) # 에러
a.append(4)
print(a) # 에러
- 딕셔너리 대신 리스트와 튜플로 딕셔너리 비슷하게 만들어 사용
a_dict = [('bob','24'), ('john','29), ('smith','30')]
6. 집합 (Set)
1) 집합
- 중복이 제거 된다.
a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
a_set = set(a)
print(a_set) # {1, 2, 3, 4, 5}
2) 교집합, 합집합 , 차집합
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
print(a & b) # 교집합
print(a | b) # 합집합
print(a - b) # 차집합
'내일배움캠프 > Python' 카테고리의 다른 글
| 숫자 각 자리수를 리스트 요소로 변환 (0) | 2022.11.16 |
|---|---|
| 반복문으로 2차원 리스트의 요소 출력하기 (0) | 2022.11.16 |
| 함수 (0) | 2022.11.08 |
| 조건문, 반복문 (0) | 2022.11.08 |