'Python/Python Concept'에 해당되는 글 18건
- 2018.01.15
- 2018.01.15
- 2018.01.15
- 2018.01.14
- 2018.01.14
- 2018.01.14
- 2018.01.11
- 2018.01.11
- 2018.01.11
- 2018.01.11
1 2 3 4 5 6 7 | pocket = ['a','b','money'] if 'money' in pocket: pass #아무것도 하지않는 것 else: print("stop") | cs |
pass 는 아무것도 수행하지 않을 때 사용한다.
if 조건1:
print()
elif 조건2:
print()
else:
print()
이런식
[Python] 변수 (0) | 2018.01.15 |
---|---|
[Python] 집합자료형 (0) | 2018.01.15 |
[Python] 딕셔너리 자료형 (0) | 2018.01.14 |
[Python] 튜플 (0) | 2018.01.14 |
[Python] 리스트 (0) | 2018.01.14 |
변수
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 31 32 33 34 35 36 37 | s1 =[1] s2= 3 s3 = [1] s4 = 3 print("s1 is s2 : ", s1 is s2) # s1과 s2가 같은 객체인지 물음 print("s1 is s3 : ", s1 is s3) # 값이 같은데 리스트가 같지않음 print("s2 is s4 : ", s2 is s4) # 정수형은 참조하는 객체가 같다. import sys print("sys.getrefcount(3) : ", sys.getrefcount(3)) #참조 갯수를 알려줌 #변수할당하는 방법 a,b =('python','life') # 2개 이상 변수에 값 할당하는법 print("a, b: ", a, b) a,b = b,a print("a, b: ", a, b) #파이썬은 이렇게 쉽게 두 수의 값을 바꾼다. a=b=c= [1,2,3] # a = b= c = 이렇게 할당시 print("a,b",a, b,c) #모든 값이 서로를 가리킴 b[1]= 3 # 수정시 모든값이 다바뀐다. print("a,b",a, b,c) c[1]=4 print("a,b",a, b,c) del(a) #Garbage collection a = [1,2,3] b = a a[1] =4#b가 a를 가리키기 때문에 a값이바뀌어도 print("a,b", a, b) #b의 값도 같이 바뀐다. from copy import copy b= copy(a) # a의 값을 복사하는 함수로 밑과 같다. b=a[:] #b가 a를 복사해서 할당하는 형태이다. a[1] = 5 print("a,b", a, b) #b의 값이 바뀌지 않는다 | cs |
출력화면
1 2 3 4 5 6 7 8 | s1 is s2 : False s1 is s3 : False s2 is s4 : True sys.getrefcount(3) : 151 a, b: python life a, b: life python a,b [1, 4, 3] [1, 4, 3] a,b [1, 5, 3] [1, 4, 3] | cs |
정리!!!
del(a)
from copy import copy
copy()
import system
sys.getrefcount()
[Python] if문 (0) | 2018.01.15 |
---|---|
[Python] 집합자료형 (0) | 2018.01.15 |
[Python] 딕셔너리 자료형 (0) | 2018.01.14 |
[Python] 튜플 (0) | 2018.01.14 |
[Python] 리스트 (0) | 2018.01.14 |
집합자료형
set 키워드로 만들 수 있다.
- 중복을 허용하지 않는다.
- 순서가 없다.
이를 이용해서 교집합, 합집합, 차집합을 구할 때 좋다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 | #집합자료형 s= set([1,2,3]) print("set([1,2,3]): ", s) s2 = set("hello") print("set(\"hello\"): ",s2)# 중복 허용하지않음. s2 = set("hello") #순서가 없다. print("set(\"hello\"): ",s2) s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print("s1&s2: ",s1&s2) # 교집합 print("s1.intersection(s2): ", s1.intersection(s2)) #교집합 print("s1|s2: ", s1|s2) #합집합 print("s1.union(s2): ",s1.union(s2)) #합집합 print("s1-s2 : ", s1-s2) #차집합 print("s1.difference(s2): ",s1.difference(s2)) #차집합 s1.add(7) #추가하는 함수 print("s1.add(4) : ",s1) s1.update([8,9]) #여러개 추가하는 함수 print("s1.update([8,9]) : ", s1) s1.remove(3) #특정값 지우는 함수. print("s1.remove(3) : ",s1) #한개만 가능하네. while s1: print("존재하므로 참입니다.", s1) s1.pop() print("끝") s1 = 3 print("type(s1) : ",type(s1)) # int, 자료형을 알려주는 함수. s1 = [1] print("type([1]) : ",type(s1)) # 리스트 자료형 print("type('c') : ",type('c')) # str자료형 print("type(2.0) : ",type(2.0)) # float 자료형 | cs |
출력화면
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 | set([1,2,3]): {1, 2, 3} set("hello"): {'h', 'e', 'o', 'l'} set("hello"): {'h', 'e', 'o', 'l'} s1&s2: {4, 5, 6} s1.intersection(s2): {4, 5, 6} s1|s2: {1, 2, 3, 4, 5, 6, 7, 8, 9} s1.union(s2): {1, 2, 3, 4, 5, 6, 7, 8, 9} s1-s2 : {1, 2, 3} s1.difference(s2): {1, 2, 3} s1.add(4) : {1, 2, 3, 4, 5, 6, 7} s1.update([8,9]) : {1, 2, 3, 4, 5, 6, 7, 8, 9} s1.remove(3) : {1, 2, 4, 5, 6, 7, 8, 9} 존재하므로 참입니다. {1, 2, 4, 5, 6, 7, 8, 9} 존재하므로 참입니다. {2, 4, 5, 6, 7, 8, 9} 존재하므로 참입니다. {4, 5, 6, 7, 8, 9} 존재하므로 참입니다. {5, 6, 7, 8, 9} 존재하므로 참입니다. {6, 7, 8, 9} 존재하므로 참입니다. {7, 8, 9} 존재하므로 참입니다. {8, 9} 존재하므로 참입니다. {9} 끝 type(s1) : <class 'int'> type([1]) : <class 'list'> type('c') : <class 'str'> type(2.0) : <class 'float'> | cs |
정리!!!
s=set()
s.update()
s.add()
s.remove()
type()
s.pop()
[Python] if문 (0) | 2018.01.15 |
---|---|
[Python] 변수 (0) | 2018.01.15 |
[Python] 딕셔너리 자료형 (0) | 2018.01.14 |
[Python] 튜플 (0) | 2018.01.14 |
[Python] 리스트 (0) | 2018.01.14 |
딕셔너리 자료형
파이썬은 대응관계를 타나낼 수 있는 자료형을 가지고 있다.
이를 연관 배열 또는 해쉬라고 한다.
key와 value로 이루어져있다.
기본 형태는 {Key1:Value1, Key2:Value2, ...}
이렇게 이루어져 있다.
딕셔너리에서 key값은 고유한 값이므로 중복되는 key값을 설정해 놓으면 나머지는 무시가 된다.( 어떤 것이 무시될지 예측 불가)
key 값에는 리스트를 쓸 수 없다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #딕셔너리 dic = {'name1':'kim', 'name2':'kang'} print(dic) dic['name4']= 'gong' # 불러오는 것이 아닌 추가하는 것이다. print(dic) #없을시 추가,존재할시 변경! dic[3]=[1,2] #key: 정수, value: 리스트 print(dic) del dic[3] # 다시 지움. dic[4,2]=3,2 #key: 튜플, value: 튜플 print(dic) #dic[[1,2,3]]=3 #key값에는 리스트가 올 수 없다! print(dic) del dic['name1'] # dic에서 name1 이라는 키값 가진애를 삭제 del dic['name4'] print(dic) print("dic['name2']:",dic['name2']) #dic의 값을 이용해 value출력 print("dic.get('name2':)",dic.get('name2'))#이 방식이 더 좋다. k=dic.keys() # dic의 Key값만 모아서 print("k=dic.keys():",k) #dict_keys라는 객체를 리턴함. for a in dic.keys(): print("keys의 사용법: ",a) y = list(dic.keys()) #dict_key객체를 리스트로 변환하는 법 print("list(dic.keys()리스트화:",y ) k = dic.values() #Value값의 객체를 얻는법 print("value객체:", k) m = dic.items() #key와 value의 쌍으로 이루어진 객체 리턴법 print("key와 value쌍의 객체: ", m) print("a.get('nokey'):", dic.get('nokey')) #key값없을시 m= dic.get("key","ba") #get에서 두번째는 없을 시 디폴트값이다. print("",m) print("test:",dic.get("key")) # 값이 추가가 되는것은 아니다. print("키값이 존재하는지?: ",'name2' in dic) print("키값이 존재하는지?: ",'xxx' in dic) dic.clear() #dic안의 key와 value를 모두 지우는법 print(dic) |
출력 화면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | {'name1': 'kim', 'name2': 'kang'} {'name1': 'kim', 'name2': 'kang', 'name4': 'gong'} {'name1': 'kim', 'name2': 'kang', 'name4': 'gong', 3: [1, 2]} {'name1': 'kim', 'name2': 'kang', 'name4': 'gong', (4, 2): (3, 2)} {'name1': 'kim', 'name2': 'kang', 'name4': 'gong', (4, 2): (3, 2)} {'name2': 'kang', (4, 2): (3, 2)} dic['name2']: kang dic.get('name2':) kang k=dic.keys(): dict_keys(['name2', (4, 2)]) keys의 사용법: name2 keys의 사용법: (4, 2) list(dic.keys()리스트화: ['name2', (4, 2)] value객체: dict_values(['kang', (3, 2)]) key와 value쌍의 객체: dict_items([('name2', 'kang'), ((4, 2), (3, 2))]) a.get('nokey'): None ba test: None 키값이 존재하는지?: True 키값이 존재하는지?: False {} | cs |
정리!!
get()
get("","")
list(d.keys())
d.keys()
d.values()
d.items()
'a' in d
del d['a']
[Python] 변수 (0) | 2018.01.15 |
---|---|
[Python] 집합자료형 (0) | 2018.01.15 |
[Python] 튜플 (0) | 2018.01.14 |
[Python] 리스트 (0) | 2018.01.14 |
[Python] 키워드 인수 (0) | 2018.01.11 |
튜플(tuple)은 몇 가지를 제외하고 리스트와 거의 비슷하다.
리스트는 []로 둘러 싸지만, 튜플은 ()로 둘러 싼다.
리스트는 값의 생성, 삭제, 수정이 가능하지만, 튜플은 불가능 하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | a = (1,2,3,4,5) print("a = (1,2,3,4,5):",a) a= 1,2,3,4,5 print("a= 1,2,3,4,5:",a) #괄호 생략도 가능함 a= 1, #하나만 할때는 ,를 붙여야함. print("a= 1,:",a) print("a[0]:",a[0]) #참조가 가능함 b=6,7,8 print("a+b=:",a+b) #더하기 가능 c=b[1:3] print("b[1:3]:",c) # 변경을 불가능하지만 슬라이싱 가능 c= b*3 print("b*3:",c) | cs |
출력화면
1 2 3 4 5 6 7 | a = (1,2,3,4,5): (1, 2, 3, 4, 5) a= 1,2,3,4,5: (1, 2, 3, 4, 5) a= 1,: (1,) a[0]: 1 a+b=: (1, 6, 7, 8) b[1:3]: (7, 8) b*3: (6, 7, 8, 6, 7, 8, 6, 7, 8) | cs |
[Python] 집합자료형 (0) | 2018.01.15 |
---|---|
[Python] 딕셔너리 자료형 (0) | 2018.01.14 |
[Python] 리스트 (0) | 2018.01.14 |
[Python] 키워드 인수 (0) | 2018.01.11 |
[Python] 디폴트 인수 (0) | 2018.01.11 |
리스트 사용법들 모음
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 31 32 33 34 35 36 37 38 39 | a = [1,2,3,4,5] b= [1] c = [3] print("리스트 출력:",a) #리스트명을 입력하면[]안에 원소출력 print("리스트 -5:",a[-5]) #리스트 뒤에서 5번째 표현 print("리스트연산:",a[-5]+a[0]) # 1+1 a = [1,2,3,4,[5,6,7,8,9]] #리스트 속의 리스트 print("리스트 속의 리스트:",a) print("a[4][4]:",a[4][4]) #리스트속의 리스트 가리킴 print("a[-1]+a[4]:",a[-1]+a[4]) #리스트 통째로 연산을 하게되면 #각각의 원소에 연산하는것이 아니고, 리스트에 추가하게됨. print("a[-1]*3:",a[-1]*3)#리스트에*연산하면 리스트반복횟수 a[0]= ['r','r'] #이걸 넣으면 [['r','r'],6,7,8,9..]가 아님 print("리스트에 문자열 추가:",a[0]) a[0]= [['r','r']] #이걸 넣으면 [['r','r'],6,7,8,9..] 임 print("리스트에 문자열 리스트 추가:",a[0]) a[0] = 1,2 #[1,2]와 다르다. 튜플추가된다. print("원상복구",a) a[0] = [1] print("a[0] = [1]",a[0]) # 1을 추가하는 것과 다름. 리스트[1]추가임 a[0]=9 print("del전:",a) #삭제 전 del a[4] print("del후:",a) #del 후 a.append(5) #append 맨마지막에 추가 print("append(5):",a) | cs |
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 | a.sort() print("sort :",a) #오름차순 정렬 b=['c','d','y','a'] b.sort() print("알파벳정렬:",b) #문자 오름차순 정렬 a.reverse() print("reverse:",a) # 순서를 뒤집는다. k =a.index(4) # 4가 속한 리스트의 위치값을 반환한다. print("a.index(4):",k) a.insert(0,5) # a[0] 위치에 4를 삽입한다. 원래 내용은 뒤로 밀린다. print("a.insert(0,5)", a) a.remove(5) #제일 처음나오는 5를 삭제한다. print("a.remove(5):", a) k=a.pop() #제일 마지막 값을 돌려주고, print("k=a.pop():",k) #그 은 원래 리스트에서 삭제한다 print("a?:",a) k= a.count(1) #a에 속한 1의 갯수를 알려주는 함수 print("a.count(1):", k) # 0개 a.extend([2,1]) #a에 [2,1]를 붙여 연장함. a=a+[2,1]과 같다. print("a.extend([2,1]):",a) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 리스트 출력: [1, 2, 3, 4, 5] 리스트 -5: 1 리스트연산: 2 리스트 속의 리스트: [1, 2, 3, 4, [5, 6, 7, 8, 9]] a[4][4]: 9 a[-1]+a[4]: [5, 6, 7, 8, 9, 5, 6, 7, 8, 9] a[-1]*3: [5, 6, 7, 8, 9, 5, 6, 7, 8, 9, 5, 6, 7, 8, 9] 리스트에 문자열 추가: ['r', 'r'] 리스트에 문자열 리스트 추가: [['r', 'r']] 원상복구 [(1, 2), 2, 3, 4, [5, 6, 7, 8, 9]] a[0] = [1] [1] del전: [9, 2, 3, 4, [5, 6, 7, 8, 9]] del후: [9, 2, 3, 4] append(5): [9, 2, 3, 4, 5] sort : [2, 3, 4, 5, 9] 알파벳정렬: ['a', 'c', 'd', 'y'] reverse: [9, 5, 4, 3, 2] a.index(4): 2 a.insert(0,5) [5, 9, 5, 4, 3, 2] a.remove(5): [9, 5, 4, 3, 2] k=a.pop(): 2 a?: [9, 5, 4, 3] a.count(1): 0 a.extend([2,1]): [9, 5, 4, 3, 2, 1] | cs |
정리!
append()
insert()
reverse()
extend()
sort()
remove()
index()
pop()
count()
del a[0]
[Python] 딕셔너리 자료형 (0) | 2018.01.14 |
---|---|
[Python] 튜플 (0) | 2018.01.14 |
[Python] 키워드 인수 (0) | 2018.01.11 |
[Python] 디폴트 인수 (0) | 2018.01.11 |
[Python] 함수정의 : def (0) | 2018.01.11 |
키워드 인수는 키워드의 매개변수를 명시적으로 지정해서 전달하는 인수이다.
1 2 3 4 5 6 7 | def calc(x, y, z): print("x-y+z: ",x-y+z) print("y-x+z: ",y-x+z) return x+y+z print(calc(y=20, x=10, z=30)) #print(calc(a=20, b=10, c=30)) | cs |
>>>
1 2 3 | x-y+z: 20 y-x+z: 40 60 | cs |
이렇게 나온다.
주석처리된 문장은 인수의 이름을 함수의 매개변수와 일치 하지 않게 했다
에러가 나온다
정확이 일치해야 사용할 수 있다.
함수의 매개변수명을 정확히 알아야 사용가능하네.
[Python] 튜플 (0) | 2018.01.14 |
---|---|
[Python] 리스트 (0) | 2018.01.14 |
[Python] 디폴트 인수 (0) | 2018.01.11 |
[Python] 함수정의 : def (0) | 2018.01.11 |
[Python] while (0) | 2018.01.11 |
파이썬에서는 함수의 매개 변수가 기본값을 가질 수 있다,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def gre(name, msg ="abc"): print("hi",name +','+msg) def gre2(name, msg): msg ="kkk" print("hi",name +','+msg) def gre3(name, msg ="abc"): msg ="333" print("hi",name +','+msg) def gre4(name, msg ="abc"): msg ="333" print("hi",name +','+msg) gre("kim") gre2("kim","abc") gre3("kim") gre4("kim","abc") | cs |
1 2 3 4 | hi kim,abc hi kim,kkk hi kim,333 hi kim,333 | cs |
gre1: 호출은 매개변수 1개, 하지만, 함수는 매개변수 1개, 디폴트인수1개
gre2: 호출은 매개변수 2개, 함수는 매개변수 2개.
gre3: 호출은 매개변수 1개, 함수는 매개변수 1개, 디폴트인수1개와 초기화
gre4: 호출은 매개변수 2개, 함수는 매개변수 1개, 디폴트인수1개와 초기화
매개변수에 값을 넣는다 생각하고 유동적으로 사용이 가능하다.
값이 있을 경우 호출에서 생략해도 된다.
[Python] 리스트 (0) | 2018.01.14 |
---|---|
[Python] 키워드 인수 (0) | 2018.01.11 |
[Python] 함수정의 : def (0) | 2018.01.11 |
[Python] while (0) | 2018.01.11 |
[Python] random (0) | 2018.01.11 |
def
함수를 정의하는 함수이다.
반환 값, 매개변수등을 생성
1 2 3 4 5 6 | def calculate_area (radius): area = 3.14 * radius**2 return area c_area = calculate_area(5.0) | cs |
전역변수와 지역변수
1 2 3 4 5 6 7 8 9 | def get_sum(start, end): d =0 for i in range(start, end+1): d += i+sum return sum sum =12 print(get_sum(1, 10)) print("sum:",sum) | cs |
결과는 12 12 가 나온다
함수안에 sum이 없는데 사용이 가능하다. 전역변수라서 def 어디서든지 이용할 수 있다,
하지만
1 2 3 4 5 6 7 | def cal(rad): ar = 3.14*rad**2 return ar =0 r=3.0 cal(r) print(ar) | cs |
이 경우 함수에서 ar에 수를 대입했지만, 값은 0이 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def get_sum(start, end): d =0 for i in range(start, end+1): d = d+i +sum sum = 55 return sum sum =12 print(get_sum(1, 10)) print("sum:",sum) print("\n") | cs |
이경우 에러가 발생한다. 왜냐
UnboundLocalError: local variable 'sum' referenced before assignment
def안에서 sum이 선언이 되었다. sum = 55라고.
하지만 선언되기 전에 sum을 사용하면 전역변수의 sum을 사용하지 못하고
지역변수의 sum을 사용해야한다, 하지만 아직 할당 되지 않은 변수를 사용하려고 했으므로 에러가 발생한다.
지역변수와 전역변수를 함수내에서 혼용하기 힘들다는 것을 알아냈다.
[Python] 키워드 인수 (0) | 2018.01.11 |
---|---|
[Python] 디폴트 인수 (0) | 2018.01.11 |
[Python] while (0) | 2018.01.11 |
[Python] random (0) | 2018.01.11 |
[Python] for문 (0) | 2018.01.11 |
while
1 2 3 | while a <4: print("whil문 반복:",a+1,"회") a=a+1 | cs |
while문은 조건에 의해 실행되는 형태다.
for문은 range를통해 실행되는 숫자가 정해져 있다.
조건문이 많이 쓰이기 때문에
1 2 3 4 5 6 | while True: print("무한반복") a = a +1 if a >5: print("나가기") break | cs |
무한 반복을 통한 break 문도 알아야한다.
조건:
1 2 3 4 5 6 | x or y x and y not x x in 리스트 x in 튜플 x in 문자열 | cs |
[Python] 디폴트 인수 (0) | 2018.01.11 |
---|---|
[Python] 함수정의 : def (0) | 2018.01.11 |
[Python] random (0) | 2018.01.11 |
[Python] for문 (0) | 2018.01.11 |
[Python] 터틀 관련 함수정리 (0) | 2018.01.10 |