일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- 원소주
- stopwords
- PYTHON
- selenium
- 이것이 코딩 테스트다
- 크롤링
- 파일입출력
- pandas
- Django
- ML
- json
- pos_tag
- Trouble shooting
- 그리디
- Logistic linear
- IOPub
- AI
- find_all()
- beautifulsoup
- 머신러닝
- EarlyStopping
- 잡담
- Roc curve
- category_encoders
- semi-project
- 인공지능
- SMTP
- 트러블슈팅
- aof
- auc
- Today
- Total
개발 블로그
[CODELION 강의] [기본] 같이 푸는 PYTHON 본문
코드라이언 AI SCHOOL 첫 번째 주는 Python기본 강의를 듣는 것으로 시작했습니다~~!
Python은 계속 사용했던 언어라서 익숙한 내용들이지만 다시 한번 정리하는 느낌으로 글을 써봅니다!!
목차>
목차
01_01 input(), print(), int()
Python에서 입출력 함수는 input()
과 print()
가 담당합니다.
input()
을 통해 입력받으면 입력받은 값이 숫자여도 문자열 자료형으로 저장됩니다.
따라서 숫자를 입력하였을때 정수형 자료형으로 활용하길 원한다면 int()
함수를 통해 캐스팅해줘야 합니다.
food1 = input("내가 먹은 음식의 가격 : ") #5000입력
food2 = input("친구가 먹은 음식의 가격 : ") #7000입력
food1 = int(food1) #int()로 정수형으로 캐스팅
food2 = int(food2)
print(food1 + food2) #12000출력
- 논외로 라이브러리
sys
를 import하여sys.stdin.readline()
을 통해 입력 받을 수도 있습니다.
주의해야 할 점은 readline()은 개행 문자\n
까지 같이 받는다는걸 유의해야 합니다.
이때strip()
을 사용하면 문자열 맨 앞과 맨 뒤의 공백 문자를 제거할 수 있습니다.
import sys
_input1 = sys.stdin.readline()
print("_input1 출력 : ", _input1)
print("_input1 리스트 : ", list(_input1))
_input2 = sys.stdin.readline().strip()
print("_input2 출력 : ", _input2)
print("_input2 리스트 : ", list(_input2))
출력을 보면 다음과 같이 문자열을 리스트로 만들어서 개행 문자의 유무를 눈으로 확인할 수 있습니다.
차이점
- input()
파라미터로 Prompt Message를 받아서 출력합니다.
즉,food1 = input("내가 먹은 음식의 가격 : ")
같이 Prompt에 띄울 메시지를 전달 인자로 받을 수 있습니다.
(for문을 사용할시 prompt message를 처리하는 부분에서 느려질 수 있습니다.)
개행 문자 \n를 삭제해서 return 합니다. - sys.stdin.readline()
sys 모듈은 파이썬 인터페이스를 제공하는 변수와 함수를 직접 제어할 수 있도록 합니다.
가끔 백준 알고리즘 문제를 풀 때 입력이 많을 경우 시간 초과가 발생하여 sys.stdin.readline()를 사용해야 되는 경우가 있어서 소개했습니다.
02_01 리스트 자료형, append(), insert()
리스트 자료형은 [ ]
대괄호로 감싸서 표현하며, 리스트에 원소를 삽입할 때 append()
, insert()
함수를 사용할 수 있습니다.list()
함수를 이용하여 리스트로 초기화하거나 다른 자료형을 리스트로 변환할 수 있습니다.
orders = ["짜장", "짬뽕", "탕수육"]
""" append()함수는 리스트의 끝에 원소를 삽입한다. """
orders.append("냉면")
print("append() : ", orders)
""" insert()함수는 리스트의 인덱스까지 전달인자로 받아서 인덱스 위치에 원소를 삽입한다. """
orders.insert(1, "깐풍기")
print("insert() : ", orders)
02_02 del(), remove()
리스트 안의 원소를 삭제할 때는 del()
, remove()
함수를 사용합니다.
orders = ["짜장", "짬뽕", "탕수육"]
""" del함수는 리스트의 앞에 쓰며 인덱스값을 통해서 삭제한다. """
del orders[0]
print("del : ", orders)
""" remove()함수는 리스트의 값을 전달인자로 그 값을 삭제한다. """
orders.remove("짬뽕")
print("remove() : ", orders)
02_03 len()
문자열, 리스트, 딕셔너리 등의 길이를 구할 때 len()
함수를 사용합니다.
orders = ["짜장", "짬뽕", "탕수육"]
""" len()함수에 리스트를 전달인자로 하면 리스트의 길이를 반환한다. """
print(len(orders))
""" len()함수에 문자열을 전달인자로 하면 문자열의 길이를 반환한다.
이때 공백문자도 포함한다. """
name = "안녕하세요 코드라이언입니다."
print(len(name))
02_04 sum()
리스트안에 int
,float
같은 숫자 자료형이 들어있을 때 sum()
함수를 이용하여 합을 구할 수 있습니다.
""" 숫자 리스트 """
num = [20, 40, 50, 10, 30]
""" sum()함수는 리스트의 값들을 더한 값을 반환한다. """
add = sum(num)
print(add)
02_05 평균, max(), min()
최댓값은 max()
최솟값은 min()
평균은 sum(num) / len(num)
를 통해 구하는데, 이때 float자료형이 반환돼어 출력에서 30.0으로 소수점이 표시되는 걸 볼 수 있습니다.
int자료형을 얻고 싶다면 몫을 반환하는 연산자 //
을 사용하거나(sum(num) // len(num)
) int()
함수를 사용하여 얻을 수 있습니다.
num = [20, 40, 50, 10, 30]
""" 평균 = (전체의 합)/전체 개수 """
print("평균 = ", sum(num) / len(num))
""" max()는 최댓값, min()은 최솟값 """
print("최댓값 : ", max(num))
print("최솟값 : ", min(num))
03_01 딕셔너리 자료형
딕셔너리는 {}
중괄호를 사용하여 선업합니다.
""" 딕셔너리는 {}중괄호를 통해 선언한다.
key : value 형식으로 데이터를 초기화하며
,(마침표)로 구분한다. """
menu = {"짜장" : 4000,
"짬뽕" : 5000,
"탕수육" : 9000}
print(menu)
03_02 딕셔너리 데이터 삽입, value출력, value수정
딕셔너리는 key를 이용하여 value에 접근 할 수 있습니다.
menu = {"짜장" : 4000,
"짬뽕" : 5000,
"탕수육" : 9000}
""" 딕셔너리 데이터 삽입 """
""" 딕셔너리이름[key] = value """
menu["냉면"] = 6000
print("딕셔너리 데이터 삽입 : ", menu)
""" 딕셔너리 value 출력 """
""" 딕셔너리이름[key] """
print("딕셔너리 value 출력 : ", menu["짜장"], menu["짬뽕"], menu["탕수육"])
""" 딕셔너리 value 수정 """
""" 딕셔너리이름[key] = 수정할value """
menu["탕수육"] = 8500
print("딕셔너리 value 수정 : ", menu)
03_03 딕셔너리 데이터 삭제
딕셔너리에서 리스트와 마찬가지로 del
함수를 이용하여 데이터를 삭제 할 수 있습니다.
menu = {"짜장" : 4000,
"짬뽕" : 5000,
"탕수육" : 9000}
""" 딕셔너리 데이터 삭제 """
""" del 딕셔너리이름[key] """
del menu["짜장"]
print("딕셔너리 데이터 삭제 : ", menu)
04_01 비교연산자
myGrade = 10
yourGrade = 15
""" == 연산자 : 같으면 True, 다르면 False 반환 """
print("10 == 15 : ", myGrade == yourGrade)
""" != 연산자 : 같으면 False, 다르면 True 반환 """
print("10 != 15 : ", myGrade != yourGrade)
""" < 연산자 : 왼쪽 값 보다 오른쪽 값이 크면 True, 작거나 같으면 False 반환 """
print("10 < 15 : ", myGrade < yourGrade)
""" > 연산자 : 왼쪽 값 보다 오른쪽 값이 크거나 같으면 False, 작으면 True 반환 """
print("10 > 15 : ", myGrade > yourGrade)
""" <=연산자 : 왼쪽 값 보다 오른쪽 값이 크거나 같으면 True, 작으면 False 반환 """
print("10 <= 15 : ", myGrade <= yourGrade)
""" >=연산자 : 왼쪽 값 보다 오른쪽 값이 크면 False, 작거나 같으면 True 반환 """
print("10 >= 15 : ", myGrade >= yourGrade)
04_02 if문
myGrade = int(input("학번을 입력하세요 : "))
yourGrade = int(input("학번을 입력하세요 : "))
""" if 조건: """
""" 조건이 True이면 if이하 실행 """
""" else: """
""" if문의 조건이 False인경우 else이하 실행 """
if myGrade == yourGrade:
print("동기네요!")
else:
print("앗 동기가 아니네요!")
04_03 elif문
myGrade = int(input("학번을 입력하세요 : "))
yourGrade = int(input("학번을 입력하세요 : "))
""" if 조건:
elif 조건:
elif 조건:
else: """
""" elif는 if문과 위의 elif문의 조건에서 False이며 자신의 조건이 True이면 실행된다. """
if myGrade == yourGrade:
print("안녕하세요 동기님!")
elif myGrade > yourGrade:
print("안녕하세요 선배님!")
elif myGrade < yourGrade:
print("안녕하세요 후배님!")
else:
print("누구세요?")
04_03 if와 리스트
orders = ["짜장", "짬뽕", "탕수육"]
food = input("먹고싶은 메뉴를 입력해주세요 : ")
""" food의 값이 orders리스트 안에 있다면 True, 없으면 False """
if food in orders:
print("주문 할 수 있습니다.")
else:
print("주문 할 수 없습니다.")
04_04 if와 딕셔너리
menu = {"짜장" : 4000, "짬뽕" : 5000, "탕수육" : 9000}
food = input("먹고싶은 메뉴를 입력해주세요 : ")
""" food의 값이 orders리스트 안에 있다면 True, 없으면 False """
if food in menu:
print("주문 가능")
else:
print("주문 불가")
menu = {"짜장" : 4000, "짬뽕" : 5000, "탕수육" : 9000}
food = input("먹고싶은 메뉴를 입력해주세요 : ")
""" food는 menu딕셔너리의 key값을 받으므로 value에 접근하기 위해서
menu[food]를 사용한다. """
if food in menu:
print(menu[food], "원 입니다.")
else:
print(food, "주문 불가")
05_01 while 반복문
python 반복문 while, for 중에 while 먼저 보겠습니다.
""" while 조건 :
조건이 참이면 while문 블록을 계속 반복한다. """
""" 아래의 경우 조건이 계속 True이므로 무한 루프 """
while 10 < 90:
print("True")
""" 멈추고 싶으면 Ctrl + C 로 강제종료를 합니다. """
i = 5
""" i가 -1이면 조건이 False이므로 루프를 탈출한다. """
while i>=0:
print(i)
i -= 1
05_02 break, continue
반복문 블록내에서 break
문을 만나면 반복문을 종료합니다.
그리고 continue
를 만나면 반복문의 조건으로 되돌아갑니다.
i = 0
while True :
print(i)
i = i + 1
if i >= 3 :
print("if문 동작")
break
print("반복문 종료!")
i = 0
while i < 10 :
i = i + 1
""" i가 짝수일 경우 조건으로 되돌아간다. """
if i % 2 == 0:
continue
print(i) #홀수만 출력
print("반복 종료!")
05_03 for반복문, range()
for 변수 in 시퀀스:
실행될 코드
for i in [10,20,30]:
print("안녕하세요")
#1
for i in range(4):
print(i)
#2
for i in range(10, 20):
print(i)
#3
""" range(시작숫자, 종료숫자, 스텝) """
""" 시작숫자부터 종료숫자까지 반복하는데 스텝의 크기만큼 증가 """
for i in range(10, 20, 2):
print(i)
""" 1부터 100까지 더하기 """
result = 0
for i in range(1, 101):
result = result + i
06_01 별이 빛나는밤에
반복문을 사용하여 별모양을 여러가지 형태로 출력할 수 있습니다.
#1
for i in range(5):
print("*")
#2
""" print()에 두번째 전달인자로 end=""를 사용하면 문장의 끝에 \n이 사라져 줄바꿈이 안된다. """
for i in range(5):
print("*",end="")
- 중첩반복문을 사용하여 사각형, 삼각형 모양 출력하기
""" 별 사각형으로 출력하기 """
for i in range(5):
for i in range(5):
print("*",end="")
print()
""" 별 삼각형으로 출력하기 """
for i in range(5):
for i in range(i+1):
print("*",end="")
print()
- 반복문 하나만 사용하여 사각형, 삼각형 모양 출력하기
""" 별 사각형으로 출력하기 """
for i in range(5):
print("*"*5)
""" 별 삼각형으로 출력하기 """
for i in range(5):
print("*"*(i+1))
06_02 줄 바꿔 출력하기
""" 숫자 거꾸로 출력하기 """
num = 5
for i in range(num,0,-1):
print(i)
""" 한줄에 10개 출력 후 줄바꿔서 출력하기 """
num = 30
for i in range(num):
print(i+1, end = " ")
if i % 10 == 9: # i값의 1의 자리수가 9가 될때마다 print()를 통해 줄바꿈을 합니다
print()
06_03 오늘의 당첨 번호, random()함수 사용
문제) 로또를 몇 개 살 건지 입력 받고 1부터 45까지 숫자 중 6개를 랜덤으로 뽑아서 화면에 오름차순 정렬하여 입력받은 개수만큼 출력합니다.
import random
buyLotto = int(input("로또를 몇 개 살겁니까? "))
""" random.sample(시퀀스, 반환될 리스트 크기) : 시퀀스 범위중에서 랜덤한 값을 리스트 크기 만큼 반환 """
""" sorted(리스트) : 정렬하여 새로운 리스트를 반환 """
for i in range(buyLotto):
randomNumber = random.sample(range(1, 45), 6)
print(sorted(randomNumber))
'Programming Language > Python' 카테고리의 다른 글
[Toy_Project] Python 웹크롤링 - EPL순위 가져오기 (0) | 2022.03.21 |
---|---|
[CODELION 강의] [심화] 같이 푸는 PYTHON - 번역기, 메일 보내기 (0) | 2022.03.18 |
[CODELION 강의] [심화] 같이 푸는 PYTHON - 오늘의 날씨 (0) | 2022.03.18 |
[CODELION 강의] [심화] 같이 푸는 PYTHON - 크롤링 (0) | 2022.03.17 |
[CODELION 강의] 일단 만드는 PYTHON (0) | 2022.03.15 |