Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- python
- 코딩테스트준비
- API
- SQL
- 장고
- 프로그래머스
- 그리디
- 알고리즘
- Riot
- 리그오브레전드
- sort
- java
- 자바
- 내일배움캠프
- 스파르타내일배움캠프TIL
- 탐욕알고리즘
- Django
- drf
- 파이썬
- 롤
- 그리디알고리즘
- greedy
- 스파르타내일배움캠프
- lol
- 라이엇
- github
- 백준
- programmers
- 코딩테스트
- git
Archives
- Today
- Total
Lina's Toolbox
스파르타 내일 배움 캠프 AI 웹개발 과정 복습 | 파이썬 기초 문법 / 리스트, 딕셔너리, 인덱싱, 슬라이싱, split() 등 본문
스파르타 내일 배움 캠프 AI 웹개발 과정/python
스파르타 내일 배움 캠프 AI 웹개발 과정 복습 | 파이썬 기초 문법 / 리스트, 딕셔너리, 인덱싱, 슬라이싱, split() 등
Woolina 2024. 7. 5. 16:59
Pycharm 설치/ 등록은 다음 게시글 참조 : https://kimwoolina.tistory.com/8
변수
값을 담는 박스. 메모리 공간을 가리키고 있다. (이 공간과 연결)
변수이름 = 값의 형태로 작성.
연산
a//b # 3 (몫)
a%b # 1 (나머지)
a**b # 49 (거듭제곱)
Boolean 자료형의 활용
x = True # 참
y = False # 거짓
# 소문자로 쓰면 자료형으로 인식하지 않고 변수명이라 생각해 에러가 납니다~
z = true # name 'true' is not defined
True = 1 # (에러) True/False는 변수명으로 쓸 수 없어요!
4 > 2 # True 크다
5 < 1 # False 작다
6 >= 5 # True 크거나 같다
4 <= 4 # True 작거나 같다
3 == 5 # False 같다
4 != 7 # True 같지 않다
a = 4 > 2 # True
not a # False NOT 연산자로 참을 거짓으로, 거짓을 참으로 바꿔준다.
a and b # False AND 연산자로 모두 참이어야 참을 반환한다.
a or b # True OR 연산자로 둘 중 하나만 참이면 참이다.
# Print(4 > 2) -> True 출력
# 이런 형태로 활용 가능
문자열 자료형
'문자들의 모임'
# 작은 따옴표 또는 큰 따옴표. 둘 다 같아요!
a = "aa"
b = 'aa'
# 따옴표로 감싸지 않으면 변수이름을 뜻하기 때문에 꼭 구분해서 써야합니다!
a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 1
문자열 연산
first_name = "Harry"
last_name = "Potter"
first_name + last_name # HarryPotter
first_name + " " + last_name # Harry Potter
a = "3"
b = "5"
a + b # 35
🚨 문자열과 정수를 더하면 에러가 발생하니 주의!
a = "3"
a + 5 # 문자열과 숫자형은 더할 수 없어서 에러!
문자열 메소드(method)
# 모든 알파벳을 대문자/소문자로 바꾸기
sentence = 'Python is FUN!'
sentence.upper() # PYTHON IS FUN!
sentence.lower() # python is fun!
# 특정 문자를 기준으로 문자열을 나누기
# 이메일 주소에서 도메인 'gmail'만 추출하기
myemail = 'test@gmail.com'
result = myemail.split('@') # ['test','gmail.com'] (뒤에 배울 '리스트'라는 자료형이에요 :))
result[0] # test (리스트의 첫번째 요소)
result[1] # gmail.com (리스트의 두 번째 요소
result2 = result[1].split('.') # ['gmail','com']
result2[0] # gmail -> 우리가 알고 싶었던 것
result2[1] # com
# 한 줄로 한 번에!
myemail.split('@')[1].split('.')[0]
# 특정 문자를 다른 문자로 바꾸기
txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'
인덱싱과 슬라이싱
인덱싱 : 문자열을 한 글자 씩 부를 때는 몇 번째인지 '인덱스'를 넣어 불러서 인덱싱이라고 한다.
f="abcdefghijklmnopqrstuvwxyz"
f[1] # b 파이썬은 숫자를 0부터 셉니다
슬라이싱 : 문자열의 일부를 잘라낼 때.
f[4:15] # efghijklmno f[4]부터 f[15] 전까지, 총 15-4=11개!
f[8:] # ijklmnopqrstuvwxyz f[8]부터 끝까지, 앞의 8개 빼고!
f[:7] # abcdefg 시작부터 f[7] 전까지, 앞의 7개!
f[:] # abcdefghijklmnopqrstuvwxyz 처음부터 끝까지
# 특정 문자열로 자르고 싶을 때 split('문자열')을 활용
myemail = 'abc@sparta.co'
domain = myemail.split('@')[1].split('.')[0]
print(domain)
리스트
순서가 있는, 다른 자료형들의 모임
a = [1, 5, 2]
b = [3, "a", 6, 1]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]
# 리스트에는 다른 자료형들을 한번에. 심지어 또다른 리스트도 넣을 수 있다 !
a_list = [2,'배', 'False', ['사과','감']]
print(a_list[3][1]) # 감
# 리스트의 길이도 len() 함수를 사용해서 잴 수 있어
a = [1, 5, 2]
print(len(a)) # 3
b = [1, 3, [2, 0], 1]
print(len(b)) # 4
# 순서가 있기 때문에, 문자열에서처럼 인덱싱과 슬라이싱을 사용할 수 있다.
a = [1, 3, 2, 4]
print(a[3]) # 4
print(a[1:3]) # [3, 2]
print(a[-1]) # 4 (맨 마지막 것)
# -1 인덱스는 무조건 제일 마지막 요소가 출력됨 !
a_list = [1,5,6,3,2]
list[-1] = 2
# 요소가 리스트 안에 있는지 알아보기
print(5 in a_list)# True 혹은 False가 출력된다.
리스트 정렬(Sorting)
- sort 함수는 리스트명.sort( ) 형식으로 "리스트형의 메소드"이며 리스트 원본값을 직접 수정 => return 을 해주는 게 아니므로 이 값을 변수에 넣어주면 None이 나오므로 주의!!
- sorted 함수는 sorted(리스트명) 형식으로 "내장 함수"이며 리스트 원본 값은 그대로이고 정렬 값을 반환
# List Sorting
a_list = [1,5,6,3,2]
# sort()
# 원본을 정렬하고 수정(in-place)
# 오름차순
a_list.sort()
# 내림차순
b_list = a_list.sort(reverse = True)
print(a_list) # [1, 2, 3, 5, 6]
print(b_list) # None
# sorted
# 원본은 유지하고 정렬한 새 리스트를 만듦
c_list = sorted(a_list)
딕셔너리
딕셔너리는 키(key)와 밸류(value)의 쌍으로 이루어진 자료의 모임. 리스트와 달리 순서가 없다.
# 딕셔너리를 만드는 데는 여러가지 방법을 쓸 수 있다.
a = {"one":1, "two":2}
# 빈 딕셔너리 만들기
a = {}
a = dict()
one이 two 보다 순서가 먼저인 게 아님. 순서라는 개념 자체가 없음!
# 딕셔너리의 요소에는 순서가 없기 때문에 인덱싱을 사용할 수 없다.
person = {"name":"Bob", "age": 21}
print(person[0]) # 0이라는 key가 없으므로 KeyError 발생!
# 딕셔너리의 값을 업데이트하거나 새로운 쌍의 자료를 넣을 수 있다.
person = {"name":"Bob", "age": 21}
person["name"] = "Robert"
print(person) # {'name': 'Robert', 'age': 21}
person["height"] = 174.8
print(person) # {'name': 'Robert', 'age': 21, 'height': 174.8}
# 딕셔너리의 밸류로는 아무 자료형이나 쓸 수 있다.
# 심지어 다른 딕셔너리를 넣을 수도 있다.
person = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}
print(person["scores"]) # {'math': 81, 'science': 92, 'Korean': 84}
print(person["scores"]["science"]) # 92
# 딕셔너리 안에 해당 키가 존재하는지 알고 싶을 때는 in을 사용
person = {"name":"Bob", "age": 21}
print("name" in person) # True
print("email" in person) # False
print("phone" not in person) # True
# 리스트와 딕셔너리의 조합
people = [{'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}]
# people[0]['name']의 값은? 'bob'
# people[1]['name']의 값은? 'carry'
person = {'name': 'john', 'age': 7}
people.append(person)
# people의 값은? [{'name':'bob','age':20}, {'name':'carry','age':38}, {'name':'john','age':7}]
# people[2]['name']의 값은? 'john'
조건문
# 다양한 조건을 판단할 때는 elif 사용
age = 27
if age < 20:
print("청소년입니다.")
elif age < 65:
print("성인입니다.")
else:
print("무료로 이용하세요!")
반복문
# 나이 출력
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
if person['age'] > 20:
print(person['name'])
# enumerate
#인덱스와 원소로 이루어진 튜플(tuple)을 만들어준다.
for entry in enumerate(['A', 'B', 'C']):
print(entry)
#출력
#(0, 'A')
#(1, 'B')
#(2, 'C')
for i, letter in enumerate(['A', 'B', 'C']):
print(i, letter)
#0 A
#1 B
#2 C
# break문
# 앞에 5개만 출력하고 싶은 경우
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
for i, fruit in enumerate(fruits):
print(i, fruit)
if i == 4:
break
함수
반복적으로 사용하는 코드들에 이름을 붙여놓은 것
# 주민등록번호를 입력받아 성별을 출력하는 함수 만들기
def check_gender(pin):
num = pin.split('-')[1][:1]
if int(num) % 2 == 0:
print('여성')
else:
print('남성')
my_pin = "200101-3012345"
check_gender(my_pin)
[:1] 문자열 첫번째 글자
저번주에 웹종반을 완강하고 금요일부터 파이썬 기초/심화 강의들을 수강하기 시작했다!
프로그래밍 언어가 보통 비슷해서 90% 정도는 아는 내용
lambda나 filter처럼 코딩 하다가 본 적은 있지만 따로 문법 시간에 배운 적은 없었던 것도 있었다.
'스파르타 내일 배움 캠프 AI 웹개발 과정 > python' 카테고리의 다른 글
VScode 파이썬 익스텐션 추천, Vscode 단축키, 파이썬 파일 실행하기, 가상환경, 파이썬 코드 컨벤션, autopep8 formatter 설정 (0) | 2024.07.08 |
---|---|
파이썬 문법 심화 / 튜플, 집합(Set), f-string, 파일 불러오기, map, filter, lambda, *args, **kwargs 등 (0) | 2024.07.08 |
스파르타 내일 배움 캠프 AI웹개발 | 파이썬 팀 과제 / 클래스 인스턴스(객체) 활용 (0) | 2024.07.04 |
스파르타 내일배움캠프 AI웹개발 과정 | 6일차 복습/Pycharm 설치 (2) | 2024.07.01 |
Pythonanywhere로 내 코드 배포하기 (0) | 2024.06.28 |