[패스트캠퍼스python] 파이썬의 조건문과 반복문 중간 점검 퀴즈

파이썬의 조건문과 반복문 중간 점검 퀴즈

조건문과 반복문 중간 점검 퀴즈를 하였다
데이터타입 중간 점검 퀴즈와는 다르게 조금 어려웠다.

여러 문제를 풀었지만 내가 모르는 문제해결방법 위주로 정리해보았다
이번 중간 퀴즈도 역시 유익했다.

1. 아래 딕셔너리에서 ‘가을’에 해당하는 과일을 출력하세요.

동일한 접근 방법이지만 keys()를 가져올 지 items()를 가져올 지 선택할수있다

첫번째 방법 : for와 if문 사용

1
2
3
4
5
q1 =  {"봄": "딸기", "여름": "토마토", "가을": "사과"}

for k in q1.keys():
if k == '가을':
print(q1[k])

두번째 방법 : keys()말고 items()가져오기

1
2
3
for k, v in q1.items():
if k == '가을':
print(v)

첫번째, 두번째 출력값은

1
2
사과
사과

2. 다음 세 개의 숫자 중 가장 큰수를 출력하세요.(if문 사용) : 12, 6, 18

나는 아래와 같이 풀었다. 쉽게쉽게~!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
a = 12
b = 6
c = 18

if a > b:
if a > c:
print(a)
else:
print(c)
else:
print(b)

# 출력값은
18

위는 내가 푼 코드이고 아래는 강사가 푼 코드이다.
변수선언이나 코드길이도 훨씬 효율적여보인다.
여러 방법으로 푸는 방법을 익히고 그리고 여러 방법으로 풀어보려는 자세가 중요하다.

1
2
3
4
5
6
7
8
a, b, c = 12, 6, 18
best = a

if b > a:
best = b
if c < b:
best = c
print('best : ', best)

두 방법 다 꼭 기억해야겠다.

3. s에서 7자리 숫자를 사용해서 남자, 여자를 판별하세요. (1,3 : 남자, 2,4 : 여자)

처음에 어떻게 풀지 막막했다. 결국 겅의를 보게 되었고 결과는 허무했다.
이렇게 간단한거였는데 풀지도 못하다니 수학적 사고를 길러야겠다고 생각이 들었다

1
2
3
4
5
6
7
8
9
s = '021022-4473837'

if int(s[7]) % 2 == 0:
print('여자')
else:
print('남자')

# 출력값은
여자

4. 다음 리스트 중에서 ‘아’ 글자를 제외하고 출력하세요.

여기서 continue 를 쓸 생각을 하지못했다.
슬라이싱 처리하려고 했는데 잘 안되서 막막하던 차에 강의에서 continue쓰고 묵혔던 답답함이 쏴악 해소되었다.
이제 컨디뉴 절대 안 잊어버릴것같다

1
2
3
4
5
6
7
8
9
10
11
q3 = ["지", "컨", "아", "세", "요"]

for v in q3:
if v == '아':
continue
else:
print(v, end='')
print()

# 출력값은
지컨세요

5. 아래 리스트 항목 중에서 5글자 이상의 단어만 출력하세요.

이건 보자마자 길이함수를 써야겠다는 확신이 들었다
js를 할때 길이를 항상 length()로 사용해서 무의식적으로 length()적었다가 에러가 떴다
아차차 하고 바로 len()로 바꿨다
비슷하지만 조금씩 다른 함수들이 있어서 가끔 혼동스럽다
헷갈리지 않도록 더 빡세게 암기해야겠다.

1
2
3
4
5
6
7
8
9
q4 = ["nice", "study", "python", "anaconda", "!"]

for v in q4:
if len(v) >= 5:
print(v, end=' ')
print()

# 출력값은
study python anaconda

6. 아래 리스트 항목 중에서 소문자만 출력하세요.

나는 당연히 islower()함수만 썼는데 강의에서 continue를 써서 깜짝 놀랬다.
이런 부분때문에 혼자 공부하는 것보다 강의나 여럿이 공부하는 것이 좋은 것같다
어서 실력을 키워 모각코나 스터디그룹을 만들고 싶다

1
2
3
4
5
6
q5 = ["A", "b", "c", "D", "e", "F", "G", "h"]

for v in q5:
if v.islower():
print(v, end=' ')
print()

또는 continue를 써서 풀수도 있다

1
2
3
4
5
6
for v in q5:
if v.isupper():
continue
else:
print(v, end=' ')
print()

위의 두가기 방식의 출력값은

1
2
b c e h
b c e h

7. 아래 리스트 항목 중에서 소문자는 대문자로 대문자는 소문자로 출력하세요.

재밌는 문제였다. 위의 방법을 그대로 응용하면 되는 문제라 풀면서도 재미있었다
저 출력값들을 한 문장으로 나타내려면 어떻게하면 좋을까?
if문 끝난 값들을 temp에 넣고 end()로 한 문장에 넣으면 될 것 같다
나중에 실습해봐야지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
q6 = ["A", "b", "c", "D", "e", "F", "G", "h"]

for v in q6:
if v.isupper():
print(v.lower())
elif v.islower():
print(v.upper())
print()

# 출력값은
a
B
C
d
E
f
g
H

그리고 아래 내용들을 학습했다.
정의에 관한 내용이라 블로깅할 부분이 없었지만 강의가 구체적으로 들어가면 자세히 블로깅 할 예정이다