파이썬은 문제를 풀고 나니 심각성을 알게 되었다.
기존에 하던 자바와 다른 점이 너무 많다..
1. 실행 결과
x = input()
y = x.capitalize()
y = x.split()
print(y[0][::2], end = '*')
print(y[1][3:6])
# 입력: Python programming
답: Pto*gra
capitalize()는 문자열의 첫 글자는 대문자로, 나머지는 소문자로 변환한다.
따라서 y = x.capitalize()에서 y는 Python Programming이 된다.
split()을 통해서는 공백 기준으로 y에 배열 형태로 저장한다.
y[0]에는 Python이, y[1]에는 Programming이 저장된다.
y[0][::2]는 Python이라는 문자열을 처음부터 끝까지 2개씩 건너뛰면서 잘라낸다는 뜻이다.
end는 마지막에는 종료문자로 *를 출력하겠다는 뜻이다.
(end가 딱히 없으면 줄바꿈을 하겠다는 뜻이다.)
따라서 Pto*가 출력된다.
y[1][3:6]는 Programming이라는 문자열을 3번째 단어부터 6번째 단어 전까지 잘라낸다는 뜻이다.
따라서 gra가 출력된다.
결국, 둘을 합하면 Pto*gra가 출력된다.
2. 실행 결과
arr_str = input('input String : ').split('-')
arr_len = int(input('input number : '))
arr_val = list(range(0, arr_len, 2))
arr_val.remove(4)
print(arr_str[1].find('i') + arr_val[2])
# 입력
# input string : information-technology
# input number : 12
답: 3
풀이
arr_str[0] = information
arr_str[1] = technology
arr_len = 12
range(0, 12, 2)는 0이 시작 숫자, 12는 끝 숫자, 2는 건너뛰는 수를 의미한다.
따라서 arr_val = [0, 2, 4, 6, 8, 10]이다.
arr_val.remove(4)를 하고 나면 4가 지워져 arr_val = [0, 2, 6, 8, 10]
arr_str[1].find('i')에서는 존재하지 않는 i라는 값을 찾고 있기 때문에 -1을 리턴한다.
arr_val[2]는 6이므로 둘을 더하면 -1+6 = 5이다.
3. 실행 결과
i = 20
f = 123456.789E-3
print('%d\n%d' % (i, i), end = '/')
print('%.3f' % f)
답
20
20/123.457
풀이
123456.789E-3이면 소숫점자리를 앞으로 3번 옮기라는 뜻이다.
따라서 123.456789가 된다.
%.3f는 소숫점 셋째 자리까지 나타내라는 뜻인데, 소숫점 넷째 자리에서 반올림한다.
4. 실행 결과
class charClass :
a = ["Seoul", "Incheon", "Kyonggi", "Daejun", "Daegu", "Pusan"]
myVal = charClass()
str01 = ''
for i in myVal.a:
str01 = str01 + i[0]
print(str01)
답: SIKDDP
풀이
myVal은 charClass의 객체 변수이다.
for문은 myVal의 리스트 a의 요소 수만큼 실행문을 반복한다.
i는 배열 안에 있는 문자열들이 되고,
i[0]은 문자열의 첫 번째 문자가 된다.
따라서 각 문자열의 앞자리들을 더한 SIKDDP가 답이 된다.
5. 실행 결과
a = "What's this?"
print("%-10.4s" % a)
print("%10.4s" % a)
답
What
What
풀이
-10.4에서 -는 왼쪽부터 출력하라는 의미이고, 10은 열 자리를 확보하고 4는 앞의 4글자만을 출력하라는 의미이다.
따라서 왼쪽부터 What 네 글자가 출력되고, 오른쪽 나머지 6칸은 공백이 된다.
10.4도 마찬가지로 10은 열 자리를 확보하고 4는 앞의 4글자만을 출력하라는 의미이다.
그런데 앞 부분을 공백으로 채우므로 왼쪽부터 6칸은 공백, 4칸은 What이 된다.
6. 실행 결과
i, hap = 1, 0
while i <= 6:
hap += i
i += 2
print(f"i={i}, hap={hap}")
답
i=7, hap=9
7. 실행 결과
a = [[1,1,0,1,0],
[1,0,1,0]]
tot, totsu = 0, 0
for i in a:
for j in i:
tot += j
totsu = totsu + len(i)
print(totsu, tot)
답: 9 5
풀이
a[0] = [1,1,0,1,0], a[1] = [1,0,1,0]
이중 for문 안에서 a[0]일 때 tot = 3, totsu = 5
a[1]일 때 tot = 3 + 2, totsu = 5 + 4가 된다.
따라서 답은9 5이다.
8. 빈 칸
( 1 ) Calculator:
( 2 ) add(self, x, y):
return x + y
( 2 ) mul(self, x, y):
return x * y
cal = Calculator()
x = cal.add(10, 20)
y = cal.add(10, 20)
print(x, y)
# 출력
# 30 200
답: (1) class (2) def
풀이
파이썬에서 함수는 def라는 키워드로 선언함
9. 실행 결과
lol = [[1,2,3],[4,5],[6,7,8,9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
for item in sub:
print(item, end = " ")
print()
답
[1, 2, 3]
7
1 2 3
4 5
6 7 8 9
'Language > Python' 카테고리의 다른 글
[Python] 파이썬 슬라이싱, split 함수 (0) | 2024.04.20 |
---|---|
[Python] 파이썬 for문 (0) | 2024.04.17 |