1 분 소요




🦋 문자열과 숫자 입력받기


이름을 문자열로 입력받아 화면에 출력해보는 프로그램을 만들어보자

print('이름을 입력하세요.: ', end='')  
name = input()  
print(f'안녕하세요?{name}님.')


실행결과



input() 함수는 키보드로 문자열을 입력받아 반환. 실행 결과와 같이 input() 함수를 호출하면

입력받은 문자열형(str)의 ‘양희정’을 얻을 수 있고, 그 문자열이 name에 대입된다.

이 문제는 input() 함수에 문자열을 전달하여 ‘input(문자열)’과 같이 호출할 수 있음을 보여준다.

이렇게 하면 print() 함수 호출을 생략가능하다.

하지만 실습 세 정수의 최댓값 구하기로 돌아가 보면 a,b,c에 저장해야할 데이터의 자료형은 문자열이 아니라 10진수 정수이다. 그런데 input() 함수는 문자열을 반환한다. 따라서 이는 문자열을 10진수 정수형으로 반환해야한다 .! 이 때 int() 함수를 사용한다. !

문자열형을 정수형으로 변환하는 과정을 **형 변환**(type conversion)이라고 한다.세 정수의 최댓값 구하기에서도 정수로 형 변환을 하기 위해 int(input())으로 작성하였다. (^^! )

int() 함수는 ‘int(문자열)’과 같이 문자열을 전달받는다. 이는 함수의 실행 결과로 10진수 정수형을 얻을 수 있다. 참고로 2진수,8진수,10진수,16진수를 나타내는 문자열을 각각 정수로 변환할 때는 ‘int(문자열,진수)’와 같이 2개의 인수를 전달하면 된다. 이와 비슷한 예로 float() 함수는 ‘float(문자열)’ 과 같이 문자열을 전달받고 실행 결과로 실수형을 반환한다.

다음은 문자열을 정수로 형 변환을 한 예다

a=int('17') #10진수 문자열을 10진수 정수형으로 변환(기본)  
print(a)  
b=int('0b110',2) #2진수 문자열을 10진수 정수형으로 변환  
print(b)  
c=int('0o75',8) #8진수 문자열을 10진수 정수형으로 변환  
print(c)  
d=int('13',10) #10진수 문자열을 10진수 정수형으로 변환  
print(d)  
e=int('0x3F',16) #16진수 문자열을 10진수 정수형으로 변환  
print(e)  
f=float('3.14') #문자열을 실수형으로 변환  
print(f)


만약 숫자로 변환할 수 없는 문자열을 int(),float() 함수에 전달하면 (예를 들어 int('LOVE'),float('5X.2') 등) 은 오류가 발생한다




float는 부동 소수점 방식!


부동 소수점(floating point)는 컴퓨터에서 실수를 근삿값으로 표현할 때 사용한다. 부동 소수점 방식은 실수를 가수 부분과 지수 부분으로 나누어 표현하는 것을 말한다. 이 때 가수 부분은 유효 숫자를 나타내고 지수 부분은 소수점의 위치를 나타낸다. 부동 소수점 방식은 고정 소수점 방식보다 넓은 범위의 수를 나타낼 수 있어서 과학 또는 수학 계산을 할 때 많이 이용된다. 하지만 근삿값으로 표현되는 점과 고정 소수점 방식보다 연산 속도가 느리다는 점 때문에 부동 소수점 방식을 위한 별도의 연산 장치를 두는 경우가 다반수

출처 : 자료구조와 함께 배우는 알고리즘 입문 파이썬편

댓글남기기