선미 파이썬 0321 8일차

azuremei
Azuremei (토론 | 기여) 사용자의 2018년 4월 5일 (목) 15:16 판 (판 1개를 가져왔습니다)

(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

노트

'''
    [조건문]
        조건문이란?
        -조건을 판단하여 상황ㅇ에 맞게 쳐리
        >다양한 상황에 대처한다.

        if문(만약...)
         -만약 조건에 만족하면 수행해라(만족=True)
         
         '만약~', '~하면'과 같이 해석되는 문장은 조건문이다
'''

print("=========조건문========")
print()
print("num=10")
num=10

if num > 20 :
    print("{}은(는) 20보다 큽니다".format(num))
    print("{} > 20".format(num))
print("if문 끝난 뒤~")
print("num=30")
num=30

if num > 20 :
    print("{}은(는) 20보다 큽니다".format(num))
    print("{} > 20".format(num))
print("if문 끝난 뒤~")


'''
[if문의 기본 구조]

if 조건식 :
    수행문
elif 조건식 :
    수행문
elif 조건식 :
    수행문
else 조건식 :
    수행문

1. 조건식
    -참(True)이나 거짓(False)의 결과가 나오는 식이 있어야 함. 끝에는 콜론(:)을 붙인다.
    >if문 같은 문법의 끝에 :이 있어야 하는 경우가 많다.
    :부터 수행문으로 간주한다.
2. 수행문
    -조건식이 만족할 때 수행하고 싶은 코드들
    >여러 줄 사용할 수 있다.
    -###수행문이 되려면 들여쓰기를 해줘야 한다.(
    >공백 네 칸 권장
    >수행문의 들여쓰기가 맞지 않으면 에러가 남
    >들여쓰기를 맞춰주면 수행문이 여러 줄이 되는 것이고 들여쓰기가 끝나면 수행문이 끝난 것
    >다른 언어는 {}를 써서 수행문을 명시하는 문법이 있지만 파이썬에는 코드를 묶어주는 문법이 없기 때문에 들여쓰기로 묶어줘야 한다.
3. elif 조건식 :
    elif=else+if(다른 언어에서는 elif라고 쓰지 않고 else if라고 씀)
    다른 만약
    -위 조건식이 만족하지 않으면 이 조건식을 검사해라
     > 그게 아니면 만약...이건?(sql에 else와 비슷한 개념?)
     >>if문에 종속>>>>if문 없이 혼자 사용 불가
    -여러개를 쓸 수 있다.
     >내가 원하는 만큼 사용 가능(제한 없음)
4. else :
    -위 조건식이 만족하지 않으면 '무조건' 여기를 수행해라
    -if문에 종속(elif와 동일)
    -중복사용 불가(하나만 사용할 수 있다.)
'''
#문자열을 입력받아서 정수로 변환
'''
num=int(input("정수 입력 : ")) # 1)정수로 변환할거야. 무엇을? 2)허락받은 문자를
if num > 0 : # 만약 num이 0보다 크면
    print("양수")
elif num < 0 : #그게 아니고 (만약) num이 0보다 작으면
    print("음수")
#elif num== 0 : # ==는 두 수가 같으면이라는 뜻
#    print("0")
else : # 위 두 조건을 만족하지 않았으면
    print("0")

#정수는 0보다 큰 양수, 0보다 작은 음수, 0으로 나뉨
#elif num== 0과 else의 차이는 연산과정을 거치느냐 그렇지 않느냐의 차이. 만약 연산할 데이터의 양이 많고 else와 elif로 도출되는 값에 차이가 없다면 연산 시간을 줄이기 위해 (성능향상)
'''

#if문 중첩

#score = int(input("점수 입력"))
#점수가 60점 이상이면 합격, 그 미만이면 불합격 출력
#100점이면 만점입니다, 0점이면 빵점입니다 추가출력
'''
if score >= 60 : #>=크거나 같다, 이상
    print("합격")
else :
    print("불합격")
#elif를 사용해서 60점 미만이면이라는 경우를 가정할 필요가 없다
if score == 100 :
    print("만점입니다")
if score == 0 :
    print("빵점")
'''
'''
if score >= 60 : #>=크거나 같다, 이상
    print("합격")
    if score == 100 :
        print("만점입니다")
else :
    print("불합격")
    if score == 0 :
        print("빵점")
'''
#수행문 안에는 어떠한 코드도 들어갈 수 있다. (변수 생성, 함수 사용, 연산 수행 모두 가능)
#만약 if의 하위if조건문이 상위if의 조건과 맞지 않으면 출력되지 않는다.
'''
        [연산자]
    [비교연산자]
        -조건식에서 자주(거의) 사용되는 연산자
        -조건에 만족을 하면 Ture, 만족하지 않으면 False가 반환됨 예)print(10 > 0)

        a < b a가 b보다 작니?(미만)
        a > b a가 b보다 크니?(초과)
        a <= b a가 b보다 작거나 같니?(이하)
        a >= b a가 b보다 크거나 같니?)(이상)
        a == b a가 b와 같니?
        a != b a와 b가 같지 않니?(다르니?)
        $$$=기호는 다른 연산자와 결합될 때 항상 뒤에 위치!(+=, -=등의 복합연산자도 비슷)

    [논리연산자]
        a or b(||) a또는 b 둘 중 하나만 참(true)이면 참이다. 둘 다 거짓이면 F이다.
        a and b(&&) a와 b 둘 다 참이어야 참이다
        not a(!) a가 거짓이면 참이다. /a가 참이면 거짓이다.
                >>>a를 부정한다! 결과를 반대로 뒤집는다
        ()안에 있는 기호는 다른 언어에서 사용하는 것으로 파이썬에서 사용하면 오류가 난다.

    [포함연산자]
        a in b b의 요소 중 a가 있으면 참(리스트나 튜플 같은 요소에서 사용)
        a not in b b에 a가 없으면 참
        >>>b에 해당하는 자료형 : 문자열, 리스트, 튜플 등
        "A" in ["A","B"]     True
        "A" in ("ABC","AB")  False
        "A" in "ABC"         True
'''
print(10 > 0) # print(True)라고 한 것과 다름없다
#map(반복시킬 함수명, 반복할 자료)
a, b = map( int, input("두 수 입력 :").split() )
print(a+b)

if a>0 and b>0 : # a가 0보다 크고 b가 0보다 크면=if ((a>0) and (b>0))
    print("둘 다 양수")
elif((a<0) and (b<0)) :
    print("둘 다 음수")
elif ((a == 0) and (b == 0)) :
    print("둘 다 0")
#만족하는게 없으면 아무것도 출력이 안 된다
print() # 개행, if 문이 끝났음

if ((a > 0) or (b > 0)) : #a가 0버디 크거나 b가 영보다 크면
    print("양수가 있다")

if ((a < 0) or (b < 0)) :
    print("음수가 있다")
    
if (not (a >0)) :
    print("첫 번째 수는 양수가 아니다") # '첫 번째 수는 음수이다' 보다는 양수가 아니다 쪽이 더 정확한 표현,  a는 양수가 아닌것이지 음수인것은 아니므로

my_list = [1, 2, 3]
if a in my_list :
    print("첫 번째 수는 123중에 있다.")
if b not in my_list :
    print("두 번째 수는 123중에 없다")

if a in my_list and b in my_list :
    print("둘 다 123중에 있다.")

if a in my_list or b in my_list :
    print("둘 중 하나는 {}중에 있다.".format(my_list))


'''
조건문 연습

    1. 나이를 입력받고 나이에 따라 출력
        7세 이하 : "아동입니다."
        8세~19세 : "청소년입니다."
        20~64세 : "성인입니다."
        65세 이상 : "노인입니다."
        
[출력결과]
나이 입력 : 15
청소년입니다.

    2. 주민등록번호 남/녀 판별기
        주민등록번호를 입력 받고 7번째 숫자에 따라 남자, 여자 출력
        9, 1, 3, 5, 7 : 남자
        0, 2, 4, 6, 8 : 여자
        
[출력결과]
주민등록번호 입력 : 010101=312456
남자

    3. 세 과목의 점수를 입력받고 평균 점수에 따라 합격/불합격 통지
        60점 이상 : "합격" / 미만 : "불합격"
        평균 점수는 소수점 1자리까지 출력
        -합격자 중, 65점 미마은 "턱걸이하셨네요!"

[출력결과1]
세 과목 점수 입력 : 60 60 61
당신은 60.3점으로 합격입니다.
턱걸이하셨네요!

[출력결과2]
세 과목 점수 입력 : 50 51 52
당신은 51.0점으로 불합격입니다.
    [심화] 점수를 3개의 변수에 대입하지 말고 하나의 리스트에 담아서 풀어보기

*문제들 중 어려워서 못 하고 있는 문제(지금 풀고 있는 문제 말고) 메일로 보내기
minn890@gmail.com
내일 수업시간 전까지

*문제를 풀 때 이해가 안된다고 해서 손도 안 대는 것은 금지, 할 수 있는 부분까지는 해보기

'''

출력창

Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

if문 끝난 뒤~
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

if문 끝난 뒤~
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
정수 입력 : 1
양수
>>> 
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
정수 입력 : 0
0
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
점수 입력55
불합격
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
점수 입력100
합격
만점입니다
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
점수 입력
Traceback (most recent call last):
  File "C:/김선미/0321.py", line 86, in <module>
    score = int(input("점수 입력"))
ValueError: invalid literal for int() with base 10: ''
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :10 20
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :10 20
30
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :1 1
2
둘 다 양수
>>> 
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :2 -1
1

양수가 있다
음수가 있다
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :-1 \
Traceback (most recent call last):
  File "C:/김선미/0321.py", line 143, in <module>
    a, b = map( int, input("두 수 입력 :").split() )
ValueError: invalid literal for int() with base 10: '\\'
>>> 
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
>>> 
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :-1 0
-1

음수가 있다
1111
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :-1 0
-1

음수가 있다
첫 번째 수는 양수가 아니다
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :1 0
1

양수가 있다
첫 번째 수는 123중에 있다.
두 번째 수는 123중에 없다
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :1 2
3
둘 다 양수

양수가 있다
첫 번째 수는 123중에 있다.
둘 다 123중에 있다.
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 :1 3
4
둘 다 양수

양수가 있다
첫 번째 수는 123중에 있다.
둘 다 123중에 있다.
둘 중 하나는 [1, 2, 3] 123중에 있다.
>>> 
========================== RESTART: C:/김선미/0321.py ==========================
=========조건문========

num=10
if문 끝난 뒤~
num=30
30은(는) 20보다 큽니다
30 > 20
if문 끝난 뒤~
True
두 수 입력 : 1 3
4
둘 다 양수

양수가 있다
첫 번째 수는 123중에 있다.
둘 다 123중에 있다.
둘 중 하나는 [1, 2, 3]중에 있다.
>>>