마지막 코딩시간 파이썬 문제
몇 가지 코딩 결과물을 올려놓기로 한다
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이다
이렇게 마무리 짓자.. 휴.. 끝