1. 다음 Python으로 구현된 프로그램과 입력값을 보고 실행 결과를 작성하시오.
입력 : Python programming
x = input()
x = x.capitalize()
y = x.split()
print(y[0][::2], end = '*')
print(y[1][3:6])
📚 capitalize():
Pto*gra
capitalize(): 각 단어의 첫 글자를 대문자로 변경하여 x에 저장합니다.
y[0][::2] : y[0]에 저장된 문자열의 0번 위치부터 2씩 증가하면서 각 글자를 출력하고 종료 문자(end = '*')인 *를 출력합니다.
합친값은 Pto*gra가 됩니다.
2. 다음 python의 프로그램과 입력값을 분석하여 실행 결과에 대해 작성하시오.
입력 :
input string : information-technology
input number : 12
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])
📚 find():
5
range(0,12,2): 0에서 12-1(n-1)까지 2씩 증가하는 숫자를 arr_val에 리스트 형식으로 저장되게 됩니다.
arr_val[0] : 0
arr_val[1] : 2
arr_val[2] : 4
arr_val[3] : 6
arr_val[4] : 8
arr_val[5] : 10
arr_val의 값 4의 부분을 삭제되고 앞으로 한칸씩 당겨지게 됩니다.
arr_val[0] : 0
arr_val[1] : 2
arr_val[2] : 6
arr_val[3] : 8
arr_val[4] : 10
find 함수: 인덱스를 반환
ex)
A = "abc def"
A.find("def") # def 의 시작 인덱스인 5를 반환
ex)
A = "abc def"
A.find("g") # g는 존재하지 않는 값으로 -1를 반환
arr_str[1]에는 i값이 없으므로 -1이 반환되고 arr_val[2]는의 값은 6이므로 5가 출력되게 됩니다.
3. 다음 python의 프로그램을 분석하여 실행 결과에 대해 작성하시오.
i = 20
f = 123456.789E-3
print('%d\n%d' % (i, i), end = '/')
print('%.3f' % f)
📚 end = '/'
20
20/123.457
%d에서 20을 출력하고 \n에 의해 개행이되게 됩니다.
그리고 다시 %d로 인해 20이 입력되고 종료 문자 end 속성으로 / 를 출력합니다.
123456.789E-3 이면
실수 e * (1/10의 거듭제곱) 형태로 계산됩니다.
그래서 123456.789 * (1/1000) = 123.456789 가 됩니다.
'%.3f': 소수점을 반올림하여 3자리를 출력합니다.
4. 다음 python의 프로그램을 분석하여 실행 결과에 대해 작성하시오.
class charClass :
a = ["Seoul", "Inchon", "Kyonggi", "Daejun", "Daegu", "Pusan"]
myVal = charClass()
str01 = ''
for i in myVal.a:
str01 = str01 + i[0]
print(str01)
📚 for i in myVal.a: i[0]
SIKDDP
charClass의 객체 변수 myVal를 선언합니다.
str01의 변수를 선언하고
myVal의 리스트 a의 요소 수만큼 문장들을 반복합니다.
각 요소에 i를 할당하면서 문자열만큼 배열값이 들어가게 됩니다.
ex)
i[0] = Seoul각 요소의 i의 0번째는 각 글자의 첫번째 글자로 나타납니다.
i[4] = Seoul
5. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
a = "What's this?"
print("%-10.4s" % a)
print("%10.4s" % a)
📚 %-10.4s
What
What
%s는 문자열을 추출하는 서식 문자열이고,
-10.4s에서 -는 왼쪽부터 출력하라는 의미이며,
10은 10자리를 확보하고,
4는 a에 저장된 문자열 "What's this" 중 앞의 4글자만을 출력하라는 의미이므로 결과는 뒤에 6칸 공백이 생깁니다.
두번째 답도 비슷하게
10.4s에서 +는 오른쪽부터 출력하라는 의미이며,
앞의 4글자만 출력하고 마지막 6칸 공백이 생기는 방식으로 설정되었습니다.
💡 %.3f 을 생각해요.
소수 출력에서 많이 봤을만한 표기입니다.
소수점 뒤 반올림하여 3자리까지 출력입니다.
➡️ %(-/+)10.4s문자열이니까, 반올림은 아니죠?!그럼 .4는 앞부터 출력 개수이고, 10은 총 출력 개수라고 유추할 수 있어요-/+ 는 왼쪽/오른쪽 부터 출력을 의미한다는 거~! 암기
6. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
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)
📚 2차원 리스트에서 중첩 for문, 개수
9 5
i는 a의 [[1,1,0,1,0],[1,0,1,0]] 에서 순차적으로 들어갑니다. (즉, 크게 2번 반복)
1.
for 문 (1)
i에 [1,1,0,1,0]
for 문(2)
j에 i의 각 요소 1,1,0,1,0
tot 는 tot(0) + j 요소의 합이 들어감 # 3
totsu 는 totsu(0) + len(i)로, len(i)는 리스트의 개수 5개 # 5
2.
for 문 (2)
i에 [1,0,1,0]
for 문(2)
j에 i의 각 요소 1,0,1,0
tot 는 tot(3) + j 요소의 합이 들어감 # 5
totsu 는 totsu(5) + len(i)로, len(i)는 리스트의 개수 4개 # 9
print(totsu, tot) 를 하면, 마지막 9 5 가 순차대로 출력됩니다.
💡참고로, print에서
print(totsu, tot) 할 때 변수를 " , " 로 연결하여 출력할 경우 한칸 띄어쓰기 됩니다.
💡참고로, print(len(j)는 하지 못합니다.
i는 리스트 이며, j는 정수이기 때문입니다.
len은 리스트 길이 구할 때 사용합니다.
7. 다음 Python 코드는 "30, 200"을 출력한다. 빈 칸 ( 1 ), ( 2 )에 알맞는 코드를 차례로 쓰시오.
( 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.mul(10,20)
print(x, y)
📚 함수 키워드
class, def
Python에서 클래스는 class로, 함수는 def라는 키워드로 선언합니다.
7. 다음 Python 코드는 "30, 200"을 출력한다. 빈 칸 ( 1 ), ( 2 )에 알맞는 코드를 차례로 쓰시오.
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()
📚 2차원 리스트에서 중첩 for문, end = " "
[1,2,3]
7
1 2 3
4 5
6 7 8 9
lol의 [0] 인덱스 값 출력하고 1줄 내립니다. [1,2,3]
lol의 [2][1] 인덱스 값 출력하고 1줄 내립니다. 7
sub는 lol의 [[1,2,3],[4,5],[6,7,8,9]] 에서 순차적으로 들어갑니다. (즉, 크게 3번 반복)
1.
for 문 (1)
sub에 [1,2,3]
for 문(2)
item에 sub의 각 요소 1,2,3
print(item, end = " ") # 1,2,3 출력하고 개행(엔터)
2.
for 문 (1)
sub에 [4,5]
for 문(2)
item에 sub의 각 요소 4,5
print(item, end = " ") # 4,5 출력하고 개행(엔터)
3.
for 문 (1)
sub에 [6,7,8,9]
for 문(2)
item에 sub의 각 요소 6,7,8,9
print(item, end = " ") # 6,7,8,9 출력하고 개행(엔터)
'IT 자격증 > 정보처리기사' 카테고리의 다른 글
[정처기] 2024년 2회 정보처리기사 실기 합격 후기 주의점(한 번에 합격하기!) (0) | 2024.07.29 |
---|---|
[정처기] 정보처리기사 (IP클래스 · 서브넷마스크 · 서브넷)편 유형 모음 / 초간단 풀이 (0) | 2024.07.25 |
[정처기] 정보처기기사 실기 큰 틀 요약 !! (2) | 2024.07.22 |
[정처기] 실기 (개념, 요약, 문제, 참고 사이트) (9) | 2024.06.24 |
[정처기] 2024년 2회 정보처리기사 필기 합격 후기 (0) | 2024.05.14 |