자료형
객체(함수 / 메서드)
단일
Boolean
Numver
String
복합
List
Set
Tuple
list와 비슷한 readonly 형식이라고 생각
tuple1 = ()
tuple2 = tuple()
print(type(tuple1))
print(type(tuple2))
tuple3 = (1, 2, 3)
print(tuple3)
print(tuple3[0])
#하나 있을 때는 그 자료형 타입 가짐
tuple41 = (1)
tuple42 = (1, )
print(type(tuple41))
print(type(tuple42))
데이터를 고정 시키고 보는 용도로 많이 사용함
del tuple3[0]
#tuple[0] = 10
print(tuple3)
# 다중 할당
data1, data2 = (10, 20)
(data1, data2) = 10, 20
data1, data2 = 10, 20 <-- 모두 같음
print(data1, data2)
파이썬은 변수 간의 값 교환을 쉽게 할 수 있다
# 변수간의 값 교환
a = 3
b = 5
a, b = b, a
print('a : ', a, 'b : ' ,b)
2개 이상도 가능
a, b, c = 3, 5, 7
a, b, c = c, a, b
print('a : ', a, 'b : ' ,b, 'c : ', c)
값 바뀌어있는 것 확인
이런 식으로도 배열 사용 가능
[a, b] = [10, 20]
print(a, b)
Json과 형태 비슷, Json 기준으로 만들어 놓음
dict1 = {} # set
dict2 = dict()
print(type(dict1))
print(type(dict2))
# map(key, value)
dict = {'name' : 'key', 'phone' : '01112345678'}
print(dict)
# index 아닌 key 값 집어넣어 value 확인
print(dict['name'])
print(dict.get('name')) # 이렇게도 value 값 구하기 가능
# key 없으면 값 추가, key가 동일할 시, value 값 수정
dict['data1'] = 'value1'
dict['name'] = 'alice'
print(dict)
del dict['data1']
print(dict)
dict = {'name' : 'key', 'phone' : '01112345678'}
print(dict.keys()) -> key값 배열 형식으로 출력
print(dict.values()) -> value 값 배열 형식으로 출력
keylists = list(dict.keys()) -> 변수에 키 값 대입, 인덱스로 뽑기 위함
print(keylists[0])
valuelists = list(dict.values()) -> 변수에 밸류 값 대입, 인덱스로 뽑기 위함
print(valuelists[0])
들여쓰기 주의해야함!!!!!
단순 if
실행 문장
if 조건:
실행 문장
if ~ else
실행 문장
if 조건:
실행 문장
else :
실행 문장
실행문장
print('start')
money = False
if money:
print('택시 타라')
else :
print('돈 없쪄')
print('end')
각각 True, False 실행한 것
실행 결과를 쓰지 않으면 오류가 나기 떄문에, 그 대신으로 pass를 써준다.
print('start')
money = True
if money:
pass -> 아무것도 안쓰면 오류남
else :
print('돈 없쪄')
print('end')
아무것도 안 쓰면 나오는 오류
파이썬에서는 else if를 elif라고 쓴다.
print('start')
hakjum = 90
if hakjum >= 90:
print('A')
elif hakjum >= 80:
print('B')
elif hakjum >= 70:
print('C')
elif hakjum >= 60:
print('D')
else :
print('E')
print('end')
if에서 조건을 줄 때 사용
# list / tuple / string
# 값의 존재 여부 (in)
pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket : --> pocket 안에 money가 있을 경우 실행
print('택시 타라')
else :
print('걸어 가')
Java의 향상된 for문 같이 사용
# list
# 시작과 끝
lists = ['one', 'two', 'three']
print(lists[0])
print(lists[1])
print(lists[2])
print('-' * 50)
for list in lists :
print(list)
print('-' * 50)
strings1 = 'hello'
for string1 in strings1 :
print(string1)
dict = {'name' : 'key', 'phone' : '01112345678'}
for key in dict.keys() :
print(key)
for value in dict.values() :
print(value)
# 키 값 다 뽑기
for key, value in dict.items() :
print(key, value)
lists = [ (1, 2), (3, 4), (5, 6) ] # list안에 tuple 형식
for (first, last) in lists :
print(first, last)
()의 범위 출력
print(range(5))
print(range(0,5))
lists = list(range(0, 5))
print(lists)
for i in range(0, 5) :
print(i, end=' ')
sum = 0
for i in range(1, 11) :
sum = sum + i
print(sum)
for i in range(1, 3) :
for j in range(1, 3) :
print( i, j)
print('end')
# 대문자화
name = input('이름을 입력하세요 : ')
names = name.split(' ')
for i in range(len(names)) :
#print(names[i])
names[i] = names[i][0].upper() + names[i][1:]
print(names[i])
result = ' '.join(names)
print('결과 : ', result)
str = input('주민번호를 입력하세요 : ')
str = str.replace('-', '')
bits = [2, 3, 4, 5,6, 7, 8, 9, 2, 3, 4, 5]
sum = 0
for i in range(len(bits)) :
sum += int(str[i]) * bits[i]
cnum = (11 - (sum % 11) ) % 10
lnum = int(str[-1])
if (cnum == lnum) :
print('정확')
else :
print('틀림')
예시
treeHit = 0
while treeHit < 10:
treeHit = treeHit + 1
print('나무를 %d번 찍었습니다' % treeHit)
if treeHit == 10:
print('나무 쓰러짐')
coffee = 10
money = 300
while money :
print('money 300원 확인, coffee 여기있습니다.')
coffee = coffee -1
print('남은 커피의 양은 %d개 입니다' % coffee)
if coffee == 0:
print('커피가 다 떨어졌습니다. 판매를 중지합니다')
break
---------------------------------------------------------------------------------------
coffee = 10
while True:
money = int(input("돈을 넣어 주세요: "))
if money == 300:
print("커피를 줍니다.")
coffee = coffee -1
elif money > 300:
print("거스름돈 %d를 주고 커피를 줍니다." % (money -300))
coffee = coffee -1
else:
print("돈을 다시 돌려주고 커피를 주지 않습니다.")
print("남은 커피의 양은 %d개 입니다." % coffee)
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지 합니다.")
break
break
5에서 종료
print('시작')
for i in range(0, 10) :
if i ==5 :
break
print(i)
print('끝')
continue
5에서 처음으로 돌아감( 5 실행 x)
print('시작')
for i in range(0, 10) :
if i ==5 :
continue
print(i)
print('끝')
파이썬에서는 함수 생성 시에 def를 사용한다.
def func1():
pass
def func2():
print('func2 함수 호출')
def func3(a):
print('func3 함수 호출 :', a)
def func4(a):
print('func4 함수 호출 :', a)
return a
func2()
func3(10)
print(func4(20))
func1() = 껍데기 만들고 호출 = 아무 것도 나오지 않음
영역이 달라서 a1과 a2의 값은 다르게 나온다.
global 사용하기 ( 전역변수라고 생각)
print('시작')
a = 1
def func1():
global a --> 위의 a를 가져옴
a = a+1 --> +1 하므로 맨 위의 a도 2
print('a1 :', a)
func1()
print('a2 : ', a)
print('끝')
*args 를 집어넣고 사용
def func( *args ):
#print(type(args)) ---> tuple 형식으로 나온다
#print(args)
for arg in args :
print(arg)
func( 1 )
func(1, 2)
func(1, 2, 3)