728x90
반응형
(문제)
정수를 입력 받아 정수만큼 # 기호를 출력하는 프로그램이다.
두 자리 이상의 정수는 자릿수를 분리하여 # 기호를 출력한다
중첩 for문을 사용하고, 실행 결과는 다음과 같으며,
다음 조건을 만족하는 프로그램을 작성하세요.
-정수를 입력 받아 저장하는 변수: num
-중첩 for문의 제어변수: x, y
-# 기호 개수 변수: sharp_num
-첫 번째 for문의 범위: range(len(num))
-두 번째 for문의 범위: range(sharp_num)
[실행결과]
정수 입력:35
###
#####
(방법)
num = input('정수 입력:') # 입력 받기. 문자열로 입력 받게 됨.
for x in range(len(num)): # len(num)으로 문자열의 요소수. len('35') 는 2, len('5') 는 1, len('123')은 3
sharp_num = int(num[x]) # '35'일때 len('35')에 의해서 x는 0,1 이 됨. num[0] = '3', num[1] = '5' 가 됨. int함수에 의해 문자열이 정수가 됨
for y in range(sharp_num): # '3'일때 sharp_num은 3이 됨. y는 0,1,2가 됨.
print('#',end='') # '#'를 하나씩 출력하는데 end=''에 의해서 줄바꿈이 되지 않음. 그래서 계속 '###' 와 같이 출력하게 됨
print() # 줄바꿈. '35'애서 '3'일때 '###' 출력하고 줄바꿈 하게 됨
또 다른 방법 (문제의 요청에서 중첩 for문 사용이라고 하니까 아래 코드는 요청에 맞지는 않음)
num = input('정수 입력:') # 입력 받기. 문자열로 입력 받게 됨.
for x in range(len(num)): # len(num)으로 문자열의 요소수. len('35') 는 2, len('5') 는 1, len('123')은 3
sharp_num = int(num[x]) # '35'일때 len('35')에 의해서 x는 0,1 이 됨. num[0] = '3', num[1] = '5' 가 됨. int함수에 의해 문자열이 정수가 됨
print('#'*sharp_num) # '#'*3 이면 '#'를 3개 출력하게 됨
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 상자 Box 클래스, length, height, depth (0) | 2023.05.31 |
---|---|
[파이썬] 두 데이터를 같이 shuffle로 섞기 (0) | 2023.05.30 |
[파이썬] 문제 : 터틀(turtle) 로봇 청소기 이동 경로와 같이 그리기 (0) | 2023.05.29 |
[파이썬] 문제 : 터틀(turtle) 30개의 임의 색과 크기의 원 그리기 (0) | 2023.05.29 |
[파이썬] 문제 : example.txt 파일의 $ 문자를 # 문자로 변경 (0) | 2023.05.29 |
댓글