6.2 할당 연산자
변수 계산에서 자기 자신에 값을 계산 해서 값을 초기화 할 때 번거롭게
v = 20 v = v +10
이런 식으로 쓰지 않고
v = 20 v += 10
이런 방식으로 작성해도 결과는 같다.
- += (더하기)
- -= (빼기)
- *= (곱하기)
- /=, //= (나누기)
- %= (나머지)
6.3 입력 값을 변수에 저장하기
- input() 함수
사용자가 직접 입력하여 값을 저장 할수 있는 함수이다.input() 입력) Hello~~
'Hello~~'
또한 input() 함수의 괄호 안에 문자열을 쓰면 입력할 때 써놓은 문자열이 나타난다.
input('아무 숫자나 입력하십시오 : ') 아무 숫자나 입력하십시오 : >>> 20
20
이를 응용해서 이런 식으로 사용 가능하다.
yourName = input('당신의 이름을 입력하세요 : ') 당신의 이름을 입력하세요 : 입력) 유재우 print('당신의 이름은 ' + yourName + ' 입니다.')
당신의 이름은 유재우 입니다.
여기서 주의할 점은 input()함수로 저장한 값은 문자열(str)로 숫자값이 아니다.
str = input() 입력) 20 type(str)
<class 'str'>
그러므로 숫자를 저장하여 숫자끼리의 연산을 구하고 싶을 때는 int()함수를 이용하면 된다.
a = int(input('a :')) b = int(input('b :')) print(a+b)
a : 입력) 3
b : 입력) 2
5
6.4 입력 값을 변수 두 개에 저장하기
- input()함수는 한 개의 변수에만 저장하는게 가능했지만 split() 함수는 변수 여러개를 저장 할수 있게 한다.
a, b = input('문자열 두 개를 입력하세요: ').split() print(a) print(b)
입력) Hi JaeWoo
Hi
JaeWoo
- 공백이 아닌 다른 문자를 기준으로 분리할 때에는 split()안에 기준 값을 작성하면 된다.
a, b = input('문자열 두 개를 입력하세요: ').split(',') print(a) print(b)
입력) Hi JaeWoo , My name is Rose
Hi JaeWoo
My name is Rose
- input()함수로 숫자값을 저장 할 때엔 int()함수를 바로 씌워서 사용 가능했지만 split()함수로 숫자를 저장 할 때에는 각 값에 따로 int()함수를 적용 시켜야한다.
#a,b = int(input('숫자 두 개를 입력하세요: ').split()) -> 에러 a,b = input('숫자 두 개를 입력하세요: ').split() print(int(a)+int(b))
입력) 10 30
40
이마저도 번거로우면 map()함수를 사용하면 된다.
a,b = map(int, input('숫자 두 개를 입력하세요: ').split()) print(a+b)
입력) 10 2
12
- 실수 값을 출력 하려면 int자리에 float을 작성하면 된다.
6.5 퀴즈
- 다음 중 변수를 만드는 방법으로 올바른 것을 고르세요.
- int x = 10
- 10 = x
- x = 10
- x <- 10
- x(10)
정답 : 3
풀이 : 변수이름을 먼저 선언 하고 = 뒤에 변수의 값을 지정한다.
- 다음 중 변수 이름으로 사용할 수 없는 것을 모두 고르세요.
- 300
- _53A
- if
- z
- H-80
- _hello3
- 30seconds
- 99%
정답 : 1,3,5,7,8
풀이 : 1,7,8 - 변수이름이 숫자로 시작 할 수 없다. 3 - 파이썬에서 사용하는 구문은 변수 이름으로 사용할 수 없다. 5 - 특수문자는 변수이름으로 사용 할 수 없다.
- 다음 중 변수와 연산자의 사용 방법으로 올바르지 않은 것을 모두 고르세요(파이썬 3).
a = 20 b = 30
- c = -a
- b + = a
- c = a // b
- c -= b
- c = a + 10
정답 : 2, 4
풀이 : 2 - 할당연산자는 += 이런 식으로 붙여서 사용해야 한다. 4 - c 변수의 값이 지정 되지 않았는데 c = c - b 과 같이 지정 해버리면 값을 구할 수 없다.
- 다음과 같이 값이 두 개 입력됩니다. 입력된 값을 실수로 변환하여 변수 두 개에 저장하는 방법을 고르세요.
1.5 2.7
- a, b = input('실수를 입력하세요: ')
- a = input('실수를 입력하세요: ')
- b = input('실수를 입력하세요: ')
- a, b = input('실수를 입력하세요: ').split()
- a, b = map(float, input('실수를 입력하세요: ').split())
- input(a, b, ' ')
정답 : 5
풀이 : 입력된 값을 변수 두 개에 저장 하려면 input().split 함수를 사용해야 하고 이 값을 실수로 변환 하려면 map()으로 한번에 변환하면 된다. 또한 실수로 변환해야 하니 flaot을 사용하면 5번과 같은 답이 나온다.
6.6 연습문제: 정수 세 개를 입력받고 합계 출력하기
- 다음 소스 코드를 완성하여 정수 세 개를 입력받고 합계가 출력되게 만드세요
________________________ print(a + b + c)
-결과- 입력) -10 20 30 40
답 : a,b,c = map(int, input('숫자 3개를 입력해 주세요.').split())
풀이 : 변수 a,b,c에 값을 입력받아 int형으로 변환해야 하니깐 우선 변수 a,b,c를 선언하고 input().split()으로 값을 입력받는 코드를 작성한다. 그 이후에 map()으로 감싸고 int형으로 변환되게 만들어주면 문제가 원하는 값이 나온다.
6.7 심사문제: 변수 만들기
- 다음 소스 코드를 완성하여 50, 100, None이 각 줄에 출력되게 만드세요.
답 : a,b,c = 50,100,'None' print(a) print(b) print(c)
6.8 심사문제: 평균점수 구하기
- 표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 평균 점수를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 평균 점수를 출력할 때는 소수점 이하 자리는 버립니다(정수로 출력).
예) 입력) 83 92 87 90 결과) 88
답 : a,b,c,d = map(int, input().split()) print((a+b+c+d)//4)
풀이 : 국어,영어,수학,과학 점수를 입력받아 저장할 변수를 선언하고 입력받은 값을 정수값으로 변환하여 출력할 때에 계산을 하는 코드로 작성하였다.