### Hello 문자열 출력
print("Hello")
print()
### 'end' 매개변수의 역할
print("Hello", end='\n')
print("Hello", end='')
print("Hello")
print()
### print를 이용하여 여러줄 문자열
# '\n'은 줄을 바꿈의 명령의 내용을 전달한다.
print("Line1 \nLine2 \nLine3 \n")
Hello Hello HelloHello Line1 Line2 Line3
### 동물의 다리의 개수는?
animal_leg = 4
print(animal_leg)
str1 = 'my'
str2 = 'name'
print(str1, str2)
4 my name
str1 = '''
line1
line2
line3
'''
print(str1)
line1 line2 line3
str12 = "my" + "name"
print(str12)
myname
str1 = "my" + " name is"
name = input("당신의 이름은 ?")
print(str1, name)
당신의 이름은 ?toto my name is toto
age = input("나이는 ?")
print("당신의 나이는 " + age + "살 입니다.")
나이는 ?30 당신의 나이는 30살 입니다.
print(type(age))
<class 'str'>
age = int( input("나이는 : ") ) # 입력 후, 정수형 변환
# sep는 ','가 갖는 한칸 공백을 없애준다.
print("당신의 10년 후의 나이는 " , age+10 ,"살입니다.", sep="")
나이는 : 30 당신의 10년 후의 나이는 40살입니다.
print(9 + 10) # 더하기
print(9 - 10) # 빼기
print(30 / 5) # 나누기
print(5 * 3) # 곱하기
print(2**5) # 제곱 연산 2*2*2*2*2
print(17 % 4) # 나머지 1
print(17//4) # 몫 4
19 -1 6.0 15 32 1 4
print( 3 == 3 ) # True (1이상)
print( 3 != 3 ) # False (0)
print( 3 >= 1 )
print( 3 <= 1 )
# 1 => 1 # 에러 => =이 먼저오면 에러 발생
True False True False
print(5 != 5) # False
age = 18
print(age >= 15) # True
age = 13
print(age >= 15) # False
False True False
print(True and True)
print(1 and 3)
print(1 and 0)
print(True and False)
print(1 in [1,2,3,4])
True 3 0 False True
print( (1 == 1) and (10 > 3) ) # True and True
print( (1 == 1) & (10 > 3) ) # True and True
True True
print((1 == 1) or (1 > 0) )
print((1 != 1) | (1 < 0) ) # False or False
## A or B : A와 B중에 하나라도 True가 있으면 결론적으로 True가 된다.그 외에는 False
print(5!=5 or 5>=3) # False and True => True
True False True
print( not 1 ) # False
print( not False) # True
print( not 0) # True (0는 0을 의미)
print( not 'A') # 0을 제외한 모든 값은 True
False True True False
## 19세 입장 금지 영화
## 출입조건 19세 이상이고, 남자 입장 가능
age = 17
sex = "M"
print(age >= 19 and sex=="M") # True : 입장 불가
False
## 출입조건 19세 이상이거나(또는) 아이가 있는 친구는 가능한 영화
age = 17
gubun = "P" # 부모
print(age >= 19 or gubun=="P") # False or True => True : 입장
True
a = 5
b = 2
plus = a + b
mul = a * b
div = a / b # 결과값 형변환 5/2 = 2.5
remainder = a % b
power = a ** b
print("합은 %d 입니다." % a)
print("%d 와 %d의 합은 %d 입니다." % (a, b, plus))
print("{} 와 {}의 합은 {}입니다.".format(a, b, plus))
print("{} 와 {}의 나눈 값은 {:.2f}입니다.".format(a, b, div))
합은 5 입니다. 5 와 2의 합은 7 입니다. 5 와 2의 합은 7입니다. 5 와 2의 나눈 값은 2.50입니다.
print("{2} 와 {1}의 합은 {0}입니다.".format(2, 5, 7))
7 와 5의 합은 2입니다.
print("{0} 와 {1}의 나눈 값은 {2}입니다.".format(a, b, div))
5 와 2의 나눈 값은 2.5입니다.
people = 10
if people >= 10:
print("두개의 방을 예약해야 합니다.")
else:
print("305호실 예약 가능합니다.")
두개의 방을 예약해야 합니다.
for one in ['하나', '둘']:
print(one)
하나 둘
if (조건식):
실행문1
if (조건식):
실행문1
else:
실행문2
if (조건식) & (조건식):
실행문1
실행문2
else:
실행문3
실행문4
if (조건식) & (조건식):
실행문1
실행문2
elif (조건식):
실행문3
elif (조건식):
실행문4
else:
실행문3
실행문4
people = 10
# 인덴트가 다를 경우, 에러가 발생.
if people >= 10:
print("사람이 10명이상입니다.") # indent라고 한다. 동일하게 해 준다.
print("사람이 10명이상입니다.") # 이 줄은 인덴트(들여쓰기) 공간이 다르다. 에러 발생.
print("사람이 10명이상입니다.")
File "<ipython-input-25-65478a503485>", line 6 print("사람이 10명이상입니다.") # 이 줄은 인덴트(들여쓰기) 공간이 다르다. 에러 발생. ^ IndentationError: unexpected indent
people = 10
# 인덴트가 다를 경우, 에러가 발생.
if people >= 10:
print("사람이 10명이상입니다.") # indent라고 한다. 동일하게 해 준다.
print("사람이 10명이상입니다.") # 이 줄은 인덴트(들여쓰기) 공간이 다르다. 에러 발생.
print("사람이 10명이상입니다.")
사람이 10명이상입니다. 사람이 10명이상입니다. 사람이 10명이상입니다.
num = int( input("사람의 수는 :") )
if num >= 10:
print("사람이 10명이상입니다.") # indent라고 한다. 동일하게 해 준다.
print("10명 이상의 경우는 추가 비용을 지불해야 합니다.")
else:
print("사람이 10명 미만입니다")
사람의 수는 :20 사람이 10명이상입니다. 10명 이상의 경우는 추가 비용을 지불해야 합니다.
age = int(input("나이가 어떻게 되나요?"))
if (age>=15):
print("입장 가능합니다. 어떤 영화 티켓을 구매하시겠어요?")
else:
print("입장이 불가합니다. 15세이상만 입장이 가능합니다.")
나이가 어떻게 되나요?20 입장 가능합니다. 어떤 영화 티켓을 구매하시겠어요?
score = float( input("학점입력해 주세요 : ") )
if score==4.5:
grade = 'A+'
elif score>=4.0:
grade = 'A'
elif score>=3.5:
grade = 'B+'
else:
grade = 'F'
print("당신의 학점은 ", grade , "입니다.")
학점입력해 주세요 : 4.2 당신의 학점은 A 입니다.
for 변수 in range(시작값, 끝값, 증감값):
실행문1
for num in range(1,11,1):
print(num)
1 2 3 4 5 6 7 8 9 10
for num in range(11,1, -1): # 마지막 증감값 1은 기본값으로 생략되면 1씩 증가
print(num)
11 10 9 8 7 6 5 4 3 2
for [변수] in [리스트 or 튜플 등]:
실행문1
실행문2
al = ['하나', '둘', '셋', '넷', '다섯']
for one in al:
print(one)
하나 둘 셋 넷 다섯
# 딕셔너리 값 출력하기
num = {'one':'하나', 'two':'둘', 'three':'셋', 'four':'넷', 'five':'다섯'}
for one in num:
print(one, num[one])
one 하나 two 둘 three 셋 four 넷 five 다섯
str1 = "Hello World!"
print( str1[0] ) # 첫번째 선택 (파이썬은 숫자 0부터 시작)
# Hello 선택
# : 을 기준으로 앞이 시작값, 뒤에값이 끝나는 값.
print( str1[0:5] ) # 첫번째(0)부터 다섯번째(4)까지 선택 (파이썬은 숫자 0부터 시작)
H Hello
# Hello 선택
print( str1[ :5] ) # 처음부터 다섯번째(4)까지 선택 (파이썬은 숫자 0부터 시작)
print( str1[:] )
print( str1[2:5] ) # 세번째(2)부터 다섯번째(4)까지 선택 (파이썬은 숫자 0부터 시작)
Hello Hello World! llo
## 인덱싱(Indexing) : 값을 하나 하나 선택
## 슬라이싱(slicing) : 값을 조각 단위로 선택
a = [1,2,3,4,5]
print(a)
a = [1,2,'a',3,'b']
print(a)
print( a[1] ) # 0부터 시작하여 1은 두번째 요소를 가르킴
print( a[2:5] )
a = [1,2,'a',3,'b']
print( a[-1] )
# 뒤에서부터 3개 가져오기
print( a[-3] )
[1, 2, 3, 4, 5] [1, 2, 'a', 3, 'b'] 2 ['a', 3, 'b'] b a
a = [ [1,2],
[2,3],
[4,5]
]
print(a[1]) # 2번째 값([2,3])
print(a[1][1]) # 2번째 값중의 2번째 값을 가져오기
[2, 3] 3
list1 = [1,2,3]
print( list1 )
list1.append(4)
print( list1)
[1, 2, 3] [1, 2, 3, 4]
[1,1] + [2,2]
[1, 1, 2, 2]
list2 = [1,2,3,2]
list2.remove(2) # 요소 중에 2의 값을 하나 삭제(앞에서부터 봤을때)
list2
[1, 3, 2]
## 두개의 값을 한꺼번에 추가하기
list3 = [1,2,3]
list3.append([3,4])
print(list3)
[1, 2, 3, [3, 4]]
## 두개의 값을 한꺼번에 추가하기 - extend
list4 = [1,2,3]
list4.extend([3,4])
print(list4)
[1, 2, 3, 3, 4]
list1 = [1,2,3,4,5,11,22,33,44,55]
for i in list1:
print(i, end=" ") # 출력 후, 한칸을 띄우고 다음번 진행
1 2 3 4 5 11 22 33 44 55
# range(시작값,끝값,증가값)
for i in range(0,10,1):
print(i, end=" ")
0 1 2 3 4 5 6 7 8 9
for i in range(10):
print(i, end=" ")
0 1 2 3 4 5 6 7 8 9
for i in range(5, 0,-1):
print(i, end=" ")
5 4 3 2 1
season = ['봄','여름','가을', '겨울']
print("season의 요소의 개수 : ", len(season))
for one in season:
print(one)
season의 요소의 개수 : 4 봄 여름 가을 겨울
dictdat1 = { 'key1':"value1", 'key2':"value2", 'key3':'value3'}
dictdat2 = { 11:"value1", 22:"value2", 33:'value3'}
dictdat3 = { 'key1':"value1", 'key2':(1,2,3,4,5), 'key3':[1,2,3,4,5] }
# dictdat3['키값']
print( dictdat1['key3'] )
# dictdat3['키값']
print( dictdat3['key3'] )
value3 [1, 2, 3, 4, 5]
tuple1 = (1,2,3)
print( tuple1 ) # 전체 값 출력
print( tuple1[1] ) # 두번째 값 출력
(1, 2, 3) 2
tuple1[1] = 20 # 에러 발생
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-56-4eb5dd8d8af4> in <module> ----> 1 tuple1[1] = 20 # 에러 발생 TypeError: 'tuple' object does not support item assignment
tuple1 = (1,2,3)
list1 = [1,2,3]
print(tuple1.__sizeof__())
dir(tuple1)
48
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
print(list1.__sizeof__())
dir(list1)
64
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
def two_num_plus(a,b):
print("두 값의 합은 :", a+b)
print( two_num_plus(3,5) )
두 값의 합은 : 8 None
def num_plus(a,b):
print("두 값의 합은 :", a+b)
return 1 # 실행 성공
result = num_plus(3,5)
if result == 1:
print("정상적으로 수행 종료")
두 값의 합은 : 8 정상적으로 수행 종료
def multi_plus(*arg):
sum = 0
for one in arg:
# print(one)
sum += one
return sum
value = multi_plus(3,5,6,2,3)
print("전체 합은 : ", value)
전체 합은 : 19
robot = {"안녕":'반가워 난 에프라고해',
"날씨":'그래 날씨도 좋고, 너도 만나서 기쁘다 좋은 날이야',
"이름":"난 에이미라고 해. 너는"}
print(robot.keys())
print(robot.values())
print(robot.items())
dict_keys(['안녕', '날씨', '이름']) dict_values(['반가워 난 에프라고해', '그래 날씨도 좋고, 너도 만나서 기쁘다 좋은 날이야', '난 에이미라고 해. 너는']) dict_items([('안녕', '반가워 난 에프라고해'), ('날씨', '그래 날씨도 좋고, 너도 만나서 기쁘다 좋은 날이야'), ('이름', '난 에이미라고 해. 너는')])
for i in range(3):
word = input("대화를 입력해 주세요?(종료:q) ")
if word in robot.keys():
print( robot[word] )
else:
print("무슨이야기인지 아직 모르겠어. 미안")
대화를 입력해 주세요?(종료:q) q 무슨이야기인지 아직 모르겠어. 미안 대화를 입력해 주세요?(종료:q) 이름 난 에이미라고 해. 너는 대화를 입력해 주세요?(종료:q) 이름 난 에이미라고 해. 너는
# 클래스 기본 선언 형태
class Cal:
pass
### 인스턴스
### 클래스를 선언 후, 다음과 같이 2대의 계산기를 만들 수 있다.
a = Cal()
b = Cal()
# 첫번째 계산기
result = 0
def plus1(num):
global result
result += num
return result
print( plus1(3) ) # 기본값 0 + 3
print( plus1(7) ) # 기본값 0 + 3 + 7
3 10
# 첫번째 계산기
result1 = 0
def plus1(num):
global result1
result1 += num
return result1
print( plus1(3) )
print( plus1(7) )
# 두번째 계산기
result2 = 0
def plus2(num):
global result2
result2 += num
return result2
print( plus2(2) )
print( plus2(10) )
# 세번째 계산기
result3 = 0
def plus3(num):
global result3
result3 += num
return result3
print( plus3(2) )
print( plus3(10) )
3 10 2 12 2 12
class Cal:
result = 0
def plus(self, num):
self.result += num
return self.result
def minus(self, num):
self.result -= num
return self.result
def divide(self, num):
self.result /= num
return self.result
# 인스턴스 (객체를 생성)
c1 = Cal()
c2 = Cal()
c3 = Cal()
c4 = Cal()
c5 = Cal()
# 계산기1에 3을 두번 더한다.
print( c1.plus(3) )
print( c1.plus(3) )
# 계산기2에 4을 두번 더한다.
print( c2.plus(4) )
print( c2.plus(4) )
# 계산기3에 5, 5을 연속으로 더한다.
print( c3.plus(5) )
print( c3.plus(5) )
# 계산기4에 6, 6을 연속으로 더한다.
print( c4.plus(6) )
print( c4.plus(6) )
3 6 4 8 5 10 6 12
print( "계산기1 현재 결과 : " , c1.result ) # 0 + 3 + 3
print( "계산기2 현재 결과 : " , c2.result ) # 0 + 4 + 4
print( "계산기3 현재 결과 : " , c3.result ) # 0 + 5 + 5
print( "계산기4 현재 결과 : " , c4.result ) # 0 + 6 + 6
print( "계산기5 현재 결과 : " , c5.result ) # 0
계산기1 현재 결과 : 6 계산기2 현재 결과 : 8 계산기3 현재 결과 : 10 계산기4 현재 결과 : 12 계산기5 현재 결과 : 0
## 예외 상황 발생
print( c3.divide(0) )
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-88-b2a8c255e44d> in <module> 1 ## 예외 상황 발생 ----> 2 print( c3.divide(0) ) <ipython-input-84-d2d530d3388b> in divide(self, num) 11 12 def divide(self, num): ---> 13 self.result /= num 14 return self.result ZeroDivisionError: division by zero
class Cal_change():
pass
class 클래스명(상속받을 클래스명):
추가할 실행문1
추가할 실행문2
# 아무 것도 없다.
# 어떤 클래스를 상속을 받아서,
# 해당 클래스가 가진 변수 및 메소드를 사용 가능하다.
class Cal_change(Cal):
pass
c_ch1 = Cal_change()
# 3을 더하고, 5를 빼기
print( "기능 개선 계산기 현재 결과 : " , c_ch1.result )
c_ch1.plus(3)
print( "기능 개선 계산기 현재 결과 : " , c_ch1.result )
c_ch1.minus(5)
print( "기능 개선 계산기 현재 결과 : " , c_ch1.result )
기능 개선 계산기 현재 결과 : 0 기능 개선 계산기 현재 결과 : 3 기능 개선 계산기 현재 결과 : -2
# 오버라이딩
# 상속받아서 사용하는데, 기존에 상속받은 존재하는 메소드를 변경하는 것.
class Cal_change(Cal):
def divide(self, num):
if num==0:
return "0으로 나눌 수 없습니다."
else:
self.result /= num
return self.result
c_ch2 = Cal_change()
# 3을 더하고, 5를 빼기
print( "기능 개선 계산기 현재 결과 : " , c_ch2.result )
print( c_ch2.plus(3) )
print( "기능 개선 계산기 현재 결과 : " , c_ch2.result )
print( c_ch2.minus(5) )
print( "기능 개선 계산기 현재 결과 : " , c_ch2.result )
print( c_ch2.divide(0) )
기능 개선 계산기 현재 결과 : 0 3 기능 개선 계산기 현재 결과 : 3 -2 기능 개선 계산기 현재 결과 : -2 0으로 나눌 수 없습니다.
그리고 계산기에 C(0으로 세팅하는) 기능을 추가해 봅시다.
생성한 계산기로 아래 연산을 수행해 보자.
# 오버라이딩
# 상속받아서 사용하는데, 기존에 상속받은 존재하는 메소드를 변경하는 것.
class Cal_change(Cal):
def Czero(self):
self.result = 0
return self.result
def mul(self, num):
self.result *= num
return self.result
def divide(self, num):
if num==0:
return "0으로 나눌 수 없습니다."
else:
self.result /= num
return self.result
c1 = Cal_change()
print( c1.plus(10) )
print( c1.divide(0) )
print( c1.mul(5) )
print( c1.Czero() )
print( c1.plus(5))
10 0으로 나눌 수 없습니다. 50 0 5