일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 미니프로젝트
- 책리뷰
- java
- 2020년 일정
- 서평
- LeetCode
- git
- 성적프로그램
- jsp
- post
- 정보처리기사
- 스터디
- 뇌정리
- 알고리즘
- If
- Real MySQL
- 함수형 코딩
- Jackson
- 코드숨
- 항해99
- 2020년 정보처리기사 4회
- 필기
- 주간회고
- 2020년 제4회 정보처리기사 필기 문제 분석
- Til
- hackerrank
- algorithms
- Python
- sqldeveloper
- 회고
- Today
- Total
조컴퓨터
20200803-07 Python 코딩기초 (Ⅱ) 본문
논리연산자(boolean형)
숫자형, 문자(열)형, 논리형을 상대로 코딩이 가능한데, 예를 들면
① |
a=True print(a) print("True") |
② |
b=False print(b) print("False") |
③ |
c=not a print(c) |
④ |
d=not b print(d) |
①의 2번째 줄의 결과값은 boolean형 True이고, 3번째 줄은 문자형 True이다.
③은 a값의 부정이고, ④는 b값의 부정이다.
boolean형에서 다른 형식의 연산자 또한 활용할 수 있다.
① print(5<3)
② print(5>3)
③ print(5<=3)
④ print(5>=3)
⑤ print(5==3)
⑥ print(5!=3)
⑦
result=100>5
print(result)
①의 결과값은 False, ②는 True,
③은 False, ④는 True,
③과 ④의 '<=', '>='의 형태는 각각 '작거나 같다', '크거나 같다'를 표시하는 연산자이다.
⑤은 False, ⑥은 True
⑤와 ⑥의 '==', '!='의 형태는 각각 '좌우가 서로 같다', '좌우가 서로 같지 않다'를 나타내는 연산자이다.
⑦은 결과값이 True가 나온다.
또다른 형식의 연산자를 살펴보면
//and
① print(True and True) #True
② print(True and False) #False
③ print(False and True) #False
④ print(False and False) #False
//or
⑤ print(True or True) #True
⑥ print(True or False) #True
⑦ print(False or True) #True
⑧ print(False or False) #False
⑨
a=100>50 #True
b=20>10 #True
print(a and b) #True
⑩
c=100>=100 and 50==10 #True and False
print(c) #False
and, or, not이 활용된 이 형태를 논리연산자라 한다.
문자열 데이터를 String이라 한다.
" 와 ' 로 감싸져 있는 데이터를 말하는데, 해당 형태는 우선순위가 놓다.
앞서 말했던 것처럼 " ', ' " 형식의 따옴표 혼용은 안된다.
예1)
msg1 = "Life is too short"
msg2 = "You need Python"
print(msg1 + ", " + msg2) #append
→ Life is too short, You need Python
예2)
name = "Python"
print(name*50)
예2) 결과값은 Python이 50번 찍혀 나오는 것을 확인할 수 있다.
또한, 문자열 데이터에서는 앞글자를 잘라 사용할 수 있기 때문에 이런 식의 사용이 가능하다.
jumin="1912304"
birth=jumin[:6] # :6 -> 제일 앞에서부터 6개 가져오라는 뜻 → 191230
gender=jumin[6:] # 6: -> 6번째 글자부터 마지막까지 가져오기
문제) 주민번호를 이용해서 태어난 년도 만들기 print("20" + jumin[:2]) #내 답 →2019
year="20" + jumin[:2] #선생님 답 print(year) →2019
(참고) 여기서 조건문을 활용하면 (1, 2), (3, 4), (5, 6)의 처리가 간단해진다.
문제) 태어난 월, 일을 구하시오. print(jumin[2:4]) #꼬릿말로 인해 들어가는 숫자 때문에 마지막 수에 +1 → 12 print(jumin[4:6]) #(이하동) → 30
month=jumin[2:4] print(month) → 12 date=jumin[4:6] print(date) → 30 |
주민등록번호는 이렇게 활용 가능하다.
이제 코딩의 꽃 중 하나인 조건문을 알아보자.
조건문은 참, 거짓으로 판단 가능한(boolean형) 문장을 뜻한다.
처리할 식이 여러 개일 경우 tap키로 조절해야 함을 잊지 말자.
If + 조건식 : (조건이 True일 때) 처리할 식 |
예)
have_money=False
if have_money:
print("오늘은") # tap (tap이 안 먹힌 경우에는 조건문 성립X)
print("맘스터치")
print("싸이버거")
→ 싸이버거 (have_money가 False이므로 if 가정은 성립하지 않는다.)
If + 조건식 : (조건이 True일 때) 처리할 식 else: (조건이 False일 때) 처리할 식 |
예) 19세 이상이면 성인, 아니면 청소년
age=19
if age>=19:
print("성인") #age=19; 성인
else:
print("청소년") #age=17; 청소년
* else는 반드시 if와 동일하게 나열되어야 한다.
If + 조건식1 : (조건1이 True일 때) 처리할 식 elif + 조건식2: (조건2가 True일 때) 처리할 식 elif + 조건식3: (조건3이 True일 때) 처리할 식 else: (조건1, 2, 3이 아닐 때) 처리할 식 |
예) 90점 이상일 때 상반, 80점 이상일 때 중반, 80점 미만일 때 하반
score=50
if score>=90:
print("상반")
elif score>=80:
print("중반")
elif score<80:
print("하반")
else:
print("보충수업")
문제1) 성적 프로그램 name="코로나" kor=100 eng=100 mat=30 aver=(kor+eng+mat)//3 print(name) #코로나 |
문제5) 절대값(무조건 양수값)을 구하시오. num=-3 #내 답 if num>=0: print(num) else: print(-num) → 3 #선생님 답 if num<0: print(num*-1) else: print(num) → 3 |
문제6) 과락 평균점수가 70점 이상이면 합격 (단, 국영수 세 과목 중에서 한 과목이라도 40점 미만이면 재시험) 평균점수가 70점 미만이면 무조건 불합격 name="코로나" kor=100 eng=100 mat=30 aver=(kor+eng+mat)//3 #내 답(1) if kor<40: print("재시험") elif eng<40: print("재시험") elif mat<40: print("재시험") elif aver>=70: print("합격") else: print("불합격") → 재시험 처음에는 아주 단순하게 조건과 문제를 도치한 형태로 풀어냈다. 평균점수가 70점 이상이기 이전에 국영수 세 과목 중에서 한 과목에서 40점 미만인 경우를 찾아내고 40점 미만이 없다면 그 이후에 평균점수가 70점 이상임을 알아내는 것이 가장 단순하게 풀 수 있는 방법이다. 허나, 답안으로 요구하는 것이 이런 방향이 아님을 알았기에 답안을 수정했다. #내 답(2), 선생님 답 if aver>=70: if kor<40 or eng<40 or mat<40: print("재시험") else: print("합격") else: print("불합격") → 재시험 해당 형태는 전형적인 if문이다. 이중if문의 형식으로 이루어져 있고, 문제가 요구하는 조건을 역순이 아닌 순서 그대로 나열하였다. (내 첫답안은 조건 → 메인 문제 → 서브 문제 로 접근했다면, 이번 답안은 메인 문제 → 조건 → 서브 문제 로 문제의 문장 나열 그대로 나타냈다.) 문제 안의 '세 과목 중에서 한 과목이라도'라는 표현은 모든 과목이 다 40점 미만이 나왔을 경우(and)가 아닌 세 과목 중 한 과목만 40점 미만인 경우(or)에 해당한다. |
이번에는 반복문이다.
반복문에는 while문과 for문 두 가지가 있는데, 두 문법의 사용은 반복 회차에 따라 달라진다.
while은 반복 회차가 부정확한 경우 사용되고,
for는 반복 회차가 정확한 경우에 사용된다.
먼저 while문의 형태를 보자.
while + 조건식 : (조건이 True일 때) 처리할 식 |
if문과 동일하게 생겼다.
(참고) 출력서식 ① %d: 정수값 출력 ② %f : 실수값 출력 ③ %s: 문자열 출력 |
예1)
① print("나이:%d" % 25)
② print("키:%f" % 178.9)
③ print("이름:%s" % "코로나")
→ 나이:25
키:178.900000
이름:코로나
예2)
① print("%d년 %d월 %d일" % (2020, 8, 5))
→ 2020년 8월 5일
②
str="%d년 %d월 %d일"
msg=str % (2020, 8, 5)
print(msg)
→ 2020년 8월 5일
문제7) 구구단 4단 출력하기 (while문) dan=4 i=1 while i<=9: print("%d * %d = %d" % (dan, i, dan*i)) i=i+1 → (4단이 출력된다) 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 |
for문은 앞서 말한 것처럼 반복 회차를 정확히 알고 있는 경우에 사용할 수 있다.
for a in range(초기값, 종료값 전까지): print(a) 예) for a in range(1, 10): print(a) → 1 2 3 4 5 6 7 8 9 for b in range(초기값, 종료값 전까지, 증감): print(b) 예) for b in range(1, 10, 3): print(b) → 1 4 7 이 경우는 1에서 시작해서 10까지 나열하는 경우인데, 증감이 3씩 이루어진다. 1, 4=1+3, 7=4+3, 10=7+3이지만 종료값 전까지만 이루어져야 하므로 10은 제외된다. |
문제8) 구구단 4단 출력하기 (for문) #내 답 for a in range(1, 10): print(4*c) → (단순히 4단의 답이 출력된다) 4 8 12 16 20 24 28 32 36 이 경우에는 아주 단순한 for문으로 변수 4*a의 a자리에 1에서부터 10까지를 대입했다. #선생님 답 dan=4 for b in range(1, 10): print("%d * %d = %d" % (dan, c, dan*c)) → (4단이 출력된다) 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 이 경우는 보기 좋게 앞에 곱셈표기를 나타내었다. |
문제9) 구구단 2 ~ 9단 출력하기 for dan in range(2, 10): #2부터 9까지 dan을 출력하고 print("%d단" % dan) #몇 단인지 알아보기 편하게 출력서식 또한 지정해준다. for i in range(1, 10): #1부터 9까지를 순차적으로 추출한 후 위에서 구한 dan과 곱해준다. print("%d * %d = %d" % (dan, c, dan*c)) → (2 ~ 9단이 출력된다/생략) |
문제10) 1 ~ 10까지 짝수, 홀수를 구분해서 출력하기 #내 답 for num in range(1, 11): if num%2==1: # num%2==1은 2의 배수가 아닌 수(홀수)를 나타낸다. print("홀수") else: print("짝수") → 홀수 짝수 홀수 짝수 홀수 짝수 홀수 짝수 홀수 짝수 이건 %s가 필요하다. #선생님 답 for num in range(1, 11): if num%2==0: # num%2==0은 2의 배수(짝수)를 나타낸다. print("%d는 %s" % (num, "짝수")) else: print("%d는 %s" % (num, "홀수")) → 1는 홀수 2는 짝수 3는 홀수 4는 짝수 5는 홀수 6는 짝수 7는 홀수 8는 짝수 9는 홀수 10는 짝수 답안이 안정적이다. %d 뿐만 아니라 %s도 활용한 for문이다. |
**내일은 자바 기초코딩 시작합니다**
'자바 웹개발자 과정' 카테고리의 다른 글
200812 OT (0) | 2020.08.26 |
---|---|
20200803-07 JAVA 코딩기초 (Ⅰ) (0) | 2020.08.24 |
20200803-07 Python 코딩기초 (Ⅰ) (0) | 2020.08.19 |