안녕하세요?

 

오늘은 파이썬 기초 함수인 round 함수에 대해 알아보겠습니다.

 

Round 함수

 

Round 함수는 정수, 실수 등 숫자형의 입력값에 대해 소숫점 n번째 자리에서 반올림을 해주는 함수입니다.

Round(number, digit) # 숫자와 반올림 할 자릿수

 

반올림할 숫자와 소숫점아래 남길 자리 수를 정해주면 됩니다.

 

round(2.91435, 4)
round(2.91435, 2)
round(2.91435)
2.9144
2.91
3

 

두 번째 인자인 자리수를 입력하지 않으면 default로 소숫점 첫째자리에서 반올림합니다.

 

감사합니다.

오늘은 파이썬의 기본이 되는 변수에 대해 알아보겠습니다.

 

변수

 

변수(variable)이란 중학교 수학에서 배우듯이 정해지지 않은 숫자를 의미합니다.

중학교 시간에 x, y라는 문자를 가지고 방정식을 풀고 함수를 그리고 했었죠.

방정식을 풀면 변수 x, y 값이 어떤 상수로 정해집니다.

 

파이썬에서 변수는 문자열, 숫자열, 리스트 등의 값을 지정해주는 문자입니다.

예를 들면, 'hello world'라는 문자열(string)을 그냥 쓸 수도 있지만, greeting이라는 변수에 지정(할당)할 수도 있습니다.

greeting = "Hello world" # 변수 지정
print("Hello world") # 그냥 출력
print(greeting) # 변수
Hello world 
Hello world

 

그냥 문자열을 그대로 출력할 수도 있고, 변수를 써서 출력할 수도 있습니다.

변수를 지정한다고 해서 출력이 되지는 않습니다.

변수의 장점은 어떤 값의 의미를 변수 이름을 지정할 수도 있고, 다시 사용할 때 매 번 값을 안 써도 된다는 점이 있습니다.

c = 25 # 현재 날씨의 온도 (섭씨)
f = c * (9/5) + 32 # 섭씨 -> 화씨 변환 공식
print('오늘 날씨는 화씨', f,'도 입니다.')
오늘 날씨는 화씨 77 도 입니다.

 

c라는 변수를 현재 섭씨 온도로 지정했기 때문에 자동으로 f라는 화씨 온도 변수가 계산되어 지정됩니다.

 

숫자뿐만 아니라 문자열이나 리스트도 변수로 지정할 수 있습니다.

my_str = '오늘 날씨 어때?'
my_list = ['오늘', '날씨', '어때?']

print(my_str)
print(my_list)
print(my_str.split())
오늘 날씨 어때
['오늘', '날씨', '어때']
['오늘', '날씨', '어때']

 

마지막 줄 예시처럼 변수에는 메소드를 적용해 다양한 기능을 쓸 수 있습니다. 

이 부분은 함수와 메소드를 정리할 때 자세히 정리해보도록 하겠습니다.

 

변수를 지정할 때 '='이라는 등호를 사용하게됩니다.

여기서 알아야 할 것은 수학에서 쓰이는 등호와 다른 의미라는 것입니다.

var1 = 10 # var1에 10 지정
print(10 == 10) # 10과 10이 같은가?
print(var1 == 10) # var1이 10과 같은가?
True
True

 

파이썬에서 '='는 '같다'라는 의미가 아니라 '정의한다'라는 의미입니다.

첫번째 줄은 var1라는 변수를 10으로 정의한다라고 볼 수 있습니다.

수학적 의미의 등호인 '같다'는 파이썬에서 '=='로 적습니다.

두번째 줄과 세번째 줄에 10과 10이 같은지, var1과 10이 같은지 참 거짓을 묻고 있습니다.

첫번째 줄에서 var1을 10으로 정의했기때문에 둘 다 True라는 출력이 나옵니다.

 

 

변수를 활용하면 파이썬에서 무궁무진하게 코드를 짤 수 있습니다.

 

더 필요한 내용은 추가적으로 수정하며 정리하겠습니다.

 

감사합니다.

오늘은 python의 기본적인 함수인 input 함수에 대해 정리해보겠습니다.

 

Input 함수

 

input()함수는 사용자가 컴퓨터에게 키보드로 입력한 정보를 전달해줄 수 있는 역할을 합니다.

다음에 정리할 '변수'라는 것에 input 함수를 지정하면 코드 실행시 내가 입력하는 값이 변수에 할당됩니다.

a = input() # 코드 실행 시, 키보드로 입력 가능

 

다른 함수들은 코드 실행시 코드를 짠 대로 알아서 동작하지만, input 함수를 사용하면 사용자가 입력할 때까지 동작하지 않고, 또 입력 값에따라 결과가 달라지는 반응형 동작을 하게 됩니다.

입력을 하고나면, 위의 코드에서는 a라는 변수에 입력 값이 저장됩니다.

 

주의해야할 점은 input함수로 받아들인 문자는 모두 자동으로 문자형으로 적용됩니다.

예를 들면, 위의 코드에서 2를 입력해도 '2'를 입력한 것과 동일하게 적용되기 때문에 사칙연산을 하려면 아래와 같이 함수를 사용해야 합니다.

a = int(input()) # 정수형 변환
b = float(input()) # 실수형 변환
print(a + b)

 

문자열로 받은 입력 값을 각각 정수와 실수로 변환하였습니다.

이제 세번째 줄을 작성하면 우리가 아는 덧셈을 연산할 수 있습니다.

 

한 번에 여러 개의 입력값을 받고 싶을 때는 어떻게 해야할까요?

a, b, c = input().split() # 띄어쓰기 기준으로 분할
print(a, b, c, sep='\n')

 

위와 같이 split이라는 메소드를 붙여주면 가능합니다. 앞의 변수 갯수 만큼 입력이 가능하고, 순서대로 저장됩니다.

코드롤 실행시켜봅시다.

1 2 3 # 입력값
1
2
3

 

1, 2, 3을 띄어쓰기 기준으로 첫째 줄과 같이 입력하면, 위와같이 출력됩니다.

split()안의 기호는 입력값을 구분하게 해주는 문자를 정합니다. 위와같이 괄호 안에 안 넣으면 공백기준으로 분할되고, 문자를 넣으면 아래와 같이 입력값이 구분됩니다.

a, b, c = input().split(',') # 콤마 기준으로 분할
print(a, b, c, sep='\n')
1,2,3 # 입력값
1
2
3

 

split 메소드를 써서 여러 개의 입력값들을 한 번에 받을 때, 이 값들은 기본적으로 문자형(string)으로 저장됩니다.

숫자 연산을 하기위해 숫자형으로 지정하려면 map 함수를 사용하면 됩니다.

a, b, c = map(int, input().split()) # input들을 int(정수)로 mapping
print(a, b, c, a+b+c)
1 2 3 # 입력값
1 2 3 6 # 1+2+3=6

 

이는 input 값들이 기본적으로 리스트로 저장되기 때문인데, 추후 리스트를 정리할 때 map 함수를 한 번 더 정리 해보겠습니다.

 

한 번에 여러 입력을 받지 않고 차례대로 받으려면 어떻게 할까요?

a = input()
b = input()
print(a, b)

 

input을 나눠서 지정해주면 됩니다.

똑같이 실행시켜보겠습니다.

1  # 입력값
2  # 입력값
1 2

 

첫째 줄에 먼저 1을 입력하고, 그러고나서 2를 입력하면 순서대로 print됩니다.

 

 

input() 함수를 이용하면 입력값을 정해주지 않고 직접 받아 상황에따라 다르게 출력되는 재밌는 알고리즘을 짤 수 있습니다.

 

추가할 내용은 수정하며 정리하겠습니다.

 

감사합니다.

 

자료형

 

Python에는 크게 네 가지의 자료형이 있습니다.

10 # 숫자 자료형
'text' # 문자 자료형
[1, 2, 3] # 리스트 자료형
True # 불 자료형

 

1. 숫자 자료형은 정수 , 실수를 포함하는 문자입니다.

수학에서 쓰이는 연산 가능한 숫자들이 포함됩니다.

정수의 경우 integer의 약자인 int를 사용해서 정수 선언이 가능합니다.

실수의 경우 float을 사용해서 선언이 가능합니다.

예를 들면, 다음 시간에 다룰 input()이라는 함수를 이용해 어떤 수를 받아 들일 때, 연산을 가능하게 하려면 숫자 자료형으로 선언을 해줘야합니다.

int(input()) # 정수 선언
float(input()) # 실수 선언

 

input() 함수는 기본적으로 문자 자료형으로 받아오기때문에, 위와 같은 과정을 통해 수학 연산이 가능해집니다.

 

2. 문자 자료형은 따옴표로 표현되는 글자입니다. string이라고 하고, str로 문자 자료형 선언이 가능합니다.

Python에서 주의 해야할 것은 한글이나 영어를 입력하고 싶으면 무조건 따옴표 안에 넣어야 합니다.

Hello world # error
'Hello world'

 

첫번째 줄같이 따옴표를 넣지 않으면 에러가 뜹니다.

따옴표를 넣지 않는 글자는 변수로 인식되기 때문에 따옴표를 주의해야합니다!

큰 따옴표와 작은 따옴표 상관 없습니다. 양 끝이 같기만 하면 됩니다.

print('"I love python!"')
print("""I love
python, also
c++ too""")
I love python!
I love 
python, also
c++ too

 

따옴표를 문자열로 저장하고 싶다면, 큰 따옴표 안에 넣어주면 되고 반대도 마찬가지입니다.

그리고 따옴표나 큰 따옴표를 세 개 연속으로 사용하면, 엔터키가 반영되어 문자열이 인식됩니다.

 

3. 리스트 자료형은 시퀀스(sequence)라고 하기도 하고, 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary)를 포함합니다.

[1, 2, 3] # 리스트 (대괄호)
(1, 2, 3) # 튜플 (소괄호)
{'a' : 1, 'b' : 2, 'c' : 3} # 딕셔너리 (중괄호)

 

세 가지 모두 괄호 안에 원소들을 포함하는 집합 같은 개념입니다. 집합과 다르게 원소가 중복되어도 모두 원소로 간주됩니다.

기본적으로 제일 많이 쓰이는 건 리스트이고, 자세한 개념은 뒤에 정리하겠습니다. 괄호의 종류에 따라 달라지기때문에 대괄호, 중괄호, 소괄호를 잘 구분해서 사용해야합니다.

 

4. 마지막으로 불 자료형(Boolean)은 참과 거짓을 나타냅니다.

1 + 1 == 2 # 참
print(1 + 1 != 2) # 거짓
print(not(1 + 1 != 2) # 거짓의 반대 -> 참
my_list = [1, 2, 3]
print(1 in my_list) # 참
print(1 not in my_list) # 거짓
False
True
True
False

 

기본적으로 사칙연산, 포함관계 등의 사실관계를 나타낼 수 있습니다.

True나 False로 표현되고, 마지막 두 줄의 경우 1이라는 숫자가 my_list에 포함 유무에 대해 참 거짓을 표현하였습니다.

사실관계를 반대로 표현하고 싶다면 not을 쓰면 됩니다.

 

어떤 변수나 문자가 무슨 자료형인지 알고 싶다면 type 함수를 사용하면 알려줍니다.

print(type(2)) # 'int' 출력
print(type('hello world')) # 'str' 출력

 

처음에 자료형이 헷갈려서 에러를 많이 내는데, 위 방식대로 확인하는 것도 좋은 방법입니다.

 

모든 자료형은 연산이 가능합니다.

print(5 + 5) # 10 출력
print('5' + '5') # 55 출력
print([5] + [5]) # [5, 5] 출력

 

우리가 사칙연산에서 쓰는 더하기의 결과는 첫번째 줄에서 볼 수 있습니다. 숫자 자료형끼리 덧셈을 하기 때문이죠.

두번째 줄처럼 문자를 더한다고 해서 error가 뜨지 않습니다. 단, 여기선 더하기가 말 그대로 문자를 잇는 역할만 합니다.

세번째 줄의 리스트의 경우, 덧셈을 하면 원소를 합친 리스트가 만들어 집니다.

 

곱하기도 비슷합니다.

print(5 * 5) # 25 출력
print('5' * 5) # 55555 출력
print([5] * 5) # [5, 5, 5, 5, 5] 출력

 

덧셈과 비슷하게 문자형과 리스트형에도 적용이 됩니다. 단, 문자끼리나 리스트끼리 곱셈은 할 수 없습니다. 그리고 뺄셈과 나눗셈도 문자와 리스트형에는 사용할 수 없습니다.

 

python에서 자료형을 잘 못 정하면 오류가 생기기때문에 어떤 자료형이 있는지 알고 각각의 상황에서 잘 사용하면 되겠습니다.

 

 

추가적인 필요한 정보는 수정하면서 정리하겠습니다.

 

감사합니다.

 

 

오늘은 Python 기본 함수인 print 함수에 대해 정리해보도록하겠습니다.

 

 

Print 함수

print('Hello world')
print("Hello world") # '와 "를 동시에 쓰지 않도록 주의

 

위 두 입력은 모두 Hello word라는 출력을 나타냅니다.

문자열(String)을 출력하고 싶다면 작은 따옴표나 큰 따옴표를 양 단에 붙이고 print() 함수 안에 넣으면 됩니다. 단, 양 끝에 짝을 맞춰야합니다.

그럼 작은 따옴표나 큰 따옴표를 출력하고 싶으면 어떻게 해야할까요?

아래와 같이 사용하면 됩니다.

print('"') # 큰 따옴표 " 출력
print("'") # 작은 따옴표 ' 출력

 

문자열을 제외한 정수(int), 실수(float), 변수 등은 따옴표 없이 그냥 괄호 안에 넣으면 됩니다.

print(20) # 정수 출력
print(3.14) # 실수 출력
a = '변수입니다.'
print(a) # 변수 출력

 

쉼표를 사용하면 여러 개의 입력을 동시에 출력이 가능합니다.

단, 쉼표를 사용하면 띄어쓰기가 자동으로 들어가게 됩니다.

print('Hello','world') # Hello world 출력
print(2,'+',4,'=',6) # 2 + 4 = 6 출력

 

그럼 띄어쓰기 없이 붙여쓰고 싶을 때는 어떻게 하면 될까요?

print 괄호 안 마지막에 'sep='을 넣어주면서 입력 문자 사이에 무엇이 들어갈 지 정의해주면됩니다.

붙여쓰고 싶을 때는 공백을 넣어주면 됩니다.

print(2,'+',4,'=',6,sep='') # 2+4=6 출력
print(2,'+',4,'=',6,sep='_') # 2_+_4_=_6 출력
print(2,'+',4,'=',6,sep='\n')
# 2
# +
# 4
# =
# 6 출력

 

sep=''을 넣으면 다 붙여써지고, sep=' '을 넣으면 모든 글자 사이에 띄어쓰기가 생깁니다.

마지막 코드와 같이 모든 문자사이에 줄을 바꾸고싶다면 (엔터를 매 번 치고싶다면) sep='\n'을 넣어주면 됩니다.

 

'\n'와 같은 문자를 이스케이프 문자라고 하고, 키보드로 입력하기 어렵거나 번거로운 문자를 나타내줍니다.

print("나는\n코딩마스터") # 줄바꿈
print("나는\t코딩마스터") # 탭
print("나는\\코딩마스터") # \ 기호
print("나는\'코딩마스터") # ' 기호
print("나는\"코딩마스터") # " 기호
print("나는\
코딩마스터") # 다음 줄 연결
나는
코딩마스터
나는	코딩마스터
나는\코딩마스터
나는'코딩마스터
나는"코딩마스터
나는코딩마스터

 

 

문자열, 변수, 정수 등을 print 함수에서 같이 쓰는 방법은 쉼표를 쓰는 것 말고도 포맷팅(formatting)이라는 방법이 있습니다.

str1 = "오늘" # 문자열
num1 = 25 # 정수
print("%s 날씨는 덥습니다." % str1) # 문자열 포맷팅
print("기온은 %d도 입니다." % num1) # 정수형 포맷팅
print("%s 날씨는 %d도 안팎이 예상됩니다." % (str1, num1)) # 여러 개 한 번에 포맷팅 가능
print("원주율은 %f로 시작해" % 3.141592) # 실수형 포맷팅
print("성적이 %c가 나왔어" % "C") # 문자 또는 기호 한 개 포맷팅
print("코스피가 %d%% 올랐습니다.") # % 기호 사용 시 %% 삽입
오늘 날씨는 덥습니다.
기온은 25도 입니다.
오늘 날씨는 25도 안팎이 예상됩니다.
원주율은 3.141592로 시작해
성적이 C가 나왔어
코스피가 25% 올랐습니다.

 

변수들을 바꿔가며 여러 번 출력할 때 유용하겠죠?

자료형별로 다양하게 사용할 수 있으니 상황에 따라 잘 쓰시면 됩니다.

 

 

원하는 대로 잘 안되거나 에러가 뜨는 경우 쉼표, 따옴표를 잘 사용했는지 다시 한 번 확인하면 됩니다.

 

추가할 내용이 생기면 수정하면서 계속 정리하겠습니다.

 

감사합니다.

+ Recent posts