while 루프가 작동하지만 내 값을 반환 할 때 if 문이 아닌 이유는 무엇입니까?

조슈아 슈나이더

나는 새로운 파이썬 코더이며 아래 코드가 while 루프에서 작동하지만 if 문이 아닌 이유를 이해할 수없는 것 같습니다.

CODE1

def getAltitude():

    altitude_prompt = int(input(("Enter the initial altitude(in meters): "))
    if 1 > altitude_prompt or altitude_prompt > 9999:
        print("Altitude must be present between 1 and 9999, inclusive, please try again")
        getAltitude()
    return (altitude_prompt)

코드 2

def getAltitude():

    while True:
        altitude_prompt = float(input("Enter the initial altitude(in meters): "))
        if 1 > altitude_prompt or altitude_prompt > 9999:
            print("Altitude must be present between 1 and 9999, inclusive, please try again")
        else:
                break       

    return(altitude_prompt)         

보시다시피이 두 코드는 코드 1을 제외하고는 매우 유사합니다. 음수를 입력하면 프롬프트가 다시 시작되지만 음수 만 저장됩니다. 처음에 -3을 넣으면 -3이 저장됩니다. 양수 5를 입력하여 수정하더라도 함수가 다시 프롬프트되면 함수는 여전히 -3을 반환합니다.

그러나 두 번째 코드는 완전히 잘 작동합니다. 음수 -3을 입력하면 프롬프트를 리디렉션하고 양수 5를 입력 할 때까지 코드 1과 같이 -3이 아닌 5를 저장합니다.

왜 이런 일이 발생하는지 궁금합니다. 함수 내부에서 함수를 호출하기 때문입니까?

blhsing

대신 재귀 호출의 반환 값을 반환해야합니다.

def getAltitude():
    altitude_prompt = int(input(("Enter the initial altitude(in meters): ")))
    if 1 > altitude_prompt or altitude_prompt > 9999:
        print("Altitude must be present between 1 and 9999, inclusive, please try again")
        altitude_prompt = getAltitude()
    return (altitude_prompt)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

내 while 루프가 랜덤이어야 할 때 동일한 문을 반복하는 이유는 무엇입니까?

분류에서Dev

함수를 재귀 적으로 호출 할 때 함수가 새 값이 아닌 이전 값을 반환하는 이유는 무엇입니까?

분류에서Dev

함수에서 반환 된 변수를 평가할 때 내 "while"루프가 끝나지 않는 이유는 무엇입니까?

분류에서Dev

fscanf가 1이 아닌 값을 반환 할 때 루프의 조건문이 변수 집합에 대해 검사하면 무한 루프가 발생합니다.

분류에서Dev

로드 문자열을 사용할 때 NullPointerException이 발생하지만 일반 문자열이 아닌 이유는 무엇입니까? (가공)

분류에서Dev

내 양식의 인스턴스 변수가 해당 문의 할당 부분이 아닌데 nil을 반환하는 이유는 무엇입니까?

분류에서Dev

내 양식의 인스턴스 변수가 해당 문의 할당 부분이 아닌데 nil을 반환하는 이유는 무엇입니까?

분류에서Dev

값을 인쇄 할 때 루프가 작동하지만 목록에 추가 할 때는 작동하지 않는 이유는 무엇입니까?

분류에서Dev

Python : while 루프 내에서 호출 된 함수가 단독으로 호출 될 때와 다른 것을 반환하는 이유는 무엇입니까?

분류에서Dev

이 Mongo 쿼리는 루프 내부에서 아무 것도 반환하지 않지만 루프 본문은 작동하는 이유는 무엇입니까?

분류에서Dev

nullable이 아닌 값을 null로 설정할 때 TypeScript가 경고하지 않는 이유는 무엇입니까?

분류에서Dev

while 루프 내부에서 변수의 데이터 유형을 선언하지만 for 루프 내부가 아닌 것은 무엇입니까?

분류에서Dev

서버로 보내려고 할 때 내 게터가 null을 반환하는 이유는 무엇입니까?

분류에서Dev

while 루프가 오탐을 반환하는 이유는 무엇입니까?

분류에서Dev

append.Child가 Div에서 사용할 때 null을 반환하지만 본문에 넣으면 작동하는 이유는 무엇입니까?

분류에서Dev

내 Python 루프가 NaN을 반환하는 이유는 무엇입니까?

분류에서Dev

데이터 프레임을 통해 구문 분석 할 때 오류가 발생하지만 단일 행이 아닌 이유는 무엇입니까?

분류에서Dev

while 루프 내부의 if 조건이 거짓으로 판명 될 때 내 함수가 마지막 문을 출력하지 않는 이유는 무엇입니까?

분류에서Dev

내 While 루프가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 DataTable의 버튼이 클릭 할 때마다 전달되어야하는 ID가 아닌 0을 전달하는 이유는 무엇입니까?

분류에서Dev

긴 형식이 작동 할 때이 속기 if 문이 0을 반환하는 이유는 무엇입니까?

분류에서Dev

명령을 파이프 할 때 "slabtop -o"가 처음 23 줄만 반환하는 이유는 무엇입니까?

분류에서Dev

개행 문자를 사용할 때 scanf while 루프가 종료되지 않는 이유는 무엇입니까?

분류에서Dev

내 js 함수가 반환 된 값이 아닌 자체를 반환하는 이유는 무엇입니까? [모난]

분류에서Dev

내가 0 미만일 때 while 루프가 종료되지 않는 이유는 무엇입니까?

분류에서Dev

Android에서 동적으로 버튼을 만들려고 할 때 내 응용 프로그램이 작동하지 않는 이유는 무엇입니까?

분류에서Dev

`for glyph in font.iter ( 'glyph')`를 실행할 때 etree가 내 SVG에서 아무것도 반환하지 않는 이유는 무엇입니까?

분류에서Dev

Scroll을 수행 할 때 onTouchEvent 내부의 smoothScrollTo가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

for 루프에서 k == 0 일 때 내 프로그램이 쓰레기 값을 반환하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    내 while 루프가 랜덤이어야 할 때 동일한 문을 반복하는 이유는 무엇입니까?

  2. 2

    함수를 재귀 적으로 호출 할 때 함수가 새 값이 아닌 이전 값을 반환하는 이유는 무엇입니까?

  3. 3

    함수에서 반환 된 변수를 평가할 때 내 "while"루프가 끝나지 않는 이유는 무엇입니까?

  4. 4

    fscanf가 1이 아닌 값을 반환 할 때 루프의 조건문이 변수 집합에 대해 검사하면 무한 루프가 발생합니다.

  5. 5

    로드 문자열을 사용할 때 NullPointerException이 발생하지만 일반 문자열이 아닌 이유는 무엇입니까? (가공)

  6. 6

    내 양식의 인스턴스 변수가 해당 문의 할당 부분이 아닌데 nil을 반환하는 이유는 무엇입니까?

  7. 7

    내 양식의 인스턴스 변수가 해당 문의 할당 부분이 아닌데 nil을 반환하는 이유는 무엇입니까?

  8. 8

    값을 인쇄 할 때 루프가 작동하지만 목록에 추가 할 때는 작동하지 않는 이유는 무엇입니까?

  9. 9

    Python : while 루프 내에서 호출 된 함수가 단독으로 호출 될 때와 다른 것을 반환하는 이유는 무엇입니까?

  10. 10

    이 Mongo 쿼리는 루프 내부에서 아무 것도 반환하지 않지만 루프 본문은 작동하는 이유는 무엇입니까?

  11. 11

    nullable이 아닌 값을 null로 설정할 때 TypeScript가 경고하지 않는 이유는 무엇입니까?

  12. 12

    while 루프 내부에서 변수의 데이터 유형을 선언하지만 for 루프 내부가 아닌 것은 무엇입니까?

  13. 13

    서버로 보내려고 할 때 내 게터가 null을 반환하는 이유는 무엇입니까?

  14. 14

    while 루프가 오탐을 반환하는 이유는 무엇입니까?

  15. 15

    append.Child가 Div에서 사용할 때 null을 반환하지만 본문에 넣으면 작동하는 이유는 무엇입니까?

  16. 16

    내 Python 루프가 NaN을 반환하는 이유는 무엇입니까?

  17. 17

    데이터 프레임을 통해 구문 분석 할 때 오류가 발생하지만 단일 행이 아닌 이유는 무엇입니까?

  18. 18

    while 루프 내부의 if 조건이 거짓으로 판명 될 때 내 함수가 마지막 문을 출력하지 않는 이유는 무엇입니까?

  19. 19

    내 While 루프가 작동하지 않는 이유는 무엇입니까?

  20. 20

    내 DataTable의 버튼이 클릭 할 때마다 전달되어야하는 ID가 아닌 0을 전달하는 이유는 무엇입니까?

  21. 21

    긴 형식이 작동 할 때이 속기 if 문이 0을 반환하는 이유는 무엇입니까?

  22. 22

    명령을 파이프 할 때 "slabtop -o"가 처음 23 줄만 반환하는 이유는 무엇입니까?

  23. 23

    개행 문자를 사용할 때 scanf while 루프가 종료되지 않는 이유는 무엇입니까?

  24. 24

    내 js 함수가 반환 된 값이 아닌 자체를 반환하는 이유는 무엇입니까? [모난]

  25. 25

    내가 0 미만일 때 while 루프가 종료되지 않는 이유는 무엇입니까?

  26. 26

    Android에서 동적으로 버튼을 만들려고 할 때 내 응용 프로그램이 작동하지 않는 이유는 무엇입니까?

  27. 27

    `for glyph in font.iter ( 'glyph')`를 실행할 때 etree가 내 SVG에서 아무것도 반환하지 않는 이유는 무엇입니까?

  28. 28

    Scroll을 수행 할 때 onTouchEvent 내부의 smoothScrollTo가 작동하지 않는 이유는 무엇입니까?

  29. 29

    for 루프에서 k == 0 일 때 내 프로그램이 쓰레기 값을 반환하는 이유는 무엇입니까?

뜨겁다태그

보관