컴공생의 공부LOG

[프로그래밍 기초] 제어 구조 본문

학교 수업/1학년 1학기

[프로그래밍 기초] 제어 구조

푸우키 2024. 11. 26. 12:51

논리식

Logical Expression

Boolean Expression (True / False)

 

논리 연산자

논리곱 논리합 논리역
and or not

<논리식> and <논리식>

<논리식> or <논리식>

not <논리식>

 

진리표 (Truth Table)

p q p and q p or q
True True True True
True False False True
False True False True
False False False False
p not p
True False
False True

 

연산자

연산자 우선순위 결합 순서
not 가장 높음 -
and 높음 -
or 낮음 -

 

비교 논리식

비교 연산자

같다 다르다 크다 작다 크거나 같다 작거나 같다
== != > < >= <=

<식> == <식>

<식> != <식>

<식> > <식>

<식> < <식>

<식> >= <식>

<식> <= <식>

 

비교 기준

크기
논리값 True는 1로, False는 0으로 처리
문자열 ASCII 코드 / Unicode 값

 

Q1. 정수를 인수로 받아서 짝수이면 True를, 홀수이면 False를 내주는 함수 even을 아래 형식에 맞추어 작성하자. 짝수이면 참이 되는 논리식을 만들어 리턴하면 된다.

힌트) 짝수를 2로 나누면 나머지는 항상 0이다.

 

 

선택문

선택문 (Conditional Statement)

구문

if <조건> :

     <블록1>

else :

     <블록2>

 

if <조건1> :

     <블록1>

elif <조건2> :

     <블록2>

elif ...

else :

     <블록3>

 

선택문의 중첩 (Nested)

 

Q2. 정수 2개를 인수로 받아서, 그중 작은 수를 리턴해 주는 함수 smaller를 작성하자.

 

Q3. 정수 3개를 인수로 받아서, 그중 가장 작은 수를 리턴해 주는 함수 smallest를 작성하자.

 

 

Q4. 선택문을 사용하지 않고 smaller 함수 호출을 활용하여 smallest 함수를 작성하자.

힌트) smaller 함수를 두 번만 호출하면 충분하다.

 

 

 

반복문

반복문 (Loop)

 

무조건 반복 (Infinite Loop)

구문

while True :

      <블록>

강제 종료 : Ctrl + C

 

조건 반복

구문

while <조건> :

       <블록>

 

Q5. 수강과목의 평균 점수를 계산하는 프로그램을 만들자. 키보드 입력으로 사용자가 제공할 정보는 과목의 개수와 각 과목의 점수이다. 실행창에서 다음과 같이 차례로 입력받아 평균 점수를 계산하여 화면에 프린트하도록 한다.

평균 점수는 반올림하여 소수점 아래 첫째 자리까지만 표시한다. 수강과목 수가 0인 경우에는 점수 입력을 받지 않고 다음과 같이 프린트해야 한다.

평균을 계산할 때 과목의 수로 나누어야 하는데, 이 경우 나누기 0 오류가 발생하지 않도록 해야 한다.

 

Q6. <Q5> 에서 완성한 프로그램은 입력 확인을 하지 않아서 정수가 아닌 입력에 타입 오류가 발생한다. 게다가 일반적으로 점수는 100점 만점으로 계산하기 때문에 0~100 사이의 정수로 입력을 제한시켜야 합리적이다. 0~100 범위의 정수가 아닌 사용자 입력은 무시하고 재입력을 요청하도록, 입력 확인 기능을 추가하여 프로그램을 보완하자. 다음과 같은 형식으로 재입력을 요청해야 한다.

문자열 해부

인덱스 (Index)

인덱스의 범위

0 ~ n - 1

-1 ~ -n

n = 문자열의 길이

 

문자열 조각 복제

 

Q7. isdigit() 메소드 함수는 문자열이 숫자만으로 구성되어 있는지 확인한다. 즉, 자연수 문자열인지는 이 메소드만으로 확인 가능하다. 그런데 정수는 음수를 포함하기 때문에, 음수 기호가 앞에 붙는다. 음수도 포함한 정수 문자열인지 확인하려면, 문자열은 다음 두 조건 중 하나를 만족해야 한다.

-1개 이상의 이어진 숫자로 구성

-'-' 문자가 맨 앞에 있고, 이어서 1개 이상의 이어진 숫자로 구성

 

 

Q7. 문자열이 실수를 고정소수점 표시 방식으로 정확히 표현하고 있는지 확인하기 위해서, 입력 문자열은 다음 두 조건 중 하나를 만족해야 한다.

- 0개 이상의 숫자, 이어서 '.' 문자, 이어서 0개 이상의 숫자로 구성 (단, '.'만 있는 경우는 허용하지 않음)

- '-' 문자가 맨 앞에 있고, 0개 이상의 숫자, 이어서 '.' 문자, 이어서 0개 이상의 숫자로 구성 (단, '-.'는 허용하지 않음)

문자열을 인수로 받아서 고정소수점 수 형식에 맞으면 True, 그렇지 않으면 False를 내주는 isfloat 함수를 아래 뼈대코드에 맞추어 작성하자.

- 코딩 가이드1 : 먼저 partition('.') 메소드 호출을 활용하여 문자열을 삼등분 낸다

- 코딩 가이드2 : 앞에서 공부한 isinteger 함수를 적극 활용하면 프로그램이 간결해진다