Python 3에서 조건문을 작성하는 방법
소개
조건문은 모든 프로그래밍 언어의 일부입니다. 조건문을 사용하면 당시 프로그램의 조건에 따라 때때로 실행되고 다른 경우에는 실행되지 않는 코드를 가질 수 있습니다.
각 줄을 순서대로 실행하면서 위에서 아래로 이동하면서 프로그램의 각 명령문을 완전히 실행할 때 프로그램이 특정 조건을 평가하도록 요청하지 않습니다. 조건문을 사용하여 프로그램은 특정 조건이 충족되는지 여부를 확인한 다음 다음에 수행할 작업을 지시할 수 있습니다.
조건문을 사용하는 몇 가지 예를 살펴보겠습니다.
- 학생이 시험에서 65% 이상을 받으면 성적이 합격했다고 보고합니다. 그렇지 않은 경우 그녀의 성적이 낙제했다고 보고하십시오.
- 계정에 돈이 있으면 이자를 계산합니다. 그렇지 않으면 벌금을 부과합니다
- 오렌지 10개 이상을 구매하면 5% 할인을 계산합니다. 그들이 더 적게 사면 안 됩니다
조건을 평가하고 해당 조건이 충족되는지 여부에 따라 실행할 코드를 지정하여 조건부 코드를 작성하고 있습니다.
이 자습서에서는 Python 프로그래밍 언어로 조건문을 작성하는 과정을 안내합니다.
전제 조건
컴퓨터나 서버에 Python 3가 설치되어 있고 프로그래밍 환경이 설정되어 있어야 합니다. 프로그래밍 환경이 설정되지 않은 경우 운영 체제(Ubuntu, CentOS, Debian 등)에 적합한 서버의 프로그래밍 환경에 대한 설치 및 설정 가이드를 참조할 수 있습니다.
if 문
if
문으로 시작하여 문이 참인지 거짓인지 평가하고 문이 참인 경우에만 코드를 실행합니다.
정보: 이 자습서의 예제 코드를 따라하려면 python3
명령을 실행하여 로컬 시스템에서 Python 대화형 셸을 엽니다. 그런 다음 >>>
프롬프트 뒤에 추가하여 예제를 복사, 붙여넣기 또는 편집할 수 있습니다.
일반 텍스트 편집기에서 파일을 열고 다음 코드를 작성합니다.
grade = 70
if grade >= 65:
print("Passing grade")
이 코드에는 grade
변수가 있고 70
의 정수 값을 제공합니다. 그런 다음 if
문을 사용하여 변수 등급이 >=
에서 65
보다 크거나 같은지 여부를 평가합니다. 이 조건을 충족하면 합격 등급
문자열을 출력하도록 프로그램에 지시합니다.
프로그램을 grade.py
로 저장하고 터미널 창에서 python grade.py
명령을 사용하여 로컬 프로그래밍 환경에서 실행합니다.
이 경우 70점은 65점 이상이라는 조건을 충족하므로 프로그램을 실행하면 다음과 같은 결과가 표시됩니다.
OutputPassing grade
이제 grade
변수의 값을 60
으로 변경하여 이 프로그램의 결과를 변경해 보겠습니다.
grade = 60
if grade >= 65:
print("Passing grade")
이 코드를 저장하고 실행할 때 조건이 충족되지 않았고 다른 명령문을 실행하도록 프로그램에 지시하지 않았기 때문에 출력을 받지 못할 것입니다.
예를 하나 더 들자면 은행 잔고가 0 미만인지 계산해 보겠습니다. account.py
라는 파일을 만들고 다음 프로그램을 작성해 보겠습니다.
balance = -5
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
python account.py
로 프로그램을 실행하면 다음과 같은 결과가 나타납니다.
OutputBalance is below 0, add funds now or you will be charged a penalty.
프로그램에서 balance
변수를 0보다 작은 -5
값으로 초기화했습니다. 잔액이 if
문(balance < 0
), 코드를 저장하고 실행하면 문자열 출력을 받게 됩니다. 다시 말하지만 잔액을 0 또는 양수로 변경하면 출력이 수신되지 않습니다.
다른 진술
if
문이 거짓으로 평가되는 경우에도 프로그램이 무언가를 수행하기를 원할 것입니다. 우리의 성적 예시에서는 성적이 합격인지 불합격인지 출력을 원할 것입니다.
이를 위해 다음과 같이 구성된 위의 등급 조건에 else
문을 추가합니다.
grade = 60
if grade >= 65:
print("Passing grade")
else:
print("Failing grade")
위의 등급 변수는 60
의 값을 가지므로 if
문은 거짓으로 평가되므로 프로그램은 합격 등급
을 출력하지 않습니다. 뒤에 나오는 else
문은 프로그램이 어쨌든 무언가를 하도록 지시합니다.
프로그램을 저장하고 실행하면 다음과 같은 결과가 나타납니다.
OutputFailing grade
그런 다음 등급 값을 65
이상으로 지정하도록 프로그램을 다시 작성하면 합격 등급
이 대신 출력됩니다.
은행 계좌 예제에 else
문을 추가하기 위해 코드를 다음과 같이 다시 작성합니다.
balance = 522
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
else:
print("Your balance is 0 or above.")
OutputYour balance is 0 or above.
여기에서 balance
변수 값을 양수로 변경하여 else
문이 인쇄되도록 했습니다. 첫 번째 if
문을 인쇄하려면 값을 음수로 다시 쓸 수 있습니다.
if
문과 else
문을 결합하면 두 부분으로 구성된 조건문을 구성하여 if 조건 여부에 관계없이 특정 코드를 실행하도록 컴퓨터에 지시합니다.
조건이 충족되었습니다.
다른 if 문
지금까지 각 if
문이 참 또는 거짓으로 평가되는 조건문에 대한 부울 옵션을 제시했습니다. 많은 경우에 우리는 두 개 이상의 가능한 결과를 평가하는 프로그램을 원할 것입니다. 이를 위해 Python에서 elif
로 작성된 else if 문을 사용합니다. elif
또는 else if 문은 if
문과 유사하며 다른 조건을 평가합니다.
은행 계좌 프로그램에서 세 가지 상황에 대해 세 가지 개별 출력을 원할 수 있습니다.
- 잔액이 0 미만입니다
- 잔고는 0입니다
- 잔액이 0 이상입니다
elif
문은 다음과 같이 if
문과 else
문 사이에 배치됩니다.
. . .
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
elif balance == 0:
print("Balance is equal to 0, add funds soon.")
else:
print("Your balance is 0 or above.")
이제 프로그램을 실행하면 세 가지 가능한 출력이 발생할 수 있습니다.
- 변수
balance
가0
과 같으면elif
문에서 출력을 수신합니다(Balance는 0과 같습니다). , 곧 자금을 추가하십시오.
) - 변수
balance
가 양수로 설정된 경우else
문(잔고가 0 이상입니다.
). - 변수
balance
가 음수로 설정된 경우 출력은if
문의 문자열이 됩니다(잔고가 0 미만입니다. 지금 자금을 추가하십시오. 그렇지 않으면 페널티가 부과됩니다
).
하지만 세 가지 이상의 가능성을 갖고 싶다면 어떻게 해야 할까요? 코드에 하나 이상의 elif
문을 작성하여 이를 수행할 수 있습니다.
grade.py
프로그램에서 숫자 등급 범위에 해당하는 몇 개의 문자 등급이 있도록 코드를 다시 작성해 보겠습니다.
- 90점 이상은 A 등급에 해당
- 80-89는 B 등급에 해당
- 70-79는 C 등급에 해당
- 65-69는 D 등급에 해당
- 64 이하는 F 등급에 해당
이 코드를 실행하려면 하나의 if
문, 세 개의 elif
문 및 모든 실패 사례를 처리할 else
문이 필요합니다.
각 문자 등급을 출력하는 문자열을 갖도록 위 예제의 코드를 다시 작성해 보겠습니다. else
문을 동일하게 유지할 수 있습니다.
. . .
if grade >= 90:
print("A grade")
elif grade >=80:
print("B grade")
elif grade >=70:
print("C grade")
elif grade >= 65:
print("D grade")
else:
print("Failing grade")
elif
문은 순서대로 평가되므로 문을 매우 기본적으로 유지할 수 있습니다. 이 프로그램은 다음 단계를 완료합니다.
- 등급이 90보다 크면 프로그램은
A 등급
을 인쇄하고 등급이 90 미만이면 프로그램은 다음 문장으로 계속됩니다…\n - 등급이 80보다 크거나 같으면 프로그램은
B 등급
을 인쇄하고 등급이 79 이하이면 프로그램은 다음 문장으로 계속됩니다…\n - 등급이 70보다 크거나 같으면 프로그램은
C 등급
을 인쇄하고 등급이 69 이하이면 프로그램은 다음 문장으로 계속됩니다…\n - 등급이 65보다 크거나 같으면 프로그램은
D 등급
을 인쇄하고 등급이 64 이하이면 프로그램은 다음 문장으로 계속됩니다…\n - 프로그램은 위의 모든 조건이 충족되지 않았기 때문에
낙제 등급
을 인쇄합니다.\n
중첩된 If 문
if
, elif
및 else
문에 익숙해지면 중첩된 조건문으로 이동할 수 있습니다. 첫 번째 조건이 참으로 실행되는 경우 두 번째 조건을 확인하려는 상황에 대해 중첩된 if
문을 사용할 수 있습니다. 이를 위해 다른 if-else 문 안에 if-else 문을 가질 수 있습니다. 중첩된 if
문의 구문을 살펴보겠습니다.
if statement1: #outer if statement
print("true")
if nested_statement: #nested if statement
print("yes")
else: #nested else statement
print("no")
else: #outer else statement
print("false")
이 코드에서 몇 가지 가능한 결과가 나올 수 있습니다.
statement1
이 true로 평가되면 프로그램은nested_statement
도 true로 평가되는지 여부를 평가합니다. 두 경우 모두 참이면 출력은 다음과 같습니다.
Outputtrue
yes
- 그러나
statement1
은 true로 평가되지만nested_statement
는 false로 평가되는 경우 출력은 다음과 같습니다.
Outputtrue
no
- 그리고
statement1
이 false로 평가되면 중첩된 if-else 문이 실행되지 않으므로else
문이 단독으로 실행되고 출력은 다음과 같습니다. 리>
Outputfalse
코드 전체에 중첩된 여러 if
문을 가질 수도 있습니다.
if statement1: #outer if
print("hello world")
if nested_statement1: #first nested if
print("yes")
elif nested_statement2: #first nested elif
print("maybe")
else: #first nested else
print("no")
elif statement2: #outer elif
print("hello galaxy")
if nested_statement3: #second nested if
print("yes")
elif nested_statement4: #second nested elif
print("maybe")
else: #second nested else
print("no")
else: #outer else
statement("hello universe")
위의 코드에는 elif
문 외에도 각 if
문 안에 중첩된 if
문이 있습니다. 이렇게 하면 각 조건 내에서 더 많은 옵션을 사용할 수 있습니다.
grade.py
프로그램으로 중첩된 if
문의 예를 살펴보겠습니다. 먼저 성적이 통과하는지(65% 이상) 확인한 다음 숫자 등급이 어떤 문자 등급과 동등해야 하는지 평가할 수 있습니다. 그러나 성적이 합격하지 못한 경우 문자 성적을 검토할 필요가 없으며 대신 성적이 낙제되었음을 프로그램에서 보고하도록 할 수 있습니다. 중첩된 if
문이 있는 수정된 코드는 다음과 같습니다.
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
print("A")
elif grade >=80:
print("B")
elif grade >=70:
print("C")
elif grade >= 65:
print("D")
else:
print("Failing grade")
변수 grade
를 정수 값 92
로 설정하여 코드를 실행하면 첫 번째 조건이 충족되고 프로그램은 Passing grade of:<를 출력합니다. /코드>. 다음으로 등급이 90 이상인지 확인하고 이 조건도 만족하므로
A
를 출력합니다.
grade
변수를 60
으로 설정하여 코드를 실행하면 첫 번째 조건이 충족되지 않으므로 프로그램은 중첩된 if
를 건너뜁니다. 문으로 이동하고 낙제 등급
을 출력하는 프로그램과 함께 else
문으로 이동합니다.
물론 여기에 더 많은 옵션을 추가하고 중첩된 if 문의 두 번째 계층을 사용할 수 있습니다. 아마도 우리는 A+, A, A- 등급을 따로 평가하기를 원할 것입니다. 먼저 성적이 합격인지 확인한 다음 성적이 90 이상인지 확인한 다음 예를 들어 A+에 대해 성적이 96 이상인지 확인하면 됩니다.
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
if grade > 96:
print("A+")
elif grade > 93 and grade <= 96:
print("A")
elif grade >= 90:
print("A-")
. . .
위의 코드에서 grade
변수가 96
으로 설정된 경우 프로그램은 다음을 실행합니다.
- 성적이 65 이상인지 확인(true)
합격 등급:
을 출력하세요.\n- 등급이 90 이상인지 확인(true)
- 등급이 96 이상인지 확인(false)
- 성적이 93보다 크고 96보다 작거나 같은지 확인(참)
A
인쇄- 이러한 중첩된 조건문을 그대로 두고 나머지 코드로 계속 진행
따라서 96등급에 대한 프로그램의 출력은 다음과 같습니다.
OutputPassing grade of:
A
중첩된 if
문은 여러 특정 수준의 조건을 코드에 추가할 수 있는 기회를 제공할 수 있습니다.
결론
if
문과 같은 조건문을 사용하면 프로그램 실행을 더 잘 제어할 수 있습니다. 조건문은 특정 조건이 충족되는지 여부를 평가하도록 프로그램에 지시합니다. 조건이 충족되면 특정 코드를 실행하지만 충족되지 않으면 프로그램은 계속해서 다른 코드로 이동합니다.
조건문을 계속 연습하려면 다른 간단한 계산기 프로그램을 만드는 방법을 사용하여 조건문에 더 익숙해지십시오.