inflearn logo
강의

講義

知識共有

Pythonの基礎から実務までpart.1

繰り返し扉(実習-2)

마지막으로 더해지는 값이 63이 맞는거 아닌가요?

199

alstjr1072163

投稿した質問数 4

0

sum = 0

for a in range(1, 100):
sum += a
if sum > 2000:
print(a, sum)
break
이렇게 썼는데 63으로 나오네요 ㅠ

python

回答 2

0

a1ix01

for i in range(101):
if hap>=2000:
print("마지막으로 더해지는 i의 값은 ", i-1)
break
hap += i
print("1에서부터 누적값은 %s" %hap)



(총합이 2000을 넘을 때의 값 = 2016 / 마지막으로 더한 값 = 63)

위의 코드(수업 중 내용)에서는 i가 for i in range(101)을 넘어오면서 값이 1 추가됩니다.
만약 print("마지막으로 더해지는 i의 값은 ", i) 라고 작성하면 실제로 원하는 값은 63이지만 64로 출력됩니다.
그래서 i-1로 고친 것입니다.

아래 코드는 질문하신 분께서 작성한 코드입니다.
여기서 마지막 sum+=a를 실행했을 때 총합은 2016, a의 값은 63입니다.
합이 2000을 넘는지 판단하는 다음 코드에서, 합이 2000을 넘은 2016이 되었기 때문에 아까 2016, 63을 그대로 반환합니다.

위의 코드에서는 2000을 넘는 값(63)을 달성한 후에 i를 한 번 더 증가시켜 64가 되고, 아래에서는 63 그대로 끝납니다.
코드가 조금 달라서 착오가 있으셨던 듯 합니다.
sum = 0

for a in range(1,100): #1부터 99까지
sum += a
if sum > 2000:
print(a, sum) # 2000이 넘는 시점: a=63, sum=2016
break

0

sinyoung408

for x in range(1, 101):
if sum >= 2000:
break
print("현재 x의 값은 : ", x)
sum += x
print("누적합 : ", sum)

가현님 한 가지 여쭤보고자 하는데요, 그러면 이
코딩도 x가 63일때 더하고 다시 for이 반복되어 x가
64일때에 if문이 실행이 된다면 if문을 탈출하더라도
x는 64인 상황에서 print문을 만났는데 왜 x는
63일 때의 값으로 출력되는걸까요?

0

tjsanrl2215

2022.02.04에 올리신 코드에서는 print함수가 if 문 밖에 있기 때문에 x가 63일 때까지만 출력하고 

x가 64일 때에는 for문을 빠져나와서 print함수가 실행되지 않는 것 아닌가요??

0

HJ C

 sum += a 이부분 순서가 수업 코드랑 달라서 그런 것 같습니다!

제생각엔 63이 맞는것같은데 .. ㅠ 선생님 답변 기다려봐야할 것 같습니다

혹시 이 강사분 c언어 강의는 없나요?

0

52

1

변수가 포함된 문장을 쓸 때의 공백 문제

0

576

1

while.py

0

296

0

강의 질문

0

279

1

파이썬 인터프리터

0

399

0

인터프리터 설치가 안되요

0

261

0

파이썬 인터프리터 설치

0

437

0

ex05 질문이요

0

252

1

5.0은 왜 안되나요?

0

404

1

마지막 숫자 입력하는 문제

0

328

1

조건문 실습2 ex05에서

0

297

1

마지막 예제 그냥 for i in range(5,0,-1) 해도 되지 않나요?

0

268

1

함수의 사용방법이 궁금합니다

0

319

1

"끝"을 입력하면 에러가 발생하여 질문드립니다.

0

392

3

파이참 turtle_graphic 실행 오류

0

538

0

파이참에서 pi가 없어요

0

194

0

완강하신분들께 여쭙니다! 본 강의 추천하시나요?

0

469

2

설치하고 cmd에서 파이선이라고 치니까 마이크로소프트 스토어에 다운로드 창이 나와버립니다

1

382

2

10강 변수와 계산(실습-2) ex06 질문

0

288

1

실행이 안돼요.

0

276

1

31분 영상에서 질문있습니다

0

233

1

ex08에서

0

201

1

터틀이 안불러와줘요

0

266

1

질문 드립니다

0

395

5