파이썬 코드업 기초 5 - 산술연산
파이썬에서 제공하는 데이터형
int (plain integers) : 정수
long (long integers) : int 보다 범위가 큰 정수
float (floating point numbers) : 실수
complex (complex numbers) : 복소수
38. 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.
a, b = map(int, input().split())
print(a + b)
- 두 가지 정수를 입력받을 수 있도록 map(int, input().split())을 사용하여 받은 정수를 각각 a, b에 저장하여 두 정수의 합을 출력했다.
39. 입력된 정수의 부호를 바꿔 출력해보자.
1) 정답
intConv = -int(input())
print( intConv )
2) 내가 쓴 답
a = int(input)
print(-a)
- 먼저 정수를 입력받은 다음 출력할 때 - 를 붙여서 부호가 바뀌도록 했다.
40. 영문자 1개를 입력받아 그 다음 문자를 출력해보자. 영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.
Tip :
- 아스키 코드를 이용하면 된다.
- 'A' == 97(1000001), 'B' == 98(1000010) 이므로 아스키 코드로 변환된 숫자에 1을 더한 뒤 아스키 문자로 재변환 해주면 된다.
a= ord(input())
print(chr(a + 1))
- 먼저 입력받은 값을 아스키코드로 반환해주는 함수 ord()를 이용하여 입력받은 영문자를 아스키 코드로 바꿔준다. 아스키 코드로 바꿨기 때문에 값이 정수(ex : 10000001)가 되어서 입력받은 문자의 다음 문자를 출력하도록 1을 더해주었고, 다시 정수를 문자열로 바꿔주는 chr() 함수를 사용하여 최종값을 출력했다.
41. 정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.
Tip :
- 산술 연산자 '/'는 정확히 나눈 후의 값을 반환한다. ex) 1/3 >> 0.33333
- 산술 연산자 '//'는 나눈 후의 몫만 반환한다. ex) 1/3 >> 0
a, b = map(int, input().split())
print(a//b)
- 두 개의 정수를 입력 받은 뒤 나눈 후의 몫만 반환하는 산술 연산자 '//'를 사용하여 a를 b로 나눈 몫을 출력하게 했다.
42. 정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.
a, b = map(int, input().split())
print(a % b)
- 두 개의 정수를 입력 받은 뒤 a를 b로 나눈 나머지를 출력하는 산술 연산자 '%'를 사용하여 문제를 풀었다.
43. 정수를 1개 입력받아 1만큼 더해 출력해보자.
a = int(input())
print(a + 1)
- 일단 하나의 정수를 입력 받은 뒤 그 값에 1을 더하여 출력하도록 했다.
44. 정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
첫 줄에 합
둘째 줄에 차,
셋째 줄에 곱,
넷째 줄에 몫,
다섯째 줄에 나머지,
여섯째 줄에 나눈 값을 순서대로 출력한다.
(실수, 소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력)
a, b = map(int, input().split())
print(a + b)
print(a - b)
print(a * b)
print(a // b)
print(a % b)
print(round(a/b, 2))
- 소수점 이하 셋째 자리에서 반올림하여 둘째 자리까지만 출력하는 방법을 (.2f) 이걸 쓰는건가? 고민했다. 반올림 함수 round()가 아직 익숙하지 않아서 그런듯
45. 정수 3개를 입력받아 합과 평균을 출력해보자.
합과 평균을 줄을 바꿔 출력한다.
평균은 소수점 이하 둘째 자리에서 반올림해서 소수점 이하 첫째 자리까지 출력한다.
1) 정답
a, b, c = map(int, input().split())
print( a+b+c )
print( round((a+b+c)/3, 1) )
- 세 가지 정수를 입력받은 다음 합과 평균을 각각 따로 출력했다. 평균 출력 방법은 44번 문제를 활용했다.
2) 내가 쓴 답
a, b, c = map(int, input().split())
print(a + b + c, \n round((a + b + c)/3, 1))
- 개행문자 \n을 사용하면 될거라 생각했는데 오류가 발생한다. 뭐임..?