스터디노트(Python 기초4~6)

zoe·2023년 3월 4일
0

데이터 입력

  • input() 함수를 이용한 데이터 입력
    - input() -> 데이터 입력 함수
    - print() -> 데이터 출력 함수
print('키보드를 통해서 데이터를 입력하세요')
userInputData = input()
print(userInputData)
  • input() 함수에 입력 가이드 문구 사용 가능
userInputData = input('키보드를 통해서 데이터를 입력하세요')
print(userInputData)
  • input()함수를 이용해서 입력한 데이터는 항상 문자(열) 자료형
userInputData = input('키보드를 통해서 데이터를 입력하세요')
print(userInputData)
print(type(userInputData))
  • 입력받은 데이터 형 변환 가능
userInputData = int(input('입력 : '))
print(userInputData)
print(type(userInputData))
userInputData = float(input('입력 : '))
print(userInputData)
print(type(userInputData))
userInputData = bool(input('입력 : '))
print(userInputData)
print(type(userInputData))

- 실습

오늘의 날씨를 입력하고 출력하기

# 오늘의 날씨를 입력하고 출력하기
userInputData = input('오늘 날씨 정보 입력 : ')
print(userInputData)

사용자 이름을 입력하고 입력한 데이터의 자료형을 확인하는 코드 작성

# 사용자 이름을 입력하고 입력한 데이터의 자료형을 확인하는 코드 작성
userName = input('이름 입력 : ')
print(userName)
print(type(userName))

사용자가 가로, 세로 길이를 입력하면 삼각형과 사각형의 넓이가 출력되는 코드 작성

# 사용자가 가로, 세로 길이를 입력하면 삼각형과 사각형의 넓이가 출력되는 코드 작성
width = int(input('가로 입력 : '))
height = int(input('세로 입력 : '))
print('삼각형 넓이 : ', width*height/2)
print('사각형 넓이 : ', width*height)

데이터 출력

  • print() 함수를 이용한 기본적인 데이터 출력
userName = '홍길동'
print(userName)

userAge = 20
print(userAge)
  • 💡 end='' : 자동 개행을 막음(\n을 하지 않음)
print('3*5 = ', end='') # end = '' : 자동 개행을 막음(\n을 하지 않음)
print(3*5)
  • 콤마(,)를 이용한 데이터 연속 출력
userName = '홍길동'
userAge = 20
print('User name : ', userName)
print('User age : ', userAge)
print('User name : ', userName, 'User age : ', userAge)
  • 포맷 문자열을 이용한 데이터 출력
userName = '홍길동'
userAge = 20
print(f'User name : {userName}')
print(f'User age : {userAge}')
  • 특수문자
    - /t : 탭
    • /n : 개행(줄바꿈)
userName = '홍길동'
userAge = 20
print(f'User name\t:\t{userName}\nUser age\t:\t{userAge}')

- 실습

실행 결과가 다음과 같이 출력 될 수 있도록 코드 작성

#실행 결과가 다음과 같이 출력 될 수 있도록 코드 작성

width = float(input('가로 길이 입력 : '))
height = float(input('세로 길이 입력 : '))
triangle = width*height/2
square = width*height

print(f'width : {width}')
print(f'height : {height}')
print(f'triangle : {triangle}')
print(f'square : {square}')

print(f'width : {width}',end='')
print(f', height : {height}')
print(f'triangle : {triangle}', end='')
print(f', square : {square}')


print(f'width : {width},\t\theight : {height}\ntriangle : {triangle},\tsquare : {square}')

format()와 형상문자

  • format() 함수
    - 포맷을 정한 후 format() 함수를 이용하여 매개변수를 입력하여 값을 전달
    - 인덱스를 이용하여 매개변수 순서 변경 가능
userName = 'Hong gil dong'
userAge = 21

print('User name : {}'.format(userName))
print('User age : {}'.format(userAge))
print('User name : {}, User age : {}'.format(userName, userAge))
print('User name : {1}, User age : {0}'.format(userName, userAge))


print('나의 이름은 {}이고, 나이는 {}살 입이다. {}이름은 아버님께서 지어 주셨습니다.'
      .format(userName,userAge,userName))
print('나의 이름은 {0}이고, 나이는 {1}살 입이다. {0}이름은 아버님께서 지어 주셨습니다.'
      .format(userName,userAge))
  • 💡 형식 문자
    - 형식 문자를 이용하여 데이터 출력 (% 매개변수명 ★)
    • %s : 문자열
    • %d : 정수
    • %f : 실수
      • 💡%.nf : 소수점 n자리 표현
userName = 'Hong gil dong'
userAge = 21
print('User name : %s' % userName) # % 매개변수명 ★
print('User age : %d' % userAge) # % 매개변수명 ★
print('User name : %s, User name : %d' % (userName,userAge))

pi = 3.14
print('Pi : %f' % pi)
print('Pi : %d' % pi)

print('Pi : %.0f' % pi)
print('Pi : %.2f' % pi)
print('Pi : %.4f' % pi)
print('Pi : %.6f' % pi)

- 실습

다음과 같이 출력될 수 있도록 코드 작성하고 위의 데이터를 이용하여 원의 넓이와 둘레 길이 출력

# 다음과 같이 출력될 수 있도록 코드 작성하고 위의 데이터를 이용하여 원의 넓이와 둘레 길이 출력
radius = float(input('반지름 입력 : '))
pi = float(input('원주율 입력 : '))

print('radius : {0}\npi : {1}'.format(radius,pi))
print('radius : %.1f' % radius, end='')
print(', pi : %f' % pi)
print('radius : %.6f, pi : %f' % (radius, pi))
print('radius : %.2f, pi : %.2f' % (radius, pi))

circumference = radius*2*pi
circleArea = radius*radius*pi
print('원둘레 : %.2f, 원넓이 : %.2f' % (circumference, circleArea))

산술 연산자(덧셈, 뺄셈)

  • 연산자
    - result = data1 + data2
    • = , + <- 연산자
    • data1, data2 <- 피연산자(연산할 대상)
  • 연산자 종류
    - 산술 연산자 : +, -, , /, %(나눗셈 나머지), //(나눗셈 몫), ** (거듭제곱)
    - 할당 연산자 : =, +=, -=,
    =, /=, %=, //=
    - 비교 연산자 : >, >=, <, <=, ==, !=
    - 논리 연산자 : and, or, not
  • 덧셈
    - 정수와 실수 이용, 문자들을 이용한 덧셈 가능
    - 숫자와 문자를 이용한 덧셈은 ❌
  • 뺄셈
    - 정수, 실수, 정수와 실수 뺄셈 가능
    - 문자(열)을 이용한 뺄셈은 ❌
num1 = 10
num2 = 20
print(num1+num2)
result = num1+num2
print(f'result : {result}')
fnum1 = 3.14
fnum2 = 0.12
print('num1 + num2 = %.2f' % (fnum1+fnum2)) # 연산할 때 ()에 넣어서★
result = fnum1 + fnum2
print(f'result : {result}')
print('result : %.2f' % result)
num1 = 10
fnum1 = 3.14
result = num1 + fnum1
print(f'result : {result}')
str1 = 'Good'
str2 = ' '
str3 = 'morning'
print(str1 + str2 + str3)
print(str3 + str2 + str1)
result = str1 + str2 + str3
print(f'result : {result}')
num1 = 10
str1 = 'Good'
#result = num1 + str1
#print(f'result : {result}')
num1 = 10
num2 = 20
print(num1-num2)
result = num1-num2
print(f'result : {result}')
fnum1 = 3.14
fnum2 = 0.12
print('num1 - num2 = %.2f' % (fnum1-fnum2)) # 연산할 때 ()에 넣어서★
result = fnum1 - fnum2
print(f'result : {result}')
print('result : %.2f' % result)
num1 = 10
fnum1 = 3.14
result = num1 - fnum1
print(f'result : {result}')
str1 = 'Good'
str2 = ' '
str3 = 'morning'
# print(str1 - str2 - str3)
# result = str1 - str2 - str3
# print(f'result : {result}')

- 실습

국어, 영어, 수학 점수를 입력하고 합계 출력

# 국어, 영어, 수학 점수를 입력하고 합계 출력
korScore = int(input('국어 점수 : '))
engScore = int(input('영어 점수 : '))
matScore = int(input('수학 점수 : '))

total = korScore + engScore + matScore
print('국어점수 : {}'.format(korScore))
print('영어점수 : {}'.format(engScore))
print('수학점수 : {}'.format(matScore))
print('합계 : {}'.format(total))

이번달 알바비와 카드값을 입력하고, 남은 금액이 얼마인지 출력

# 이번달 알바비와 카드값을 입력하고, 남은 금액이 얼마인지 출력
partTimeMoney = int(input('알바비 입력 : '))
cardMoney = int(input('카드값 : '))
result = partTimeMoney - cardMoney

print('partTimeMoney : {}원'.format(partTimeMoney))
print('cardMoney : {}원'.format(cardMoney))
print('남는돈 : {}원'.format(result))

산술 연산자(곱셈, 나눗셈)

  • 곱셈
    - 숫자(정수, 실수) 이용, 문자(열)을 이용한 곱셈 가능
  • 나눗셈
    - 0을 나눗셈 하는 경우 -> 결과가 항상 0
    - 0으로 나누는 경우 -> ❌(불가능)
    - 나눗셈 결과는 항상 float
num1 = 20
fnum1 = 3.14
result = num1 * fnum1
print('num1 : {}, num2 : {}'.format(num1, fnum1))
print('result : {}'.format(result))
print('result : %.2f'% result)
str = 'Hi '
result = str * 5
print('result : {}'.format(result))
num1 = 10
fnum1 = 3
result = num1 / fnum1
print('num1 : {}, num2 : {}'.format(num1, fnum1))
print('result : {}'.format(result))
print('result : %.2f'% result)
num1 = 0
num2 = 3
result = num1 / num2
print('result : {}'.format(result))
#result = num2 / num1
#print('result : {}'.format(result))
num1 = 20
num2 = 5
result = num1 / num2
print('result : {}'.format(result))
print('type of result : {}'.format(type(result)))

- 실습

국어, 영어, 수학 점수를 입력하고 합계와 평균 출력

# 국어, 영어, 수학 점수를 입력하고 합계와 평균 출력
korScore = int(input('국어 점수 : '))
engScore = int(input('영어 점수 : '))
matScore = int(input('수학 점수 : '))

totalScore = korScore + engScore + matScore
avgScore = totalScore / 3

print('국어 점수 : {}'.format(korScore))
print('영어 점수 : {}'.format(engScore))
print('수학 점수 : {}'.format(matScore))
print('합계 : {}'.format(totalScore))
print('평균 : {}'.format(avgScore))
print('평균 : %.2f' % avgScore)

학급 전체 학생 수 입력, 한 모둠에 속하는 학생 수 입력, 전체 모둠 수 출력

# 학급 전체 학생 수 입력, 한 모둠에 속하는 학생 수 입력, 전체 모둠 수 출력
allStuCnt = int(input('전체 학생 수 : '))
stuCntOfGroup = int(input('한 모둠 학생 수 : '))
groupCnt = allStuCnt / stuCntOfGroup

print('전체 학생 수 : {}'.format(allStuCnt))
print('한 모둠 학생 수 : {}'.format(stuCntOfGroup))
print('모둠 수 : {}'.format(groupCnt))
print('모둠 수 : {}'.format(int(groupCnt)))

산술 연산자(나머지와 몫)

  • / : 나눗셈
  • % : 나머지
  • // : 몫
  • 💡 divmod() :
    - 나머지와 몫을 한번에 구할 수 있음
    - 튜플로 값을 반환(result[0] : 몫, result[1] : 나머지)
num1 = 10
num2 = 3

result = num1 / num2 #나눗셈
print('num1  :{}, num2 : {}, result : {}'.format(num1, num2, result))

result = num1 % num2 #나머지
print('num1 : {}, num2 : {}, result : {}'.format(num1, num2, result))

result = num1 // num2 #몫
print('num1 : {}, num2 : {}, result : {}'.format(num1, num2, result))

result = divmod(num1, num2)
print('result : {}' .format(result))
print('몫 : {}' .format(result[0]))
print('나머지 : {}' .format(result[1]))

- 실습

학급 전체 학생 수 입력, 한 모둠에 속하는 학생 수 입력, 전체 모둠 수와 남는 학생 수 출력

# 학급 전체 학생 수 입력, 한 모둠에 속하는 학생 수 입력, 전체 모둠 수와 남는 학생 수 출력
allStuCnt = int(input('전체 학생 수 : '))
stuCntOfGroup = int(input('한 모둠 학생 수 : '))
groupCnt = allStuCnt // stuCntOfGroup
overStuCnt = allStuCnt % stuCntOfGroup

print('전체 학생 수 : {}' .format(allStuCnt))
print('한 모둠 학생 수 : {}'.format(stuCntOfGroup))
print('모둠 수 : {}' .format(groupCnt))
print('남은 학생 수 : {}'.format(overStuCnt))

result = divmod(allStuCnt, stuCntOfGroup)
groupCnt = result[0]
overStuCnt = result[1]

print('(divmode) 전체 학생 수 : {}' .format(allStuCnt))
print('(divmode) 한 모둠 학생 수 : {}'.format(stuCntOfGroup))
print('(divmode) 모둠 수 : {}' .format(groupCnt))
print('(divmode) 남은 학생 수 : {}'.format(overStuCnt))

123개의 사과를 4개씩 직원들한테 나누어주려고 한다. 최대 나누어 줄 수 있는 직원 수와 남는 사과 개수 출력

# 123개의 사과를 4개씩 직원들한테 나누어주려고 한다.
# 최대 나누어 줄 수 있는 직원 수와 남는 사과 개수 출력
employee = 123
apple = 4
result = divmod(employee, apple)
print('사과를 나누어 줄 수 있는 최대 직원 수 : {}명' .format(result[0]))
print('남는 사과 개수 : {}개' .format(result[1]))

산술 연산자(거듭제곱)

  • 💡 ** : 같은 수를 여러 번 곱함
  • 💡 n ** (1/m) : n의 m제곱근
  • 💡 math 모듈을 이용한 제곱근과 거듭제곱 구하기
    - sqrt() : 제곱근 (3제곱, 4제곱은 ❌(불가능))
    - pow() : 거듭제곱
  • format() 함수 : 데이터의 형식 변경 가능
    - (예 : format(after12Month,',') -> 천단위에 ',' 형식으로 변경 가능, 문자(열)로 바뀜)
num1 = 2
num2 = 3
result = num1 ** num2
print('num1 : {}'.format(num1))
print('num2 : {}'.format(num2))
print('result : {}'.format(result))
# 2의 제곱근 구하기
result = 2 ** (1/2)
print('2의 제곱근 %f' % result)
print('2의 제곱근 %.2f' % result)

# 2의 3제곱근 구하기
result = 2 ** (1/3)
print('2의 3제곱근 %f' % result)
print('2의 3제곱근 %.2f' % result)

# 2의 4제곱근 구하기
result = 2 ** (1/4)
print('2의 4제곱근 %f' % result)
print('2의 4제곱근 %.2f' % result)
import math

math.sqrt(2)
print(math.sqrt(5))
print('2의 제곱근 %f' % math.sqrt(2))
print('2의 제곱근 %.2f' % math.sqrt(2))

print('3의 제곱근 %f' % math.sqrt(3))
print('3의 제곱근 %.2f' % math.sqrt(3))

print('4의 제곱근 %f' % math.sqrt(4))
print('4의 제곱근 %.2f' % math.sqrt(4))

print(math.pow(5,8))
print('2의 3제곱 : %f' % math.pow(2,3))
print('3의 4제곱 : %f' % math.pow(3,4))

- 실습

아들이 엄마한테 용돈을 받는데, 첫 달에는 200원을 받고 매월 이전 달의 2배씩 인상하기로 했다. 12개월째 되는 달에는 얼마를 받을 수 있는지 계산해보자.

# 아들이 엄마한테 용돈을 받는데, 첫 달에는 200원을 받고 매월 이전 달의 2배씩 인상하기로 했다.
# 12개월째 되는 달에는 얼마를 받을 수 있는지 계산해보자.

firstMonthMoney = 200
after12Month = ((firstMonthMoney * 0.01)**12)*100
print('12개월 후 용돈 : {}원' .format(after12Month))
print('12개월 후 용돈 : %.f원' % after12Month)

after12Month = int(after12Month)
strResult = format(after12Month,',') # format(after12Month,',') 천단위에 ',' 형식으로 변경 가능, 문자(열)로 바뀜 ★
print(strResult,'원')
print('12개월 후 용돈 : %s원' % strResult)

복합연산자

  • 할당(대입) 연산자 : 오른쪽의 값을 왼쪽에 할당(대입)
  • 복합 연산자
    - += : 덧셈 연산 후 할당 (<- num1 = num1 + 5 : num1 +=5)
    - -= : 뺄셈 연산 후 할당 (<- num1 = num1 - 5 : num1 -=5)
    - *= : 곱셈 연산 후 할당
    - /= : 나눗셈 연산 후 할당
    - %= : 나머지 연산 후 할당
    - //= : 몫 연산 후 할당
    - **= : 거듭제곱 연산 후 할당
num1 = 10
num1 += 3 # num1 = num1 + 3
print('num1 : {}' .format(num1))
num1 = 10
num1 -= 3 # num1 = num1 - 3
print('num1 : {}' .format(num1))
num1 = 10
num1 *= 3 # num1 = num1 * 3
print('num1 : {}' .format(num1))
num1 = 10
num1 /= 3 # num1 = num1 / 3
print('num1 : {}' .format(num1))
num1 = 10
num1 %= 3 # num1 = num1 % 3
print('num1 : {}' .format(num1))
num1 = 10
num1 //= 3 # num1 = num1 // 3
print('num1 : {}' .format(num1))
num1 = 10
num1 **= 3 # num1 = num1 ** 3
print('num1 : {}' .format(num1))

- 실습

다음 표를 참고해서 연간 누적 강수량을 출력

# 다음 표를 참고해서 연간 누적 강수량을 출력
rainAmount = 0
totalRainAmont = 0

totalRainAmont += 30
print('1월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 45
print('2월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 47
print('3월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 55
print('4월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 65
print('5월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 100
print('6월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 128
print('7월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 209
print('8월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 204
print('9월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 186
print('10월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 67
print('11월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

totalRainAmont += 25
print('12월 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))

rainAvgAmount = totalRainAmont / 12
print('-'*30)
print('연간 누적 강수량 : {} mm' .format(format(totalRainAmont,',')))
print('연간 평균 강수량 : {} mm' .format(format(rainAvgAmount,',')))
print('-'*30)

비교연산자(숫자 비교)

  • 비교 연산자의 연산 결과는 bool(True,False)형태
num1 = 10; num2 = 5 # 한줄에 연달아 변수 선언할 때 하나의 변수 선언 후 ';'을 입력하고 이어서 적으면 가능 

result = num1 > num2
print('num1 > num2 : {}' .format(result))

result = num1 >= num2
print('num1 >= num2 : {}' .format(result))

result = num1 < num2
print('num1 < num2 : {}' .format(result))

result = num1 <= num2
print('num1 <= num2 : {}' .format(result))

result = num1 == num2
print('num1 == num2 : {}' .format(result))

result = num1 != num2
print('num1 != num2 : {}' .format(result))

- 실습

숫자 두 개를 입력한 후 비교 연산 결과를 출력하는 코드 작성

# 숫자 두 개를 입력한 후 비교 연산 결과를 출력하는 코드 작성
userInputNumber1 = int(input('첫 번째 숫자 입력 : '))
userInputNumber2 = int(input('두 번째 숫자 입력 : '))

print('{} > {} : {}'.format(userInputNumber1, userInputNumber2, (userInputNumber1 > userInputNumber2)))
print('{} >= {} : {}'.format(userInputNumber1, userInputNumber2, (userInputNumber1 >= userInputNumber2)))
print('{} < {} : {}'.format(userInputNumber1, userInputNumber2, (userInputNumber1 < userInputNumber2)))
print('{} <= {} : {}'.format(userInputNumber1, userInputNumber2, (userInputNumber1 <= userInputNumber2)))
print('{} == {} : {}'.format(userInputNumber1, userInputNumber2, (userInputNumber1 == userInputNumber2)))
print('{} != {} : {}'.format(userInputNumber1, userInputNumber2, (userInputNumber1 != userInputNumber2)))

자동차의 전장과 전폭을 입력하면 자동차 기계 세차 가능 여부를 출력하는 코드 작성 (최대 전장 길이 : 5200mm, 최대 전폭 길이 : 1985mm)

# 자동차의 전장과 전폭을 입력하면 자동차 기계 세차 가능 여부를 출력하는 코드 작성
#(최대 전장 길이 : 5200mm, 최대 전폭 길이 : 1985mm)

maxLength = 5200
maxWidth = 1985

myCarLength = int(input('전장 길이 입력 : '))
myCarWidth = int(input('전폭 길이 입력 : '))

print('전장 가능 여부 : {}' .format(myCarLength <= maxLength))
print('전폭 가능 여부 : {}' .format(myCarWidth <= maxWidth))

비교연산자(문자 비교)

  • 아스키 코드(문자를 숫자로 정의)를 이용하여 비교 연산
    - 💡 ord() : 문자를 십진수 정수로 표현

    • 💡 chr() : 십진수 정수를 문자로 표현
  • 문자열은 문자열 자체를 비교

cha1 = 'A'
cha2 = 'S'

print('\'{}\' > \'{}\' : {}' .format(cha1, cha2, (cha1>cha2))) # 앞에 \를 입력하면 '를 출력할 수 있음
print('\'{}\' >= \'{}\' : {}' .format(cha1, cha2, (cha1>=cha2)))
print('\'{}\' < \'{}\' : {}' .format(cha1, cha2, (cha1<cha2)))
print('\'{}\' <= \'{}\' : {}' .format(cha1, cha2, (cha1<=cha2)))
print('\'{}\' == \'{}\' : {}' .format(cha1, cha2, (cha1==cha2)))
print('\'{}\' != \'{}\' : {}' .format(cha1, cha2, (cha1!=cha2)))
print('\'A\' -> {}' .format(ord('A')))
print('\'a\' -> {}' .format(ord('a')))
print('\'S\' -> {}' .format(ord('S')))
print('\'s\' -> {}' .format(ord('s')))
print('65 -> {}' .format(chr(65)))
print('83 -> {}' .format(chr(83)))
str1 = 'Hello'
str2 = 'hello'
print('{} == {} : {}' .format(str1, str2, (str1==str2)))
print('{} != {} : {}' .format(str1, str2, (str1!=str2)))

- 실습

알파벳을 입력하면 아스키 코드를 출력하는 코드 작성

# 알파벳을 입력하면 아스키 코드를 출력하는 코드 작성
userInputAlphabet = input('알파벳 입력 : ')
print('{} : {}' .format(userInputAlphabet, ord(userInputAlphabet)) )

아스키 코드를 입력하면 문자를 출력하는 코드 작성

# 아스키 코드를 입력하면 문자를 출력하는 코드 작성
userInputASCII = int(input('아스키 코드 입력 : '))
print('{} : {}' .format(userInputASCII, chr(userInputASCII)))

아이디와 패스워드를 입력한 후 비교결과 출력

# 아이디와 패스워드를 입력한 후 비교결과 출력
systemID = 'administrator@gmail.com'
sysoutPW = '!@#$%qwertyQWERTY'

userInputId = input('아이디 입력 : ')
userInputPw = input('비번 입력 : ')

print('아이디 비교 결과 : {}' .format(systemID == userInputId))
print('비번 비교 결과 : {}' .format(sysoutPW == userInputPw))

논리연산자

  • 피연산자의 논리(True, False)를 이용한 연산
  • and, or, not
    - and : A와 B 모두 True인 경우만 결과값으로 True
    - or : A와 B 중 어느 하나만 True여도 결과값은 True
    • not : 부정하는 결과
print('{} and {} : {}' .format(True, True, (True and True)))
print('{} and {} : {}' .format(False, True, (False and True)))
print('{} and {} : {}' .format(True, False, (True and False)))
print('{} and {} : {}' .format(False, False, (False and False)))

print('{} or {} : {}' .format(True, True, (True or True)))
print('{} or {} : {}' .format(False, True, (False or True)))
print('{} or {} : {}' .format(True, False, (True or False)))
print('{} or {} : {}' .format(False, False, (False or False)))

print('not {} : {}' .format(True, (not True)))
print('not {} : {}' .format(False, (not False)))

- 실습

'백신 접종 대상자는 20세 미만 또는 65세 이상자에 한합니다.'를 논리연산자를 이용해서 코딩하기

# '백신 접종 대상자는 20세 미만 또는 65세 이상자에 한합니다.'를 논리연산자를 이용해서 코딩하기
age = int(input('나이 입력 : '))
vaccine = (age < 20) or (age >=65)
print('age : {}, result : {}' .format(age, vaccine))

국어, 영어, 수학 점수를 입력하고 평균이 70점 이상이면, True를 출력하는 코드 작성 (단, 과목별 점수가 최소 60이상인 경우에 True를 출력)

# 국어, 영어, 수학 점수를 입력하고 평균이 70점 이상이면, True를 출력하는 코드 작성
# (단, 과목별 점수가 최소 60이상인 경우에 True를 출력)
passScore1 = 60
passScore2 = 70

korScore = int(input('국어 점수 : '))
engScore = int(input('영어 점수 : '))
matScore = int(input('수학 점수 : '))
scoreAvg = (korScore+engScore+matScore)/3
scoreAvgResult = scoreAvg >= passScore2

korScoreResult = korScore >= passScore1
engScoreResult = engScore >= passScore1
matScoreResult = matScore >= passScore1

subjectResult = korScoreResult and engScoreResult and matScoreResult
finalResult = subjectResult and scoreAvgResult

print('평균 : {}, 결과 : {}' .format(scoreAvg, scoreAvgResult))
print('국어 : {}, 결과 : {}' .format(korScore, korScoreResult))
print('영어 : {}, 결과 : {}' .format(engScore, engScoreResult))
print('수학 : {}, 결과 : {}' .format(matScore, matScoreResult))
print('과락 결과 : {}' .format(subjectResult))
print('최종 결과 : {}' .format(finalResult))

operator 모듈

  • 모듈 : 이미 만들어져 있는 기능
import operator

num1 = 8
num2 = 3

print('{} + {} : {}' .format(num1, num2, operator.add(num1,num2)))
print('{} - {} : {}' .format(num1, num2, operator.sub(num1,num2)))
print('{} * {} : {}' .format(num1, num2, operator.mul(num1,num2)))
print('{} / {} : {}' .format(num1, num2, operator.truediv(num1,num2)))
print('{} % {} : {}' .format(num1, num2, operator.mod(num1,num2)))
print('{} // {} : {}' .format(num1, num2, operator.floordiv(num1,num2)))
print('{} ** {} : {}' .format(num1, num2, operator.pow(num1,num2)))

print('{} == {} : {}' .format(num1, num2, operator.eq(num1,num2)))
print('{} != {} : {}' .format(num1, num2, operator.ne(num1,num2)))
print('{} > {} : {}' .format(num1, num2, operator.gt(num1,num2)))
print('{} >= {} : {}' .format(num1, num2, operator.ge(num1,num2)))
print('{} < {} : {}' .format(num1, num2, operator.lt(num1,num2)))
print('{} <= {} : {}' .format(num1, num2, operator.le(num1,num2)))

flag1 = True
flag2 = False
print('{} and {} : {}' .format(flag1, flag2, operator.and_(flag1,flag2)))
print('{} or {} : {}' .format(flag1, flag2, operator.or_(flag1,flag2)))
print('not {} : {}' .format(flag1, operator.not_(flag1)))

- 실습

이전 실습했던 백신 접종 대상자 출력 코드를 operator 모듈을 이용해서 변경 ('백신 접종 대상자는 20세 미만 또는 65세 이상자에 한합니다.'를 논리연산자를 이용해서 코딩하기)

# 이전 실습했던 백신 접종 대상자 출력 코드를 operator 모듈을 이용해서 변경

import operator
age = int(input('나이 입력 : '))
vaccine = operator.or_((operator.lt(age,20)),(operator.ge(age,65)))
print('age : {}, result : {}'.format(age, vaccine))

random과 operator 모듈을 사용해서 10부터 100사이의 난수 중 십의 자리와 일의 자리가 각각 3배수인지 판단하는 코드 작성

import random

rInt = random.randint(10,100)
num10 = operator.floordiv(rInt,10)
num1 = operator.mod(rInt,10)

print('난수 : {}' .format(rInt))
print('십의 자리 : {}' .format(num10))
print('일의 자리 : {}' .format(num1))
print('십의 자리는 3의 배수이다. : {}' .format(operator.mod(num10,3)==0))
print('일의 자리는 3의 배수이다. : {}' .format(operator.mod(num1,3)==0))

💻 출처 : 제로베이스 데이터 취업 스쿨

profile
#데이터분석 #퍼포먼스마케팅 #데이터 #디지털마케팅

0개의 댓글