선미 파이썬 0321 8일차
azuremei
Shanmei (토론) 사용자의 2018년 3월 21일 (수) 21:18 판 (새 문서: ==노트== <pre> ''' [조건문] 조건문이란? -조건을 판단하여 상황ㅇ에 맞게 쳐리 >다양한 상황에 대처한다. if문(만...)
노트
''' [조건문] 조건문이란? -조건을 판단하여 상황ㅇ에 맞게 쳐리 >다양한 상황에 대처한다. 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]중에 있다. >>>