result = A + B : = , + 가 연산자
산술 연산자 : +, -, *, /, %
할당 연산자 : =, +=, -=, /=
비교 연산자 : >, >=, <, <=
논리 연산자 : and, or, not
num1 = 13
num2 = 223.456
sum = num1 + num2
print("num1+num2=%.2f" % sum)
📌결과
num1+num2=236.46
partTimeMoney = int(input("알바비:"))
cardMoney = int(input("카드값:"))
result = partTimeMoney - cardMoney
print('알바비 : {} - 카드값 : {} = 잔액 : {}'.format(partTimeMoney, cardMoney, result))
📌결과
알바비:2000000
카드값:1800000
알바비 : 2000000 - 카드값 : 1800000 = 잔액 : 200000
str = 'hi '
print("{}".format(str * 8))
📌결과
hi hi hi hi hi hi hi hi
divmod( num1, num2 )
num1 = 3
num2 = 1
print(f"{num1} 나누기 {num2} \n몫 = {num1 / num2} 나머지 = {num1 % num2}")
📌결과
3 나누기 1
몫 = 3.0 나머지 = 0
result = divmod(num1, num2)
print("몫 : %.0f" % result[0])
print("나머지 : %d" % result[1])
📌결과
몫 : 3
나머지 : 0
allStudent = int(input("전체 학생 수 : "))
studentGroup = int(input("모둠 별 학생 수 :"))
groupCnt = int(allStudent / studentGroup)
overStudent = allStudent % studentGroup
print(f'모둠 수 : {groupCnt} 남은 학생 수 : {overStudent}')
📌결과
전체 학생 수 : 100
모둠 별 학생 수 :8
모둠 수 : 12 남은 학생 수 : 4
num1 = 2
num2 = 3
result = num1 ** num2
print(result)
📌결과
8
n의 m제곱근 공식
n ** (1/m)
result1 = 2 ** (1 / 2)
result2 = 2 ** (1 / 3)
result3 = 2 ** (1 / 4)
print("2의 2제곱근 : %.2f" % result1)
print("2의 3제곱근 : %.2f" % result2)
print("2의 4제곱근 : %.2f" % result3)
📌결과
2의 2제곱근 : 1.41
2의 3제곱근 : 1.26
2의 4제곱근 : 1.19
sqrt 함수는 2의 제곱근만 구해줌
import math
print("2의 2제곱근 : %.2f" % math.sqrt(2))
print("2의 3제곱근 : %.2f" % math.sqrt(3))
print("2의 4제곱근 : %.2f" % math.sqrt(4))
print("3의 거듭 제곱 : %d" % math.pow(3, 2))
print("3의 세제곱 : %d" % math.pow(3, 3))
print("3의 네제곱 : %d" % math.pow(3, 4))
📌결과
2의 2제곱근 : 1.41
2의 3제곱근 : 1.73
2의 4제곱근 : 2.00
3의 거듭 제곱 : 9
3의 세제곱 : 27
3의 네제곱 : 81
첫 달 용돈은 200이며 다음 달이 될때마다 전 달의 두배씩 올리니다면 12월달의 용돈은?
firstMonthMoney = 200
after12Month = int(firstMonthMoney * math.pow(2, 11))
print(f"1월 용돈 : {firstMonthMoney} ... 12월 용돈 : {after12Month}")
📌결과
1월 용돈 : 200 ... 12월 용돈 : 409600
- += 덧셈 연산 후 할당
- -= 뺄셈 연산 후 할당-
- /= 나눗셈 연산 후 할당
. . .
누적 강수량 구하기
rainAvgAmount = 0
totalAmount = 0
totalAmount += 30
print(f"1월 누적 강수량 : {totalAmount}")
totalAmount += 50
print(f"2월 누적 강수량 : {totalAmount}")
totalAmount += 120
print(f"3월 누적 강수량 : {totalAmount}")
totalAmount += 40
print(f"4월 누적 강수량 : {totalAmount}")
totalAmount += 75
print(f"5월 누적 강수량 : {totalAmount}")
rainAvgAmount = totalAmount / 5
print("평균 강수량 : %.2f" % rainAvgAmount)
print(f"전체 강수량 : {totalAmount}")
📌결과
1월 누적 강수량 : 30
2월 누적 강수량 : 80
3월 누적 강수량 : 200
4월 누적 강수량 : 240
5월 누적 강수량 : 315
평균 강수량 : 63.00
전체 강수량 : 315
자동차의 전장과 진폭을 입력하면 자동차 기계 세차 가능여부를 출력하는 코드를 작성해 보자. (최대 전장 길이 : 5200mm, 최대 전폭 길이 : 1985mm )
maxLength = 5200
maxWidth = 1985
myCarLength = int(input("전장 길이 : "))
myCarWidth = int(input("전폭 길이 : "))
print(f'전장 가능 여부 : {myCarLength <= maxLength}')
print(f'전폭 가능 여부 : {myCarWidth <= maxWidth}')
📌결과
전장 길이 : 5100
전폭 길이 : 2000
전장 가능 여부 : True
전폭 가능 여부 : False
아스키 코드를 이용한 비교 연산
char1 = 'A' # 65
char2 = 'H' # 72
print('\'{}\' > \'{}\' : {}'.format(char1, char2, char1 > char2))
print('\'{}\' >= \'{}\' : {}'.format(char1, char2, char1 >= char2))
print('\'{}\' < \'{}\' : {}'.format(char1, char2, char1 < char2))
print('\'{}\' <= \'{}\' : {}'.format(char1, char2, char1 <= char2))
print('\'{}\' == \'{}\' : {}'.format(char1, char2, char1 == char2))
print('\'{}\' != \'{}\' : {}'.format(char1, char2, char1 != char2))
📌결과
'A' > 'H' : False
'A' >= 'H' : False
'A' < 'H' : True
'A' <= 'H' : True
'A' == 'H' : False
'A' != 'H' : True
# 문자 -> 아스키 코드
print(' \'a\' -> {} '.format(ord('a')))
print(' \'h\' -> {} '.format(ord('h')))
# 아스키 코드 -> 문자
print(' 97 -> {} '.format(chr(97)))
print(' 104 -> {} '.format(chr(104)))
📌결과
'a' -> 97
'h' -> 104
97 -> a
104 -> h
문자열은 아스키 코드를 이용해 비교하는 문자와 다르게 문자열 자체를 비교하므로 == 와 != 만 비교 가능
Hello == hello : False
Hello != hello : True
Hello > hello : False
Hello < hello : True
📌결과
Hello == hello : False
Hello != hello : True
Hello > hello : False #비교기준이 뭔지 알아볼 필요 있음
Hello < hello : True
논리 연산자란, 피연산자의 논리를 이용한 연산
논리 연산자 종류 : and, or, not
- and : A와 B 모두 True 면 True
- or : A와 B 중 하나만 True 면 True
- not A : A가 True 면 False
print('{} and {} : {}'.format(True, True, True and False))
print('{} and {} : {}'.format(True, True, True and True))
print('{} or {} : {}'.format(True, True, True or True))
print('{} or {} : {}'.format(True, True, True or False))
print('{} not : {}'.format(True, (not True)))
print('{} not : {}'.format(False, (not False)))
📌결과
True and True : False
True and True : True
True or True : True
True or True : True
True not : False
False not : True
국어, 영어, 수학 점수를 입력하고 평균이 70점 이상이면 True를 출력하는 코드 작성 (단, 과복별 점수가 최소 60 이상인 경우에 True를 출력)
mathScore = int(input("수학 : "))
engScore = int(input("영어 : "))
korScore = int(input("국어 : "))
passScore = 60
avg = (mathScore + engScore + korScore) / 3
mathResult = mathScore >= 60
engResult = engScore >= 60
korResult = korScore >= 60
result = ((avg > 70) and mathResult and engResult and korResult)
print(f"math : {mathResult} | eng : {engResult} | kor : {korResult} | PASS : {result}")
📌결과
수학 : 85
영어 : 58
국어 : 90
math : True | eng : False | kor : True | PASS : False
모듈이란, 누군가 이미 만들어 놓은 훌륭한 기능
산술 연산자 관련 모듈
- '+' : operator.add()
- '-' : operator.sub()
- '*' : operator.mul()
- '/' : operator.truediv()
- '%' : operator.mod()
- '//' : operator.floordiv()
- '**' : operator.pow()
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.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)))
📌결과
8 + 3 = 11
8 - 3 = 5
8 / 3 = 2.6666666666666665
8 % 3 = 2
8 // 3 = 2
8 ** 3 = 512
비교 연산자 관련 모듈
- '==' : operator.eq()
- '!=' : operator.ne()
- '>' : operator.gt()
- '>=' : operator.ge()
- '<' : operator.lt()
- '<=' : operator.le()
num1 = 8
num2 = 3
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)))
📌결과
8 > 3 = True
8 >= 3 = True
8 < 3 = False
8 <= 3 = False
논리 연산자 관련 모듈
- and : operator.and_()
- or : operator.or_()
- not : operator.not_()
print("{} and {} = {}".format(num1, num2, operator.and_(num1, num2))) #논리곱
print("{} or {} = {}".format(num1, num2, operator.or_(num1,num2))) #논리합
print("not {} = {}".format(num1, operator.not_(num1)))
📌결과
8 and 3 = 0
8 or 3 = 11
not 8 = False
백신 접송 대상자는 20세 미만 또는 65세 이상에 한합니다.
age = int(input("나이 : "))
vaccine = operator.or_(operator.ge(age, 65), operator.lt(age, 20))
print(f'age : {age} vaccine : {vaccine}')
📌결과
나이 : 65
age : 65 vaccine : True
random 과 operator 모듈을 사용해서 10 부터 100까지 난수 중 십의 자리와 일의 자리가 각각 3배수인지 판단하는 코드를 작성해보자.
randomInt = random.randint(10, 100)
num10 = operator.floordiv(randomInt, 10)
num1 = operator.mod(randomInt, 10)
print(f"랜덤 숫자 : {randomInt}")
print(f"십의 자리 : {num10}\n일의 자리 : {num1}")
print(f"십의 자리 : {num10}\n일의 자리 : {num1}")
print(f"십의 자리가 3의 배수 인가 : {operator.mod(num10, 3) == 0} ")
print(f"일의 자리가 3의 배수 인가 : {operator.mod(num1, 3) == 0} ")
📌결과
랜덤 숫자 : 86
십의 자리 : 8
일의 자리 : 6
십의 자리 : 8
일의 자리 : 6
십의 자리가 3의 배수 인가 : False
일의 자리가 3의 배수 인가 : True