728x90
반응형
SMALL

1. 제어문

  • 프로그램의 흐름을 제어하는 문장
    • 조건문 (if)
    • 반복문 (while, for)
 

2. 조건문

 

 

2-1 비교 연산자

  • '<' 오른쪽이 크다
  • '>' 왼쪽이 크다
  • '<=' 오른쪽이 왼쪽보다 크거나 같다
  • '>=' 왼쪽이 오른쪽보다 크거나 같다
  • '==' 좌우가 같다
  • '!=' 다르다
  • 항상 결과는 bool형으로 반환
 
print(10 > 5)
print(10 < 5)
print(10 >= 5)
print(10 <= 5)
print(10 == 5)
print(10 != 5)
 
True
False
True
False
False
True
 
 

2-2 if문

if 조건식(결과가 True or False가 나오는 문장):
    조건식이 True인경우 실행할 문장
    ...
 
bool1 = True

if bool1:
  print('결과는 참입니다')
print('프로그램을 종료합니다')
 
결과는 참입니다
프로그램을 종료합니다
 
 

 
bool2 = False

if bool2:
  print('결과는 참입니다')
print('프로그램을 종료합니다')
 
프로그램을 종료합니다
 
 
age = int(input('나이를 입력하시오: '))

if age > 19:
    print("성인입니다.")

print('입력한 나이:', age)
 
나이를 입력하시오: 5
입력한 나이: 5
 
 

 
age2 = int(input('나이를 입력하시오: '))

if age2 > 19:
    print("성인입니다.")
    print('넷플릭스 성인영화를 감상할 수 있습니다.')
print('입력한 나이:', age2)
 
나이를 입력하시오: 20
성인입니다.
넷플릭스 성인영화를 감상할 수 있습니다.
입력한 나이: 20
 
 

 
age3 = int(input('나이를 입력하시오: '))

if age3 > 19: print("성인입니다.") 
    # ':' 이 그다음문장 한줄만 영역으로 판단해줘서
    #     옆으로 작성 가능하다.

print('입력한 나이:', age3)
 
나이를 입력하시오: 15
입력한 나이: 15
 
 

2-3. if ~ else문

if 조건식(결과가 True or False가 나오는 문장):
    조건식이 True인경우 실행할 문장
    ...
else:
    조건식이 False인 경우 실행할 문장
    ...
 

 
age = int(input('나이를 입력하시오: '))

if age > 19:
    print("성인입니다.")
else:
    print("미성년입니다.")

print('입력한 나이:', age)
 
나이를 입력하시오: 10
미성년입니다.
입력한 나이: 10
 
 

 
age = int(input('나이를 입력하시오: '))

if age > 19:
    print("성인입니다.")
    print("넷플릭스 성인영화를 감상할 수 있습니다.")
else:
    print("미성년입니다.")
    print("디즈니를 보세요.")

print('입력한 나이:', age)
 
나이를 입력하시오: 20
성인입니다.
넷플릭스 성인영화를 감상할 수 있습니다.
입력한 나이: 20
 
 

2-4. if ~elif ~else 문

if 조건식1 (결과가 True or False가 나오는 문장):
    조건식1이 True인경우 실행할 문장
    ...

elif 조건식2:
    조건식1이 False, 조건식2가 True 경우 조건식2를 실행할 문장:
    ...

elif 조건식3:
    조건식1,2가 False, 조건식3가 True 경우 조건식2를 실행할 문장:

else:
    모든 조건식이 False인 경우 실행할 문장
    ...

* else는 필수가 아니다.
 

 
 
age = int(input('나이를 입력하시오: '))

if age > 19: # 조건문이 False일경우 그 아래의 조건문을 실행
    print("성인입니다.")

elif age > 14:
    print('청소년입니다.')

elif age > 6:
    print('어린이입니다.')

elif age > 0:
    print('유아입니다.')

elif age == 0:
    age2 = int(input('몇개월 인가요?: '))
    print('귀하는', age2, '개월 입니다.' )

    if age2 > 11: #조건문 안의 조건문도 가능
        print('1살로 다시 입력해주세요.')
    
    elif age2 > 5:
        print('어부바 하세요.')

    else:
        print('안고 입장해주세요.')
    print('더 자라고 오세요')
    
else:
    print("입력을 확인하시오.")

print('입력한 나이:', age)
 
나이를 입력하시오: 0
몇개월 인가요?: 4
귀하는 4 개월 입니다.
안고 입장해주세요.
더 자라고 오세요
입력한 나이: 0
 
 

2-5. 산술 연산자

  • +
  • -
  • '*'
  • /
  • %
  • //
  • '**'
 

 
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 % 3)
print(10 // 3)
print(10 ** 3)
 
13
7
30
3.3333333333333335
1
3
1000
 
 

2-6. 삼항 연산자 (if문인데 한줄짜리 문법)(elif가 없다)

'결과가 True일 때 실행할 문장' 'if' '조건식' 'else' '결과가 False일때 실행할 문장'
 

 
# 입력받은 숫자가 짝수인지 홀수인지
num = int(input('숫자를 입력하세요: '))

if num % 2 == 0:
    print('짝수')
  
else:
    print('홀수')
 
숫자를 입력하세요: 11
홀수
 
 

 
 
# 삼항 연산자
# 영어 문법이랑 비슷한 구조같다
# "프린트해라 짝수를 나머지가 0이라면
#  아니면 홀수를 프린트 해라"
num = int(input('숫자를 입력하세요: '))

print('짝수') if num % 2 == 0 else print('홀수')
 
숫자를 입력하세요: 13
홀수
 
 

문제.

  • 국어점수, 영어점수, 수학점수를 입력받아 총점, 평균, 학점을 구하는 프로그램을 작성해보자.
  • 단, 학점은 평균 기준이며 90점 이상은 A, 80점 이상은 B, 70점이상은 C, 60점 이상은 D, 나머지는 F로 함
 

 
kor = int(input('국어점수를 입력하시오: '))
eng = int(input('영어점수를 입력하시오: '))
math = int(input('수학점수를 입력하시오: '))
avr = (kor + eng + math) / 3
print('당신의 총점은 %d 입니다.' % (kor + eng + math))
print('당신의 평균은 %3.2f 입니다.' % avr )

if avr >= 90:
    print('당신의 학점은 A입니다.')
elif avr >= 80:
    print('당신의 학점은 B입니다.')
elif avr >= 70:
    print('당신의 학점은 C입니다.')
elif avr >= 60:5
    print('당신의 학점은 D입니다.')
else:
    print("당신은 F입니다.")
 
국어점수를 입력하시오: 55
영어점수를 입력하시오: 55
수학점수를 입력하시오: 5
당신의 총점은 115 입니다.
당신의 평균은 38.33 입니다.
당신은 F입니다.
 
 

 
# 선생님 답안지
kor, eng, math = input("국어, 영어, 수학 점수를 차례로 입력하시오: ").split(" ")
tot = int(kor) + int(eng) + int(math)
avg = tot / 3

hak = 'F학점'
if avr >= 90:
    print('당신의 학점은 A입니다.')
elif avr >= 80:
    print('당신의 학점은 B입니다.')
elif avr >= 70:
    print('당신의 학점은 C입니다.')
elif avr >= 60:
    print('당신의 학점은 D입니다.')

print('총점: ', tot)
print('평균: ', avr)
print('학점: ', hak)
 
국어, 영어, 수학 점수를 차례로 입력하시오: 15 75 75
당신의 학점은 A입니다.
총점:  165
평균:  100.0
학점:  F학점
 
 

 
 
# 삼항 연산자
kor, eng, math = input("국어, 영어, 수학 점수를 차례로 입력하시오: ").split(" ")
sum = int(kor) + int(eng) + int(math)
avr = sum / 3
print(print("당신의 학점은 A") if sum / 3 >= 90 else print("당신의 학점은 B") if sum / 3 >= 80 else print("당신의 학점은 C") if sum / 3 >= 70 else print("당신의 학점은 D") if sum / 3 >= 60 else print("당신은 낙제 입니다."), "당신의 총점은 %d 점 이고 평균은 %3.2f점 입니다." %(sum, avr))
 
국어, 영어, 수학 점수를 차례로 입력하시오: 15 15 15
당신은 낙제 입니다.
None 당신의 총점은 45 점 이고 평균은 15.00점 입니다.
 
 

 
# 삼항 연산자
kor, eng, math = input("국어, 영어, 수학 점수를 차례로 입력하시오: ").split(" ") 
print(print("당신의 학점은 A") if (int(kor) + int(eng) + int(math)) / 3 >= 90 else print("당신의 학점은 B") if (int(kor) + int(eng) + int(math)) / 3 >= 80 else print("당신의 학점은 C") if (int(kor) + int(eng) + int(math)) / 3 >= 70 else print("당신의 학점은 D") if (int(kor) + int(eng) + int(math)) / 3 >= 60 else print("당신은 낙제 입니다."), "당신의 총점은 %d 점 이고 평균은 %3.2f점 입니다." %((int(kor) + int(eng) + int(math)),(int(kor) + int(eng) + int(math))/3))
 
국어, 영어, 수학 점수를 차례로 입력하시오: 100 100 100
당신의 학점은 A
None 당신의 총점은 300 점 이고 평균은 100.00점 입니다.
 
 

문제 2.

  • 숫자를 입력받아 2의 배수인지, 3의 배수인지 아니면 2,3의 배수가 모두 아닌지를 판별하는 프로그램을 작성해보자
 

 
num = int(input("숫자를 입력하시오: "))

if num % 2 == 0:
    print("2의 배수입니다")

elif num % 3 == 0:
    print("3의 배수입니다")

else:
    print("2,3의 배수가 모두 아닙니다")
 
숫자를 입력하시오: 69
3의 배수입니다
 
 

 
# 선생님 답안
num = int( input('숫자를 입력하세요: '))

if num % 2 == 0:
    if num % 3 == 0:
        print(f'{num}은(는) 2와 3의 배수')
    else:
        print(f'{num}은(는) 2의 배수')
elif num %3 == 0:
    print(f'{num}은(는) 3의 배수')
else:
    print(f'{num}은(는) 2와 3의 배수가 아님')
 
숫자를 입력하세요: 7
7은(는) 2와 3의 배수가 아님
 
 
# 삼항연산자
num = int(input("숫자를 입력하시오: "))
print("2와3의 배수입니다") if num % 6 == 0 else print("2의 배수입니다") if num % 2 == 0 else print("3의 배수입니다") if num % 3 == 0 else print("2,3의 배수가 모두 아닙니다")
 
숫자를 입력하시오: 24
2와3의 배수입니다
 
 
# 삼항연산자 선생님답안
num = int(input('숫자를 입력하세요: '))

print(f'{num}은(는) 2의 배수') if num % 2 == 0 else print(f'{num}은(는) 3의 배수') if num % 3 == 0 else print(f'{num}은(는) 2,3의 배수가 아님')
 
숫자를 입력하세요: 7
7은(는) 2,3의 배수가 아님
 
 

2-7. 논리연산자(AND)

식(T) AND 식(T) = True
  • 양쪽 두식의 값이 True인 경우 결과가 True가 되는 연산자
AB결과
True True True
True False False
False True False
False False False

ex) 정보처리 기사 자격을 취득하기 위해서는 모든 과목을 40점 이상, 평균이 60점 이상이 되어야 함

 
# 로그인 프로그램 만들기
# 아이디: admin, 비밀번호: 1234

userid = input('아이디를 입력하세요: ')
userpw = input('비밀번호를 입력하세요: ')

if userid == 'admin' and userpw == '1234':
    print('로그인 되었습니다.')
else:
    print('아이디 또는 비밀번호를 확인하세요.')

 
아이디를 입력하세요: admin
비밀번호를 입력하세요: 1234
로그인 되었습니다.
 
 

2-8. 논리 연산자(OR)

  • 양쪽의 두 식의 값이 하나라도 True인 경우 결과가 True가 되는 연산자
AB결과
True True True
True False True
False True True
False False False

엄빠 모셔와!

 
# 주민등록 번호에 의한 성별을 판별하는 프로그램 만들기
# 0010113068518
num = input('주민번호를 -없이 입력하세요: ')

if num[6] == '1' or num[6] == '3' or num[6] == '5' or num[6] == '9':
    print("남자")
else:
    print("여자")

 
주민번호를 -없이 입력하세요: 0010113068518
남자
 
 

2-9. 논리 연산자(NOT)

  • bool의 값을 반대로 변경해주는 연산자
 

 
bool1 = True

if bool1:
    print('결과는 참입니다.')
else:
    print('결과는 거짓입니다.')
 
결과는 참입니다.
 
 

 
bool1 = True

if not bool1:
    print('결과는 참입니다.')
else:
    print('결과는 거짓입니다.')
 
결과는 거짓입니다.
 
 

과제

아래와 같이 출력되는 이유를 알아보자

 

[165]
 
0초
3.3333333333333335
 
 
False
 
 

실수가 메모리에 저장될때 메모리에 32칸을 차지한다고 하면 그중 정수부분과 실수부분을 나누어 앞과 뒤의 칸에 2진법으로 저장을 하게 되는데 0.1단위 소숫점을 2진법으로 표현하면 무한히 길어지게 되어 일정부분을 컷하고 저장을하게 된다. 그 컷한만큼의 오차율이 있기때문에 0.1+1.1=1.2 가 False 값으로 나오게 되고 10/3=3.333...5 로 표기 된다.

# 앱실론(실제 가격의 편차가 나는것)

728x90
반응형
LIST

+ Recent posts