Python 기초 노트

two_jay·2020년 10월 1일
0

Basic Python

목록 보기
1/6
post-thumbnail

 

변수

파이선에서는 변수를 간단하게 '=' 을 이용하여 선언할 수 있다. 자바스크립트가 let, const로 변수와 상수를 선언할 수 있던 것과는 달리 파이선에서는 상수를 선언할 수 없다. (다만 구현은 할 수 있다.)


name = 'kim'
age = 30

print(name) # 'kim'
print(age) # 30

 

출력

print 명령어로 출력을 할 수 있다.


print(출력대상)


# 삼행시를 지어보자
print("죠스바")
print("스윽 보니깐")
print("바밤바")

"""
출력 :
죠스바
스윽 보니깐
바밤바
"""

 

입력

입력은 input() 명령어로 가능하다. print()가 컴퓨터에서 유저에게 어떠한 정보를 출력하여 전달하여주는 것과 같이, input()은 유저가 컴퓨터에게 특정한 값을 전달하여 줄 수 있는 명령어이다. 코드의 실행 이후 input() 명령어를 발견하면 코드의 진행이 멈추어지고, 유저가 터미널에 input()에 들어갈 값을 넣을 수 있다.

input()을 이용하여 들어간 값은 모두 문자열로 입력된다. 만약 문자열 이외의 숫자와 같은 다른 자료형으로 입력하고자 한다면 입력 이후의 형변환이 필요하다.


# input()을 이용해서 입력을 넣고, 이를 변수 var에 담는다.
var = input()
# 터미널에 넣은 값을 앵무새가 말할 것이다.
print("앵무새 :", var)

--------------------------------------
터미널 입력값을 넣어주세요
-> 30
"앵무새 : 30"

 

자료형

파이선에서 기본적인 자료형으로 숫자열, 문자열, 리스트, 딕셔너리가 있다. 각각의 상세는 아래와 같다.

숫자열

숫자열은 정수, 실수, 복소수를 지원한다. 숫자열은 사칙연산을 통해 연산이 가능하다.


정수 = 3
실수 = 4.5
복소수 = 5+4j


숫자형은 연산자를 통해 아래와 같이 연산이 가능하다.

print(5+5) # 10
print(5-3) # 2
print(10*2) # 20
print(300/6) # 50

이외에도 아래와 같은 연산이 가능하다

// : 몫연산자 - 연산을 한 뒤 나머지는 버리고 몫만 반환한다.
print(13//2) # 6
% : 나머지 연산자 - 연산을 한 뒤 몫은 버리고 나머지만 반환한다.
print(10%3) # 1
** : 제곱 연산자
print(2**4) # 16

문자열

문자열은 해당 문자를 "", 혹은 ''로 감싸서 만들 수 있다. 문자열은 내부에서 인덱스를 가지며, 인덱스를 이용해서 문자열 안의 요소를 따로 조회할 수 있다. 문자열은 사칙연산의 전부는 지원하지 않지만, +와 *로 문자열만의 자체 연산이 가능하다. 문자열에서 일부만 따로 떼네어오는 slice를 기본적으로 지원한다.


print("Hello World!")
print("3.141592")

# '문자열'+'문자열' = 이어붙이기
print("Hello "+"world") # "Hello World"
# '문자열'*숫자열 = 반복하기
print("Hello "*3) # "Hello Hello Hello "

# 문자열은 인덱싱으로 개별요소를 출력하거나 조회할 수 있다.
name = "John"
print(name[1]) # o

"""
문자열의 슬라이스는 아래와 같이 할 수 있다.
대상문자열[시작하는 인덱스:슬라이스 연산을 끝낼 인덱스]
"""
name = "jeongjun"
print(name[0:5]) # jeong // 4번째 인덱스까지 포함하고 5번째 인덱스에서 연산이 종료된다.

단 자바스크립트와는 달리 문자열+숫자열의 연산은 지원하지 않는다.


print(10+"10")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-bc903a824501> in <module>()
----> 1 print("10"+10)

TypeError: must be str, not int

리스트

여러 자료를 순서를 가지며 보관하는 형태, 다른 언어군의 array와 상응하는 개념이다. 인덱싱으로 내부의 요소를 따로 조회할 수 있으며, 자바스크립트에서는 별도의 메소드로 보았던 concat(배열합산)과 slice(배열의 일부요소만 따로 떼어내는 것)가 기본적으로 지원된다.


emptyList = []
myList = [2, "Na", 35.3]
secondList = [3, 5]

# 인덱싱을 이용하여 개별요소의 조회와 출력이 가능하다
print(myList[0]) # 2
print(myList[2]) # 35.3

# 리스트는 + 연산자로 서로 합칠 수 있다.
print(myList+secondList) # [2, "Na", 35.3, 3, 5]
print(myList+[50]) # [2, "Na", 35.3, 50]

# 리스트도 문자열과 마찬가지로 slice를 할 수 있다.
print(myList[0:2]) # [2, "Na"] 

형변환

파이썬에서는 다양한 자료형이 있고, 이를 변환하여 줄 때가 필요하다. 파이썬에서는 아래와 같이 형변환 기능을 지원한다.

바꾸고_싶은_자료형(바꿀_자료)
"""
파이썬에서 지원하는 자료형은 다음과 같다.

int = 정수
float = 실수
str = 문자열
list = 리스트
"""

var1 = "354"
var2 = int(var1) # 문자형인 var1이 int로 자료형이 바뀐다.

print(type(var1)) # <class 'str'>
print(type(var2)) # <class 'int'>


"""
iterable한 문자열은 리스트로 변환이 가능하다.
이 경우, 문자열은 각 인덱스별로 구분되어 리스트의 각각의 요소로 분리된다.
"""

var3 = list(var1) # 문자열인 var1이 list로 자료형이 바뀐다.

print(var3) # ["3","5","4"]
print(type(var3)) # <class 'list'>
print(type(var3[0])) # <class 'str'>

"""
!! 숫자는 iterable하지 않기 때문에 list로의 형변환이 지원되지 않는다.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-12-5eaaf250e340> in <module>()
      1 var1 = "354"
      2 var2 = int(var1)
----> 3 var3 = list(var2)
      4 print(var3)
      5 print(type(var3))

TypeError: 'int' object is not iterable
"""

논리 자료형

파이썬에서도 비교연산자와 논리자료형, 논리자료형의 연산(and, or, not)을 지원한다.


"""
Boolean 자료형 - True와 False / 주어진 명제의 합불이 반환됨
비교연산자 : == != <= >= < >
"""

print(3 < 5) # True
print(3 == 5) # False


"""
and / or / not 연산자를 이용해서 다양한 논리자료형의 연산을 할 수 있다.

and : 다수의 명제가 모두 합할 때에 True가 출력된다.
or : 다수의 명제 중 하나의 명제라도 합할 때에 True가 출력된다.
not : 어떤 명제의 논리의 역을 반환한다. 즉 어떤 명제가 True면 False를, False면 True를 반환한다.
"""


print(3 < 5 and 3 != 5) # True
print(40 == 20 and 40 > 20) # False

print(3 < 5 or 3 != 5) # True
print(40 == 20 or 40 > 20) # True
print(30 != 30 or 20 != 20) # False

print(not 3 < 5) # False
print(not 3 == 5) # True
profile
2xx을 볼 때 가장 행복한 주니어 백엔드 개발자. 좋은 개발자가 되기위해 공부하고 있습니다. 포스팅의 오류 제보나 코멘트는 언제나 환영입니다. :)

0개의 댓글