inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

데이터 분석을 위한 파이썬: 입문부터 꿀팁까지

제어문 연습문제 질문

해결된 질문

473

상열

작성한 질문수 3

0

Q3.

While 을 사용해서 아래와 같은 모양을 만들어 보세요.

******* 문제에서 질문 드립니다.

 
a = 10
b = "*" * a

while 0 < a < 11:
  a = a - 1
  print(b)
 
이렇게 하면 ark 10, 9, 8, 7 줄어들어서 b에 곱해지는 a값이 달라져서 *의 개수가 달라져서 출력될 줄 알았는데
별 10개가 계속 반복되더라고요 왜 그런가요??
 
근데 또 b = "*" * a 이것을 while 문 안에 넣으면 줄어들면서 나와요 ㅠㅠㅠ 차이를 모르겠습니다...
 
while 0 < a < 11:
  a = a - 1
b = "*" * a
  print(b)
 
 
 

python 데이터 엔지니어링

답변 2

0

김민주

안녕하세요 상열님, 

 

위에 작성해주신 코드에서는 변수 bwhile 문 밖에서 정의했기 때문에 변수 b 의 값은 while 문 밖에서 정의된 a 값(10)이 반영되어 ********** 가 됩니다. while 문이 돌아가면서 a 의 값은 바뀌지만 b 의 값은 while 문 밖에서 정의된 이후로 수정된 적 없기 때문에 ********** 그대로 출력됩니다.

 

아래에 작성해주신 코드처럼 변수 b 의 값도 while 문 안에서 정의해주셔야 while 문이 돌아가면서 바뀐 a 값에 따라 b 값도 바뀌어 출력됩니다.

 

또한 위 예제에서는 a 값이 10에서부터 1씩 작아지기 때문에 a 값의 범위는 0 < a < 11 이 아니라 0 < a 로만 작성해주셔도 충분합니다.

 

답변 확인해보시고 더 궁금한 점 있으시면 질문 남겨주세요.

0

DaHab

안녕하세요 상열님

첫번째 while문과 두번째 while문의 결과가 다른 것은 조건 조건을 주는 부분에서 헷갈리셨던 거 같아요. 

 
a = 10
b = "*" * a
print(b) # b값은 "*" * a가 되면서, 값이 **********인 것을 확인.

while 0 < a < 11:

   a = a - 1 # a값은 -1 만큼 줄어들고 있음

print(a) # 반복문에서 무엇이 문제 인지 모를 때, 헷갈리는 변수를 중간에 출력하는 것을 추천

print(b) # b 값에 대한 변화가 없기 때문에 **********는 a가 0이 될 때 까지 출력.
 

결과:

9
**********
8
**********
7
**********
6
**********
5
**********
4
**********
3
**********
2
**********
1
**********
0
**********

----------------------

while 0 < a < 11:

a = a - 1
 print(a) # a의 값의 변화 살펴보기
 
b = "*" * a # b와 관련 된 식을 추가했기 때문에 a 값 만큼 ark 모양을 만들 수 있음.
print(b)

결과:

9
*********
8
********
7
*******
6
******
5
*****
4
****
3
***
2
**
1
*
0

 

즉, b값 변화 식은 아래 조건문에 있었기 때문에 해당 ark가 나왔습니다.

위에서 설명드렸지만, 반복문에서 무엇이 문제인지 모를 때는 해당 변수를 출력해보는 것을 추천드려요

 

while문을 잘 작성해주셨는데 조건문 관련 변수가 두개(a, b)였기 때문에 더 헷갈리셨던 거 같아요.

이번 기회에 조건문을 작성할 때, 변수를 하나로 작성하는 법을 연습하면 좋을 거 같아요~

 

a = 10
while a > 0:
    print("*" * i)
   a -= 1

FRED API

0

7

0

캐글 제출 점수

0

4

1

VCP 시그널 상태 추가 스크립트 에서 return_pct 조건

0

13

2

캐쉬가 업데이트 안됩니다.

0

12

2

기출 마무리 방법

0

19

1

제가 AWS 에 배포했는데

1

14

1

빅이시 작업형2 기초 - 케이스 1~3 관련 문의

0

12

1

갑자기 stock_prediction은 어디서 발생한건가요?

1

19

2

pipeline/run-buy-pipeline 실행시 "LLM호출전체실패"에러발생

1

18

2

데이터프레임 슬라이싱 인덱싱 질문2

0

12

1

SSL 발급할때 HTTP로 진행하는 이유가 궁금합니다.

0

14

2

단일표본검정, 샤피로검정, 윌콕슨검정

0

24

2

소제목1을 어떻게 넣는지 모르겠어요

0

145

2

파이썬 코드 실행방법

0

1265

1

If 윤년판별기 질문

0

526

2

연습문제 1 질문입니다

0

503

1

if-else 관련하여 질문드립니다

0

252

1

문제 5번 질문이 있어요 (사실 7번도요)

0

259

1

문제 5번답이 잘못된 것 같습니다!

0

327

1

안녕하세요. 딕셔너리 질문드립니다.

0

356

1

pika_age = poketmon_age

0

239

0

split 관련 질문 있습니다 ㅎ

0

402

1

zip 질문

0

289

1

강의교자료 링크가 잘못되었습니다.

0

330

1