1. 출력 print
-[.ipynb] 확장자 = 주피터 노트북의 확장자로 코드를 추가하며서 프로그램 할 수 있는 방식
- 쌍따옴표와 따옴표는 문자열 중간에 쌍따옴표를 넣고 싶을 경우 따옴표로 감싼 후 출력
- 문자열 중간에 따옴표를 넣고 싶을 경우 쌍따옴표로 감싼 후 출력
print('hello "안녕하세요" ')
## hello "안녕하세요"
print("hello '안녕하세요'")
## hello '안녕하세요'
- 여러 문자를 ,(콤마)를 이용하여 합쳐서 출력할 수 있다.
print('안녕','하세요','반갑습니다')
## 안녕 하세요 반갑습니다
- 문자를 더해 출력하면 띄어쓰기가 자동으로 되지 않는다.
print('안녕'+'하세요'+'반갑습니다')
## 안녕하세요반갑습니다
- 여러 줄을 입력하고 싶을 경우 """ 쌍따옴표 3개로 시작 후 줄을 바꾼 후 """ 쌍따옴표 3개로 종료하면 여러 줄의 출력 가능
print("""안녕하세요
오늘은 날씨가 좋네요""")
## 안녕하세요
## 오늘은 날씨가 좋네요
- \(역슬래쉬)를 이용하여 줄바꿈을 할 수도 있다.
print("안녕하세요"\
"오늘은 날씨가 좋네요")
##안녕하세요오늘은 날씨가 좋네요
- .format 형식을 이용하여 변수를 바로 출력 가능
a=123
b="안녕하세요"
print(f"a값:{a} b값:{b}")
## a값:123 b값:안녕하세요
- f-string 표현방법
a=123
b="안녕하세요"
print(f"a값:{a} b값{b}")
## a값:123 b값안녕하세요
2. 입력 input
- 명령 프롬프트에서 사용자로부터 글자, 숫자 등 데이터를 입력 받을 때 input() 함수를 사용한다.
a=input("첫 번째 문자열 입력:")
b=input("두 번째 문자열 입력:")
print(a+b)
3. 변수 - 숫자형, 문자형, 소수점형, BOOL형
- = 을 기준으로 왼쪽의 변수가 오른쪽의 주소값을 가리키고 주소를 찾아가면 실제 값이 무엇인지 알 수 있다.
a=10
b=20
c=a+b
print(c)
## 30
- 문자열을 숫자형으로 int()를 사용하여 숫자형으로 변환할 수 있다,
c=20
d='10'
print(c+int(d))
## 30
- 숫자형 20이 저장된 c의 값을 문자열로 변환하여 더할 수 있다.
- 숫자형을 문자형으로 변환하기 위해서는 str()로 변환하면 된다.
a = '10'
b = 20
print(str(b)+a)
## 2010
- 소수점형 자료형
- float()을 이용하여 소수점형으로 변환할 수 있다.
a = 3.14
b = 10
print(a+b)
## 13.14
a = 10
b = 10
c = float(a)+float(b)
print(c)
## 20.0
- True(참)과 False(거짓)의 두 가지 값을 가지는 bool형
a_bool = True
b_bool = False
a_int = 1
b_int = 0
print(a_bool)
print(b_bool)
print(type(a_bool))
print(type(b_bool))
print(a_int)
print(b_int)
print(type(a_int))
print(type(b_int))
"""
True
False
<class 'bool'>
<class 'bool'>
1
0
<class 'int'>
<class 'int'>
"""
4. 자료형 - 리스트, 튜플, 딕셔너리, 집합
1) 리스트
- 여러 개의 데이터를 하나의 변수로 묶어 표현할 수 있는 자료형
- a_list[:2]는 처음부터 2번째 전까지의 데이터를 가져옴
- a_list[2:]는 2번째부터 마지막까지의 데이터를 가져옴
a_list = [1,2,3,4,5]
print(a_list)
print(a_list[0])
print(a_list[1])
print(a_list[:2])
print(a_list[2:])
"""
[1, 2, 3, 4, 5]
1
2
[1, 2]
[3, 4, 5]
"""
- b_list = [] 빈 리스트를 생성하고 b_list.append()로 1,2,3 데이터 삽입
b_list=[]
b_list.append(1)
b_list.append(2)
b_list.append(3)
print(b_list)
## [1,2,3]
- 리스트에는 여러 타입의 변수 형태가 저장될 수 있다.
c_list = [1,3.14,"hello",[1,2,3]]
print(c_list)
print(c_list[1:3])
"""
[1, 3.14, 'hello', [1, 2, 3]]
[3.14, 'hello']
"""
- 리스트는 데이터를 변경할 수 있다.
- d_list[0] = 5를 이용하여 0번지의 데이터를 5로 변경
d_list=[1,2,3,4,5]
print(d_list)
d_list[0] = 5
print(d_list)
"""
[1, 2, 3, 4, 5]
[5, 2, 3, 4, 5]
"""
2) 튜플(Tuple)
- 튜플은 () 소괄호로 데이터를 묶는다.
- 튜플은 리스트와 매우 비슷하나 튜플의 데이터는 변경할 수 없다
a_tuple=(1,2,3,4,5)
print(a_tuple)
## (1, 2, 3, 4, 5)
3) 딕셔너리(Dictionary)
- key와 value 형태로 구성
- 딕셔너리형의 표현은 {} 중괄호로 데이터를 묶는다.
a_dic = {'a':1,'b':2,'c':3}
print(a_dic)
print(a_dic['a'])
print(a_dic['b'])
print(a_dic['c'])
"""
{'a': 1, 'b': 2, 'c': 3}
1
2
3
"""
4) 집합(set)
- set()의 자료형은 중복이 없는 자료형
- set() 자료형의 입력은 리스트로 입력한다.
- set()형은 순서대로 정렬하지 않는다.
b_set = set([1,1,2,2,3,3,4,5,6])
print(b_set)
## {1, 2, 3, 4, 5, 6}
5. 연산 - 사칙연산, 논리연산, 비교연산
사칙연산
print("더하기:",10+20)
print("빼기:", 10-20)
print("곱하기:",10*20)
print("나누기:",10/20)
print("10**2:",10**2)
print("10**3:",10**3)
print("10**4:",10**4)
print("몫:",40//6)
print("나머지:",40%6)
"""
더하기: 30
빼기: -10
곱하기: 200
나누기: 0.5
10**2: 100
10**3: 1000
10**4: 10000
몫: 6
나머지: 4
"""
논리연산
or 연산
- 값이 하나라도 참일 경우에 참인 연산
print(0 or 0)
print(0 or 1)
print(1 or 0)
print(1 or 1)
print(False or False)
print(False or True)
print(True or False)
print(True or True)
"""
0
1
1
1
False
True
True
True
"""
and 연산
- 모든 값이 참이어야 참인 연산
print(0 and 0)
print(0 and 1)
print(1 and 0)
print(1 and 1)
print(False and False)
print(False and True)
print(True and False)
print(True and True)
"""
0
0
0
1
False
False
False
True
"""
not 연산
- 자신의 상태를 반전
print(not 0)
print(not 1)
print(not False)
print(not True)
"""
True
False
True
False
"""
비교연산
print(10 == 10)
print(10>=10)
print(10<=10)
print(10<5)
print(10>5)
print(10!=10)
"""
True
True
True
False
True
False
"""
- in은 리스트나 문자열에서 포함된 값을 비교
a_list = ['a',2,'hello',3]
print('a' in a_list)
print(1 in a_list)
print('hello' in a_list)
print(3 in a_list)
"""
True
False
True
True
"""
- in을 이용하여 문자열에서 문자가 포함되어 있는지 확인가능
a_str = "hello python"
print("python" in a_str)
print("py" in a_str)
print("40" in a_str)
"""
True
True
False
"""
6. 조건문
a=1
b=2
if a==b:
print("두 개의 값은 같습니다.")
else:
print("두 개의 값은 같지 않습니다.")
## 두 개의 값은 같지 않습니다.
a=1
b=2
if a>b:
print("a 값이 더 큽니다.")
elif a<b:
print("b 값이 더 큽니다.")
else:
print("두 개의 값은 같습니다.")
## b 값이 더 큽니다.
a_str = "hello python"
if a_str == "hello python":
print("hello python 문자열이 같습니다.")
if a_str == "hi python":
print("hi python 문자열이 같습니다.")
if "hello" in a_str:
print("hello가 포함되어 있습니다.")
if "hello" not in a_str:
print("hello가 포함되어 있지 않습니다.")
if "hi" not in a_str :
print("hi가 포함되어 있지 않습니다.")
"""
hello python 문자열이 같습니다.
hello가 포함되어 있습니다.
hi가 포함되어 있지 않습니다.
"""
a_list = ["안녕",1,2,"파이썬"]
if "안녕" in a_list:
print("a_list에 안녕이 포함되어 있습니다.")
if 2 in a_list:
print("a_list에 숫자 2가 포함되어 있습니다.")
if "안녕" not in a_list:
print("a_list에 안녕이 포함되어 있지 않습니다.")
if 5 not in a_list:
print("a_list에 숫자 5는 없습니다.")
"""
a_list에 안녕이 포함되어 있습니다.
a_list에 숫자 2가 포함되어 있습니다.
a_list에 숫자 5는 없습니다.
"""
7. 반복문 while문, for문
for 문
- 참과 거짓을 기준으로 조건이 거짓이 되기 전까지 무한 반복적으로 실행
- for i in range(7): 는 0부터 7-1까지 반복
for i in range(7):
print(i)
"""
0
1
2
3
4
5
6
"""
- range의 범위 지정 가능
- range(시작,끝)으로 시작부터 끝-1까지 반복
for i in range(5,10):
print(i)
"""
5
6
7
8
9
"""
- range 함수의 3번째 인자에 -1을 입력하면 역순으로 출력 가능
for i in range(10,5,-1):
print(i)
"""
10
9
8
7
6
"""
- 리스트에서 for문을 이용하여 값을 가져오는 방법
a_list = [1,2,3,4,5,"안녕","하세요"]
for i in a_list:
print(i)
"""
1
2
3
4
5
안녕
하세요
"""
- for문을 이용하여 문자의 수만큼 반복
a_str = "hello python"
for i in a_str:
print(i)
"""
h
e
l
l
o
p
y
t
h
o
n
"""
- enumerate를 이용하면 리스트에서 위치와 값을 가져올 수 있다.
- name_list에서 i는 리스트의 위치, k는 리스트의 값을 가져올 수 있다.
- enumerate() 괄호안에 리스트, 문자열 등을 넣으면 된다.
name_list = ["홍길동","장다인","김철수"]
age_list = [500,5,12]
for i,k in enumerate(name_list):
print("i=",i,end=' ')
print("k=",k)
"""
i= 0 k= 홍길동
i= 1 k= 장다인
i= 2 k= 김철수
"""
- enumerate 사용하지 않고 list의 길이만큼을 range에 입력하여 사용
name_list = ["홍길동","장다인","김철수"]
age_list = [500,5,12]
for i in range(len(name_list)):
print(name_list[i],end=' ')
print(age_list[i])
"""
홍길동 500
장다인 5
김철수 12
"""
- range(len(name_list)와 같이 name_list의 길이를 range 함수에 입력하여 for문을 반복
test_list = [i for i in range(10)]
print(test_list)
test2_list = []
for i in range(10):
test2_list.append(i)
print(test2_list)
"""
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""
- 리스트를 만들고 초기에 원하는 값을 넣을 때 많이 사용
test_list = [i*5 for i in range(10)]
print(test_list)
test2_list = [0 for i in range(10)]
print(test2_list)
"""
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
"""
while문
- [while 조건: ]에서 조건이 참일 때 계속 반복
a=0
while a<5:
print(a)
a=a+1
"""
0
1
2
3
4
"""
a=0
while True:
print(a)
a=a+1
if a>=5:
break
"""
0
1
2
3
4
"""
8. 오류 및 예외처리
- try; except: 구문을 이용하여 예외 에러 처리
try:
dsjafakldsaji
except:
print("에러발생")
- pass를 사용하면 아무것도 하지 않고 넘어간다.
try:
dsjafakldsaji
except:
pass
print("에러를 무시")
- 에러의 원인을 알고 싶으면 Exception as e를 이용하여 'e'를 출력해보면 에러의 원인이 출력된다.
try:
dsjafkldsaji
except Exception as e:
print("에러발생 원인:",e)
## 에러발생 원인: name 'dsjafkldsaji' is not defined
9. 함수
- def 이름: 을 이용
- 코드에서 func()를 호출하면 func() 함수안에 정의된 코드를 실행
def func():
print("안녕하세요")
print("파이썬과 40개의 작품들 입니다.")
func()
"""
안녕하세요
파이썬과 40개의 작품들 입니다.
"""
def func_add(a,b):
return a+b
c = func_add(1,2)
print(c)
## 3
def func_mux(a,b):
mux = a*b
return mux
c = func_mux(2,3)
print(c)
## 6
def func_add_mux(a,b):
add = a+b
mux = a*b
return add,mux
a,b = func_add_mux(1,3)
print(a,b)
## 4 3
def func_add_mux(a,b):
add = a+b
mux = a*b
return add,mux
_,b = func_add_mux(1,3)
print(b)
## 3
10. 클래스
- 클래스를 이용하여 틀을 만들고 그 틀대로 찍어 객체를 만들 수 있다.
- 틀을 이용하여 객체를 찍어내면 되기 때문에 객체는 틀을 찍는 대로 생성 가능하다.
- 클래스로 객체를 생성하였으면 객체는 클래스에서 만든 메서드(함수)를 사용할 수 있다.
class Greet():
def hello(self):
print("hello")
def hi(self):
print("hi")
human1 = Greet()
human2 = Greet()
human1.hello()
human1.hi()
human2.hello()
human2.hi()
"""
hello
hi
hello
hi
"""
- __init__ 함수를 만들면 클래스를 생성할 때 바로 실행된다.
- self는 자기 자신으로 클래스 메서드를 만들 때 꼭 붙여준다.
- self.name, self.age, self.like는 Student() 클래스에서 사용하는 클래스 변수로 클래스내에 다른 메서드에서 사용 가능하다.
class Student():
def __init__(self, name, age, like):
self.name = name
self.age = age
self.like = like
def studentInfo(self):
print(f"이름{self.name}, 나이{self.age},좋아하는 것:{self.like}")
김철수 = Student("김철수",17,"축구")
장다인 = Student("장다인",5,"헬로카봇")
김철수.studentInfo()
장다인.studentInfo()
""'
이름김철수, 나이17,좋아하는 것:축구
이름장다인, 나이5,좋아하는 것:헬로카봇
"""
- 클래스는 상속받아 이어 사용 가능하다.
- Mother() 클래스의 characteristic(self)는 "키가 크다" "공부를 잘한다"를 출력
- Daughter(Mother) 클래스는 Mother 클래스를 상속받았고 Daughter()클래스의 characteristic(self)은 super.characteristic()로 부터 상속받은 "키가 크다" " 공부를 잘한다"와 자기 자신이 잘하는 "운동을 잘한다"를 출력
class Mother():
def characteristic(self):
print("키가 크다.")
print("공부를 잘한다.")
class Daughter(Mother):
def characteristic(self):
super().characteristic()
print("운동을 잘한다.")
엄마 = Mother()
딸 = Daughter()
print("엄마는")
엄마.characteristic()
print("딸은")
딸.characteristic()
"""
엄마는
키가 크다.
공부를 잘한다.
딸은
키가 크다.
공부를 잘한다.
운동을 잘한다.
"""
- 상속받은 메서드(함수)를 사용할 때는 super()를 사용
- __init__를 이용하여 객체를 생성하자마자 출력하는 방법
- super().__init()__()은 상속받은 클래스의 __init__을 실행
class Mother():
def __init__(self):
print("키가 크다.")
print("공부를 잘한다.")
class Daughter(Mother):
def __init__(self):
super().__init__()
print("운동을 잘한다.")
print("엄마는")
엄마 = Mother()
print("딸은")
딸 = Daughter()
"""
엄마는
키가 크다.
공부를 잘한다.
딸은
키가 크다.
공부를 잘한다.
운동을 잘한다.
"""