마지막 코딩시간 파이썬 문제

몇 가지 코딩 결과물을 올려놓기로 한다

i = 2 while False: if i%2==0: break print(i) i+=2 # 이렇게 하면? 아무것도 나오지 않는다. x = 'abcdef' i = 'a' while i in x: x=x[:-1] print(i,end='') # 이렇게 하면? 변수 x에는 6개의 문자열이 있다. 이걸 가지고 i를 여러 번 반복해주는 것이다. # 그리고 역순부터 시작하게 되면, 결국 a가 6번 나오게 된다. dtn={0:'a',1:'b',2:'c'} for i in dtn: print(i) # 이건 dictionary 형태의 데이터이다. 이렇게 하면 키만 나온다 dtst={0:'a',1:'b',2:'c'} for x,y in dtst.items(): print(x,y) # 이건 dictionary 형태의 데이터. 키와 값이 같이 나온다. # 변수 x,y를 동시에 지정해줘서 값을 넣으면 된다. for i in range(10): if i ==5: break else: print(i) else: print('Here') # 0~10까지 for문을 사용해서 돌린다. 총 10번 돌아가야 정상 # 그런데 안에 조건을 보아하니.. 첫번째 조건이 5와 똑같으면 break. # 그럼 그 밑에 아무리 좋은 말을 써놨어도 그냥 0~4까지 나오면 아웃이다. 즉 5번 반복하고 이 반복문은 끝이 난다 a = [0,1,2,3] for a[0] in a: print(a[0]) # 이건 일종의 속임수라고 볼 수 있다. # 그러니까 a[0] 을 쓰건 i를 쓰건 상관없이 그냥 a안에 있는 문자열만큼 계속 돈다. # 별다른 조건을 내걸지 않았기 때문이다 print('xyyzxyzxzxyy'.count('xyy',-10,-1)) # 만약에 뒤에 조건이 없다면 2개라고 나오겠지만 뒤에 조건이 있기 때문에 0개라고 나온다 name1 = ['a','b','c','d'] name2 = name1 name3 = name1[:] name2[0] = 'a1' name3[1] = 'b1' sum = 0 for s in (name1,name2,name3): if s[0] =='a1': sum +=1 if s[1] =='b1': sum+=10 print(sum) # 이걸 해보는 이유는 얕은복사 와 깊은 복사의 차이점을 알기 위한 것이다 # deepcopy shallowcopy # 정답은 12 mist = [1,5,5,5,5,1] max = mist[0] indexomx = 0 for i in range(1,len(mist)): if mist[i] > max: max = mist[i] indexomx = i print(indexomx) # 이건 보면... 5번 for문을 반복한다는 말이다. # 그런데 두 번째에 바로 5가 나오고, 그게 1번째 나온다. 그래서 1이 정답 def f(i,values=[]): values.append(i) return values #main f(1) f(2) v = f(3) print(v) # 이건 f 함수를 define 해주고 나서 결과이다. def increment_items(L, increment): i = 0 while i <len(L): L[i] =L[i] +increment i=i+1 values= [1,2,3] print(increment_items(values,2)) print(values) import copy a = [10,23,56,[78]] b = copy.deepcopy(a) a[3][0]=95 a[1] = 34 print(b) # 이건 대놓고 deppcopy이다

이렇게 마무리 짓자.. 휴.. 끝

네이버 블로그 원문 보기