2023.08.01 - [캠프/AI 웹개발 취업캠프] - [AI 웹개발 취업캠프] 12Day - Python(2)
파이썬 소개
파이썬(Python)이란
1989년 12월 네덜란드의 귀도 반 로섬 프로그래머가 크리스마스 이전에 회사가 7일 쉬어서 취미로 만들었대.. ???
이름은 코미디 프로를 보다가 파이썬이라는 단어가 나와서..??
파이썬은 문법이 어렵지 않고 쉽게 작성할 수 있다
인터프리터에서 바로 실행하여 그 결과를 확인할 수 있다.
생산성이 높아 개발 속도가 빠르다
자료형과 변수
문자형 자료형
문자열(string)은 문자로 이루어진 데이터의 타입,
파이썬에서는 다음과 같이 다양한 방법으로 문자열을 표현할 수 있다.
- 큰따옴표(" ")로 감싸기
- 작은따옴표(' ')로 감싸기
- 큰따옴표 3개(""" """)로 감싸기
- 작은따옴표 3개(''' ''')로 감싸기
이스케이프 문자 | 기능 |
\n | 다음 줄로 이동(개행) |
\r | 해당 줄의 처음으로 이동 |
\t | 탭(공백) |
숫자형 자료형
숫자형은 1, 2, 3.14와 같은 숫자의 형태로 이루어진 데이터의 타입,
이 중에서 1, 2 와 같이 소수점이 없는 숫자형 데이터를 정수형(integer) 타입이라고 하고
3.14와 같이 소수점을 가지고 있는 숫자형 데이터를 실수형(floating-point) 타입이라고 한다.
boolean 자료형
불리언 타입은 논리값인 참(True), 거짓(False) 중 한 가지만을 가질 수 있는 데이터 타입
변수
컴퓨터의 메모리 공간을 주고, 그 공간 안에 값을 집어 넣어 나중에 다시 해당 데이터에 접근
예제풀이
# 예제
# 변수명 : station / bus_num / min
# 예제 1번
# 다음 문장을 위 변수명을 사용하여 완성해 보세요.
# 서울역행 207버스가 7분 후 도착합니다.
# 인천공항행 405번 버스가 3분 후 도착합니다.
# 예제 2번
# 질문에 대한 답을 True/False로 나타내보세요.
# 질문 : 인천공행행 버스는 잠시 후에 도착하나요? (도착시간이 5분보다 적으면 잠시후 도착이라고 함.)
# 예제 3번
# 위에서 나타낸 변수의 값과 변수의 데이터 타입을 나타내시오. (변수의 값은 마지막 변수의 값을 사용)
예제 1번
station = "서울역"
bus_num = 207
min = 7
print(station + "행 " + str(bus_num) + "버스가 " + str(min) + "분 후 도착합니다." )
station = "인천공항"
bus_num = 405
min = 3
print(station + "행 " + str(bus_num) + "버스가 " + str(min) + "분 후 도착합니다." )
예제 2번
eta = min <= 5
print(station + "행 버스는 잠시 후에 도착하나요? " + str(eta))
예제 3번
print("값:station - " + str(station))
print("타입:station - " + str(type(station)))
print("값:bus_num - " + str(bus_num))
print("타입:bus_num - " + str(type(bus_num)))
print("값:min - " + str(min))
print("타입:min - " + str(type(min)))
print("값:eta - " + str(eta))
print("타입:eta - " + str(type(eta)))
연산과 문자열 슬라이싱
연산자
산술 연산자
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
비교 연산자
< | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 True를 반환함. |
<= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 True를 반환함. |
> | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 True를 반환함. |
>= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 True를 반환함. |
== | 왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 True를 반환함. |
!= | 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 True를 반환함. |
논리 연산자
or | & | 논리식 중에서 하나라도 True이면 True를 반환함. |
and | | | 논리식이 모두 True이면 True를 반환함. |
not | 논리식의 결과가 True이면 False를, False이면 True를 반환함. |
문자열 슬라이싱
문자열 자르기 = 문자열 슬라이싱(slicing)
콜론(:)기호를 사용하면 문자열의 일부분만을 자를 수 있으며,
이때 콜론의 앞쪽에 위치한 인덱스부터 콜론의 뒤쪽에 위치한 인덱스 바로 앞 문자까지를 반환
문자열 관련 함수
find() | 단어를 쭉 보다가 제일 먼저 발견된 인덱스의 번호 출력 |
count() | 단어를 보다가 해당 단어 값이 몇개 있는지 출력 |
index() | 단어를 쭉 보다가 제일 먼저 발견된 인덱스의 번호 출력 |
len() | 값의 길이를 출력 |
upper() | 모든 문자를 대문자로 변환 |
lower() | 모든 문자를 소문자로 변환 |
strip() | 공백 삭제 |
replace() | 첫 번째 인수로 전달된 문자열을 두 번째 인수로 전달된 문자열로 변경 |
split() | 전달받은 문자를 기준으로 해당 문자열을 여러 개의 부분 문자열로 나눔 |
예제풀이
# 예제
# 성인이 되어서 취직한 친구들과 1년중 두번은 정기적으로 만나기로 했습니다.
# 조건 1 랜덤으로 뽑아야합니다.
# 조건 2 하반기(7 ~ 12)와 상반기(1 ~ 6)에 한번씩 만나야합니다.
# 출력문 : 정기모임은 상반기 X월 하반기 X월에 진행합니다.
from random import *
day1 = randrange(1,7)
day2 = randrange(7,13)
print("정기모임은 상반기" + str(day1) +"월 하반기 " + str(day2) + "월에 진행합니다.")
# 예제
# 에피노 레일에서 새로운 기차를 발명해서 이름을 지으려고합니다.
# 다음 조건에 맞춰 이름을 지어주세요.
# 조건 1 : EFFINO에서 앞에 3글자를 사용
# 조건 2 : EFFINO에서 F의 갯수 사용
# 조건 3 : EFFINO의 총 글자 갯수를 사용
# 조건 4 : 만들어진 글자에서 BUS를 붙힌 후에 BUS를 TRAIN으로 변경해주세요.
# 조건 5 : 만들어진 이름에서 TRAIN만 소문자로 변경해주세요.
#
# 출력문은 포맷을 사용해서 출력해주세요.
# "EFFINO레일의 새로운 기차 이름은 EFF26train입니다."
# 조건 1
name = "EFFINO"
case1 = name[:3]
print(case1)
# 조건 2
case2 = name.count("F")
print(case2)
# 조건 3
case3 = str(len(name))
print(case3)
# 조건 4
case4 = name + "BUS"
print(case4)
case4 = case4.replace("BUS", "TRAIN")
print(case4)
# 조건 5
case5 = case4.replace("TRAIN",case4[6:].lower())
print(case5)
# 출력문
name1 = case5[:3]+str(case2)+str(case3)+case5[6:]
print("{}레일의 새로운 기차 이름은 {}입니다.".format(name, name1))
리스트와 튜플 그리고 사전
리스트
기본 데이터 타입인 숫자형 타입, 불리언 타입, 문자열 타입과는 별도로 이들로 구성되는 다양한 컨테이너 형태의 데이터 구조를 제공
특징
- 리스트에 저장되는 요소가 모든 같은 타입이지 않아도 된다.
- 요소들이 순서대로 저장되며, 각 요소는 0부터 시작하는 인덱스를 사용하여 접근할 수 있다.
- 값을 변경할 수 있다.
리스트명 = [요소1, 요소2, 요소3, ...]
리스트끼리의 연산
리스트끼리의 더하기(+) 연산은 두 리스트를 서로 연결시켜주며
리스트와 정수의 곱하기(*) 연산은 해당 리스트의 모든 요소들을 정수배만큼 반복해서 연결
리스트에 요소 추가/제거
append() 함수는 전달된 인수를 해당 리스트의 마지막 요소로 추가
remove() 함수는 전달된 인수를 해당 리스트에서 찾아 제거
리스트에 요소 삽입/꺼내기
insert() 함수는 해당 리스트의 지정된 인덱스에 전달된 인수를 요소로 삽입
pop() 함수는 전달받은 인덱스에 위치한 요소를 리스트에서 추출하여 반환
리스트 뒤집거나 정렬
reverse() 함수는 리스트의 모든 요소를 역순으로 뒤집어서 반환
sort() 함수는 리스트의 모든 요소를 순서대로 정렬
튜플
여러 개의 데이터를 하나로 묶는데 사용
- 값의 변경 불가능
- 리스트와 같은 데이터 타입에 비해 실행 속도가 빠름
튜플명 = (요소1, 요소2, 요소3, ...)
또는
튜플명 = 요소1, 요소2, 요소3, ...
집합 자료형(세트)
우리가 수학에서 자주 접한 개념인 집합과 같은 개념
하나의 포대 안에 모든 데이터를 몰아서 저장하는 것으로 쉽게 이해해 볼 수 있다
세트 타입에서는 각 요소들의 순서를 매길 수 없으며, 중복된 값 또한 허용하지 않는다
중괄호({})로 감싸서 선언하며, 요소(element)들은 쉼표(,)로 구분
세트명 = {요소1, 요소2, 요소3, ...}
집합 연산
| | 합집합 |
& | 교집합 |
- | 차집합 |
^ | 여집합 = 합집합 - 교집합 |
사전(딕셔너리)
단어 그대로의 '사전'과 같이 별도로 정의한 키(key)를 통해 각 요소에 접근할 수 있도록 만들어진 데이터 타입
딕셔너리는 중괄호({})로 감싸서 선언하며, 딕셔너리의 각 요소(element)들은 쉼표(,)를 사용하여 구분
이러한 딕셔너리의 요소는 또다시 키(key)와 값(value)의 한 쌍으로 구성되며, 이 둘은 콜론(:)으로 연결
딕셔너리명 = {요소1, 요소2, 요소3, ...}
요소 = 키(key): 값(value)
딕셔너리 사용하기
대괄호([])를 사용하여 키(key)를 전달함으로써 해당 키로 저장된 값을 얻을 수 있다
딕셔너리의 내장 함수인 get() 함수를 사용해도 같은 결과를 얻을 수 있다
dict1 = dict({'자바': 80, 'PHP': 90, 'HTML': 70})
print(dict1['자바'])
print(dict1.get('자바'))
딕셔너리에 요소 추가/제거
요소를 추가하려면 대괄호([]) 안에 키(key)를 넣고 대입 연산자(=)를 사용하여 값(value)을 저장
{‘파이썬’: 100}이라는 요소를 딕셔너리 dict1에 추가하려면
dict1[‘파이썬’] = 100
del 키워드를 사용하여 딕셔너리에 포함된 특정 요소를 제거
dict1 = dict({'자바': 80, 'PHP': 90, 'HTML': 70})
del dict1['PHP']
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.
'코딩캠프 > AI 웹개발 취업캠프' 카테고리의 다른 글
[AI 웹개발 취업캠프] 23.08.01 과제 (0) | 2023.08.01 |
---|---|
[AI 웹개발 취업캠프] 23.07.31 과제 (0) | 2023.08.01 |
[AI 웹개발 취업캠프] 23.07.28 과제 (0) | 2023.07.29 |
[AI 웹개발 취업캠프] 10Day - JS의 WebAPI(2) (0) | 2023.07.28 |
[AI 웹개발 취업캠프] 23.07.27 과제 (0) | 2023.07.28 |