[참고 게시글]
https://docs.python.org/ko/3.9/tutorial/introduction.html
3. 파이썬의 간략한 소개 — Python 3.9.17 문서
3. 파이썬의 간략한 소개 다음에 나올 예에서, 입력과 출력은 프롬프트(>>> 와 …)의 존재 여부로 구분됩니다: 예제를 실행하기 위해서는 프롬프트가 나올 때 프롬프트 뒤에 오는 모든 것들을 입
docs.python.org
1. 변수선언과 자료형
▶ 변수 선언
# 변수 이름 = 값
# a = b와 b = a는 다름.
a = b는 a라는 변수에 b라는 값을 넣은 것이고, b = a는 그 반대
# 변수는 값을 넣어주는 그릇으로서 변수에 담긴 값을 가리키고 있음
컴퓨터에서 값이 들어있는 그 메모리 공간 주소를 변수가 가리키고 있는 것
▶ 자료형
# 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료형태로 사용하는 모든 것
# 숫자형(정수형, 실수형)
사칙연산(+, -, *, /) 가능. 몫(//), 나머지(%), 거듭제곱(**) 가능
변수에 저장된 값에 연산을 하고, 다시 그 값을 같은 변수에 저장할 수 있음
a = 3
a = a + 7
print(a)
# 10 이 출력됨.
# a 라는 변수가 처음에는 3 이라는 값을 가지고 있었지만
# 다음 연산에서 7과 더해진 뒤 다시 a 라는 변수에 저장되면서
# a 는 10이 됨.
# bool 자료형(True / False)
참 / 거짓을 나타내는 자료형
True / False를 써줄 때 소문자로 적게되면 bool 자료형이 아니라 변수명으로 인식하니 주의!
비교 연산자의 결과 나타낼 때 쓰임
1 < 3 # True
5 >= 2 # False
7 == 10 # False
4 != 6 # True 같지 않다
논리 연산자 사용 가능
a = 7 > 3 # True
not a # False NOT 연산자 >> 참을 거짓으로, 거짓을 참으로 바꿔줌
a and b # False AND 연산자 >> 모두 참이어야 True 반환
a or b # True OR 연산자 >> 둘 중 하나만 참이면 True 반환
[참고 게시글]
[AI기본과정/파이썬 기초] - 파이썬 기초 | 변수 개념 | input()함수 | int() 함수 | = 와 == 의 차이
파이썬 기초 | 변수 개념 | input()함수 | int() 함수 | = 와 == 의 차이
1. 변수의 개념 ▶ 변수 : 값을 저장하는 메모리 공간 2. 변수의 선언과 값의 대입 - 대입연산자(=) 사용 - 대입연산자의 기능: = 의 오른쪽 변수들이 모두 계산된 후 왼쪽 변수로 대입되게 함. ※ '
nasena.tistory.com
[AI기본과정/파이썬 기초] - 파이썬 기초 | 산술, 대입, 비교, 논리 연산자 | ==, !=, +=, //=, %=, **= 사용법
파이썬 기초 | 산술, 대입, 비교, 논리 연산자 | ==, !=, +=, //=, %=, **= 사용법
1. 산술연산자 연산자 의미 사용 예 설명 + 더하기 num = 4+2 4와 2를 더한 값을 num에 대입 - 빼기 num = 4-2 4와 2를 뺀 값을 num에 대입 * 곱하기 num = 4*2 4와 2를 곱한 값을 num에 대입 / 나누기 num = 4/2 4와 2
nasena.tistory.com
2. 문자열 다루기
▶ 문자열 기초
문자열은 작은 따옴표(' ')나 큰 따옴표(" ")로 감싸주어야 함
▶ 문자열 연산
문자열 간 합하고 싶을 때는 '+ 연산자' 사용 ( '+ 연산자' 사용 시 띄어쓰기 없이 합쳐짐)
문자열과 정수를 더하면 에러 남
.(온점)을 붙이고 쓰는 내장함수들을 메소드(method)라고 함
- 문자열 길이 구하기 : len('길이 세줄 문자열')
- 특정 문자를 다른 문자로 바꾸기 : replace('바뀌기 전 문자', '바뀐 후 문자')
- 모든 알파벳 대문자/소문자로 바꾸기 : upeer() / .lower()
- 특정 문자 기준으로 문자열을 나누기 : split('특정문자')
▶ 인덱싱과 슬라이싱
인덱싱: 문자열 안에서 그 문자가 몇 번째 자리에 있는 문자인지 '인덱스'를 넣어 부르는 것
슬라이싱: 문자열의 일부를 잘라낼 때 사용하는 것
fruit = apple
# 인덱싱
fruit[0] # apple 중 0 번째 글자인 a가 출력됨
######################################################################
# 슬라이싱[시작 자리, 끝+1 자리]
fruit[1:4] # fruit[1번째 자리부터 3번째 자리까지 출력] >> ppl 출력
fruit[2:] # fruit[2번째 자리부터 문자열 끝까지 출력] >> ple 출력
fruit[:3] # fruit[시작부터 2번째 자리까지 출력] >> app 출력
fruit[-1] # fruit[마지막 자리 출력] >> e 출력
# 여기서 -1은 뒤에서부터 자리를 세줄 때 사용
# 즉, 마지막의 앞(전) 자리는 -2번째 자리가 됨, 그 앞(전)은 -3 ...
fruit[:] # 처음부터 끝까지 출력 >> apple
[참고 게시글]
파이썬 기초 | 데이터형(int, float, str, bool) | 이스케이프 문자(백슬래시 \ 사용법) | 문자열함수(len,
1. 데이터형 ▶ type() 함수 : 변수의 종류 확인 * int : 정수형 (소수점이 없는 수) * float : 실수형 (소수점이 있는 수) * str : 문자형 (글자의 양쪽을 큰따옴표(")나 작은따옴표(')로 감싸야 함) * bool :
nasena.tistory.com
파이썬 기초 | 슬라이싱 | format() | f-string | replace() | strip() | startswith(), endswith()
▶ .format( , ) name1 = '김민수' age1 = 10 name2 = '이철희' age2 = 13 print('이름: {} , 나이: {}'.format(name1,age1)) print('이름: {} , 나이: {}'.format(name2,age2)) ▶ f - string name1 = '김민수' age1 = 10 name2 = '이철희' age2 = 13
nasena.tistory.com
3. 리스트[ ]와 딕셔너리{ }
▶ 리스트(list) [ ]
컴파운드 자료형(여러 자료형을 담을 수 있음, 리스트를 중첩도 가능)
순서가 중요함
내용 변경 가능(가변, 새로운 값 추가 / 삭제 / 변경 등이 가능)
인덱싱, 슬라이싱 가능
- 길이 세주기: len()
- 덧붙이기 : append()
- 정렬하기 : sort()
- 요소가 리스트 안에 있는지 알아보기 : 요소 in 리스트명
▶ 딕셔너리(dictionary) { }
키(key)와 값(value)의 쌍으로 이루어진 자료의 모임 { 'key' : 'value' }
순서가 없음 (>> 그래서 인덱싱을 사용할 수 없음)
내용 변경 가능(가변, 새로운 쌍의 자료를 추가 / 삭제 / 변경 등이 가능)
딕셔너리의 value에는 여러 자료형을 담을 수 있음. 딕셔너리 중첩도 가능
- 해당 키가 딕셔너리 안에 있는지 알아보기 : 키 in 딕셔너리명
▶ 리스트와 딕셔너리의 조합
people = [{'name' : 'jack', 'age' : 28},
{'name' : 'jill', 'age' : 25}]
print(people[1]['age'])
# 25 가 출력됨
[참고 게시글]
파이썬 기초 | 리스트 함수(리스트 생성, 삭제, 정렬 등) | 리스트명.append() | 2차원 리스트 | 튜플
1. 리스트 : 리스트 이름 = [값1, 값2, 값3, ...] : 하나씩 사용하던 변수를 붙여서 한 줄로 붙여놓은 개념 * numList = [0, 1, 2, 3] [0] [1] [2] [3] numList = [10,20,30,40] print(type(numList)) print(numList[0]) print(numList[1])
nasena.tistory.com
4. 튜플, 집합
▶ 튜플(tuple)
리스트와 비슷하게 순서가 존재하지만 불변형임.
딕셔너리 대신 리스트와 튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 쓰임
▶ 집합(set)
중복을 제거해줌.
교집합, 합집합, 차집합도 구할 수 있음
# 집합 교집합, 합집합
a = ['딸기','참외','수박','멜론']
b = ['딸기','수박','포도','바나나','자두']
a_set = set(a)
b_set = set(b)
print(set_a & set_b) # 교집합
# {'딸기', '수박'}
print(set_a | set_b) # 합집합
# {'딸기', '참외', '수박', '멜론', '포도', '바나나', '자두'}
# 집합 차집합
student_a = ['국어','영어','수학','과학','사회','체육','음악']
student_b = ['영어','일본어','미술','수학','사회']
a_set = set(student_a)
b_set = set(student_b)
print((a_set) - (b_set)) #차집합
# {'국어', '과학', '체육', '음악'} 이 출력됨
5. 조건문
▶ if (조건):
조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법
▶ elif (조건):
if 조건문 외의 다양한 조건을 주기 위해 작성
▶ else :
if 조건문을 만족하지 않을 때 실행할 코드를 작성
[참고 게시글]
[AI기본과정/파이썬 기초] - 파이썬 기초 | 조건문 | if문 | if~else문 | 중첩 if문 | elif문 사용법 | 조건문 기본 제어구조(순차/선택/반복구조)
파이썬 기초 | 조건문 | if문 | if~else문 | 중첩 if문 | elif문 사용법 | 조건문 기본 제어구조(순차/선
1. 기본 제어구조 ▶ 순차구조 : 시작 → 단계1 → 단계2 → ... → 단계N → 종료 ▶ 선택구조 : 두 가지 중 선택한 한 방향으로 코드가 실행되는 구조 : 시작 → 조건 → 선택1 또는 선택2 → 종료 ▶
nasena.tistory.com
6. 반복문
▶ for 요소 in 리스트:
(연산문 .. )
리스트 안에 있는 요소들을 하나씩 꺼내서 마지막 요소까지 밑의 연산을 반복적으로 실행함
▶ for i in range(반복 시작위치 인덱스, 반복 끝 위치 인덱스, 간격):
(연산문 .. )
range() 함수로 지정한 만큼의 숫자대로 밑의 연산을 반복적으로 실행함
people = [
{'name': 'jack', 'age': 28},
{'name': 'jill', 'age': 25},
{'name': 'anna', 'age': 30},
{'name': 'sena', 'age': 17}
]
for person in people:
name = person['name']
age = person['age']
if age > 20:
print(name, age)
# jack 28
# jill 25
# anna 30 이라고 출력됨
▶ enumerate
enumerate의 뜻은 '낱낱이 세다'라는 뜻으로 열거하거나 나열할 때 사용
순서가 있는 자료형을 입력 받았을 때 인덱스와 값을 포함하여 리턴
인덱스와 값을 동시에 반복하고 싶을 때 사용
for문과 함께 자주 사용
people = [
{'name': 'jack', 'age': 28},
{'name': 'jill', 'age': 25},
{'name': 'anna', 'age': 30},
{'name': 'sena', 'age': 17}
]
for i, person in enumerate(people):
name = person['name']
age = person['age']
print(i, name, age)
if i > 3:
break
# 1 jack 28
# 2 jill 25
# 3 anna 30 이라고 출력됨
[참고 게시글]
파이썬 기초 | 반복문 for문 | for~in range() | 중첩 for문 | while문 | break문 | continue문 | import random 이용
1. 반복문 : 특정 부분을 원하는 횟수만큼 반복하는 구문 2. for문 : for 변수 in range (시작값, 끝값 +1, 증가값) : --- 반복할 문장 --- : 반복할 횟수를 알 때 for i in range(3) : print("난생처음 파이썬은 재
nasena.tistory.com
7. 함수
▶ def 함수명(함수 매개변수):
반복적으로 사용하는 코드들에 이름을 붙여놓은 것
return을 통해 (결과를 단순하게 출력(print)해 주는 것이 아니라) 결과 값을 돌려주도록 할 수도 있음
def vat(price):
if price < 1000:
return 100
if price < 2000:
return 200
else:
return 300
myvat = vat(1450)
print(myvat)
# 200 이 출력됨
[참고 게시글]
[AI기본과정/파이썬 기초] - 파이썬 기초 | 함수 | def ~ return | 매개변수 전달, 값 변환 | pass 키워드 | 지역변수/전역변수 | Global 예약어
파이썬 기초 | 함수 | def ~ return | 매개변수 전달, 값 변환 | pass 키워드 | 지역변수/전역변수 | Global
1. 함수 ▶ 함수의 개념 : 무엇을 넣으면 그것이 처리되어 다시 어떤 것을 돌려주는 기능을 함 : 함수는 매개변수(Parameter)를 입력받은 후 그 매개변수를 가공 및 처리한 후에 반환값을 돌려줌. ▶
nasena.tistory.com
8. f-string
scores = [
{'name':'안나','score':80},
{'name':'세나','score':45},
{'name':'데이','score':95},
{'name':'지니','score':65}
]
for s in scores:
name = s['name']
score = s['score']
print(name + '의 점수는 '+score+'점입니다.')
# 위 print문을 f-string을 사용하면,
print(f'{name}의 점수는 {score}점 입니다.')
9. 예외처리
▶ try:
(-중간과정-)
except:
에러가 있어도 건너뛰게 할 수 있는 방법
단, 남용하면 어떤 에러가 난 건지 확인할 수 없으므로 서버 상의 문제 등 정말 써야할 경우만 사용
scores = [
{'name':'안나','score':},
{'name':'세나','score':45},
{'name':'데이','score':95},
{'name':'지니','score':65}
] # 지금 안나의 점수가 비어있는 상태!!
for s in scores:
try:
if scores['socre'] > 60:
print(scores['name'])
except:
print(scores['name'], '에러 발생')
# 안나 에러 발생
# 데이
# 지니 # 가 출력됨
[참고 게시글]
[AI기본과정/파이썬 기초] - 파이썬 기초 | 예외 처리 | try ~ except ~ | ZeroDivisionError | IndexError
파이썬 기초 | 예외 처리 | try ~ except ~ | ZeroDivisionError | IndexError
1. 예외 처리 : 코드 실행 중 발생되는 예외적인 상황(ex. 에러 발생)을 대비해 예외를 어떻게 처리할 것인지 따로 코딩해놓는 것 (try~ except~문) try : except : [연습문제 1] * 문자열 PER(Price to Earning Rati
nasena.tistory.com
10. 파일 불러오기
from 파일이름 import *(또는 사용할 함수 등)
# /from 파일이름/ 안의 데이터들을 가져다 쓸 수 있음
11. 한 줄의 마법
▶ if문 삼항연산자
(참일 때 값) if (조건) else (거짓일 때 값)
▶ for문 삼항연산자
# 길게 늘여 쓴 for문
a_list = [1, 3, 2, 5, 1, 2]
b_list = []
for a in a_list:
b_list.append(a*2)
print(b_list)
# 줄여 쓴 for문
a_list = [1, 3, 2, 5, 1, 2]
b_list = [a*2 for a in a_list]
print(b_list)
12. map, lamda, filter
▶ map(함수, 리스트명)
리스트의 모든 원소를 조작하기
people = [
{'name': 'jack', 'age': 28},
{'name': 'jill', 'age': 25},
{'name': 'anna', 'age': 30},
{'name': 'sena', 'age': 17}
]
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
# people을 하나하나 돌면서 check_adult에 넣어라
# 그리고 그 return 값을 list로 만들어라
################################################
# list(map( )) 이렇게 더 많이 쓴다고 함
result = list(map(check_adult, people)
print(result)
▶ map 함수_ if문 삼항연산자 버전
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
result = map(check_adult, people)
print(list(result))
▶ map 함수_ lamda x : x식
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))
▶ filter
리스트의 모든 원소 중 특별한 것만 뽑기
map과 유사한데 True인 것들만 뽑아오는 것
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
13. 함수의 매개변수
▶ 함수에 인수를 넣을 때 어떤 매개변수에 어떤 값을 넣을지 정해줄 수 있음
순서 상관 없음. (a = 3, b = 5 이렇게 적어줘도 되고, b = 5, a = 3 이렇게 적을 수도 있음)
def cal(a, b):
return a + 2 * b
print(cal(3, 5))
print(cal(a=3, b=5))
print(cal(b=5, a=3))
▶ 특정 매개변수에 기본값을 지정해 줄 수 있음
def cal(a, b=3):
return a + 2 * b
print(cal(4))
print(cal(4, 2)) # 기본 값으로 b=3으로 이미 지정되어 있지만 여기서처럼 다시 2로 지정 가능
print(cal(a=7))
print(cal(a=2, b=6))
▶ 입력값의 개수를 지정하지 않고 모두 받는 방법
# 매개변수 args
여러 개의 인수를 하나의 매개변수를 받을 때 관례적으로 arguments라는 뜻의 args를 사용함
def call_names(*args):
for name in args:
print(f'{name}야 밥먹어라~')
call_names('안나','세나','데이')
# 매개변수 kwargs
키워드 인수를 여러 개 받을 때 kwargs를 사용함
def get_kwargs(**kwargs):
print(kwargs)
get_kwargs(name='anna')
get_kwargs(name='sena', age='27')
14. 클래스
▶ 클래스를 언제 사용해야 하는가?
객체들이 자신의 속성을 관리하도록 할 때 (객체지향)
# 나에 대한 클래스를 생성해봄
class annasena():
def __init__(self, name, email, money):
self.name = ''
self.email = ''
self.money = 0
def income(self, amount):
self.money = self.money + amount
print(f'지금 내 잔고는~ {self.money}만원! 오예')
def spend(self, amount):
if amount > self.money:
print(f'돈 없어,,이거 못 사!!')
else:
self.money = self.money - amount
print(f'지금 내 잔고는~ {self.money}만원..흑흑')
my_info = annasena('anna', 'anna@mail.com', 200)
my_info.income(100)
my_info.spend(30)
my_info.spend(80)
[참고 게시글]
[AI기본과정/파이썬 기초] - 파이썬 기초 | 객체(인스턴스), 클래스, 생성자, 상속 개념 | 다양한 메소드 | __init__() | __del__() | __add__()
파이썬 기초 | 객체(인스턴스), 클래스, 생성자, 상속 개념 | 다양한 메소드 | __init__() | __del__() | __
1. 객체(Object)의 개념 : 어떤 속성과 행동을 가지고 있는 데이터 : 수많은 사물을 프로그래밍 관점에서 객체라고 부름 : 인스턴스(Instance) 라고 부르기도 함 ▶ 거북이 객체 import turtle turtle.shape("cir
nasena.tistory.com
댓글