[Python] 자료형, 제어문, 기본 함수 정리

GilLog·2020년 12월 11일
0

Python

목록 보기
4/18

🙆‍♂️ import 🙇‍♂️

점프 투 파이썬

주석

Python에서 주석은 들여쓰기를 해주어야 한다.

Python은 들여쓰기로 if문, 함수 끝 의 범위를 인식하는데 주석도 마찬가지로 들여쓰기를 통해서 어느 함수의 주석인지를 구분하게 된다.

    '''
    Python 주석 들여쓰기 맞춰주기
    '''
    def_init_(self):
        a = 10
        b = 20

한줄 주석 : #

# 이후 한칸을 띄우고 한줄 주석에 들어갈 글을 작성하면 된다.
한칸을 띄우는 것이 추천 사항

여러줄 주석 : """ 내용 """, ''' 내용 '''

""", ''' 으로 문장을 감싸주면 여러줄 주석이 가능하다.

주석 단축키

파이참, vscode, vs 등 대부분 idle에서의 주석 단축키는 Windows에서 CTRL + /, MacOS에서 Command + / 이다.

자료형

변수

Python에서는 변수를 선언 할 때 자료형을 지정하지 않는다.

하지만 'Python에는 자료형이 없다.'라는 말은 잘못된 말이다.
Python에도 엄연히 자료형이 존재하며, 문법을 통해 강제하지 않을 뿐 자료형은 Python에서 여전히 중요

변수를 선언하는 방법은 변수의 이름을 선언하면 끝이다.

a = 1 + 22
b = "gillog"

print(a)
print(b)

# 실행 결과
"""
23
gillog
"""

숫자형

실수형이 포함된 연산은 항상 실수형 결과물로 반환된다.

16진법 표기를 명시 하기 위해선 숫자 앞에 0x를 붙여 주어야 한다.

연산자

+, -, /, % 연산은 모두 다른 언어와 같다.
Python에서 /연산은 항상 일관되게 해당 나눗셈 연산에 대한 '값'반환

나눗셈의 몫 : //

print(7 / 4)
print(7 // 4)

'''
연산결과
1.75
1
'''

제곱 연산 : **

문자열

문자열 연산으로 +*가 있다.

a = "gil"
b = "log"
c = "python"

print (a+b+ c)
print((a+b) * 2)

'''
실행결과
gillogpython
gilloggillog
'''

'\'를 이용해 특수한 문자들의 기능을 없앨 수 있다.

  • Escape Code
코드설명
\n문자열 안에서 줄을 바꿀 때 사용
\t문자열 사이에 탭 간격을 줄 때 사용
\\문자 \를 그대로 표현할 때 사용
\'작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b백 스페이스
\000널 문자

Boolean

값의 예참 or 거짓
0거짓
1
True
False거짓
[]거짓
[1,2,3,4,5]
()거짓
{}거짓
None거짓
""거짓
"python"

논리 연산자

Python은 다른 언어와 다르게 직관적으로 논리 연산자를 사용한다.
&& > and, || > or, ! > not

논리 연산자의미
and둘 다 참일 때만 참을 반환하고, 나머지 경우에는 거짓을 반환함.
or둘 다 거짓일 때만 거짓을 반환하고, 나머지 경우에는 참을 반환함.
not참이면 거짓을 반환하고, 거짓이면 참을 반환함.

Tuple

Tuple은 가장 단순한 여러 데이터 저장 자료형으로 (, )로 데이터를 감싸서 표현한다.

Tuple에는 0개 이상의 원소를 저장할 수 있다.

저장되는 자료형은 같지 않아도 되고, 다른 Tuple도 포함할 수 있다.

한 번 Tuple이 생성되면 그 내부의 원소를 삭제하거나 수정할 수는 없다.

프로그램 실행 중 절대 변하지 않거나 변해서는 안되는 여러 값들이 있다면 Tuple에 저장하여 사용하는 것이 좋다.

Tuple을 서로 더할 경우(+) 두 튜플을 원소로 가지는 새로운 튜플을 생성하는 것이 아니라, 두 튜플의 원소만을 순서대로 가지는 새로운 튜플을 생성하여 반환한다.

Tuple을 곱할 경우(*) 해당 튜플의 원소를 반복하여 연결한 새로운 튜플을 생성하여 반환한다.

TupleIndex는 첫번째 원소 부터 0으로 시작한다.

tuple1 = (1, "gil")
tuple2 = (2, "log")

tuplePlus = tuple1 + tuple2

tupleMultiple = tuple1 * 3

tupleIndex = tuple1[0]

print(tuple1)
print(tuple2)
print(tuplePlus)
print(tupleMultiple)
print(tupleIndex)

'''
실행결과
(1, 'gil')
(2, 'log')
(1, 'gil', 2, 'log')
(1, 'gil', 1, 'gil', 1, 'gil')
1
'''

Dictionary

Dictionary사전형 데이터를 의미하며, keyvalue로 1:1 대응 시킨 자료형 이다.
Java의 Map과 유사

하나의 key에는 하나의 value만 대응된다.

key값은 절대 변하지 않고, value 값은 변경 될 수 있다.

Tuple과 달리 key-value 쌍 자체를 수정, 삭제할 수 있어 유용하다.

Dictionary 함수

  • keys() 함수 : 해당 사전형 데이터에 저장된 key 값들을 리스트의 형태로 반환한다.
    해당 사전형 데이터에 무슨 key 값들이 포함되어 있는지 모를 때 유용하게 사용할 수 있다.

  • in 키워드 : 해당 리스트에 특정 값이 포함되어 있는지 여부를 알 수 있다.
    해당 리스트의 특정 값이 존재할 경우에는 True를 반환하며, 존재하지 않을 경우에는 False를 반환한다.

  • values() 함수 : 해당 사전형 데이터에 저장된 모든 value 값들을 리스트의 형태로 반환한다.

  • items() 함수 : 해당 사전형 데이터에 저장된 모든 key-value 쌍을 리스트의 형태로 반환한다.

dictionary = {1 : "gil",
              2 : "log",
              3 : "is",
              4 : "best"}

print(dictionary[1])
print(dictionary[2])
print(dictionary[3])
print(dictionary[4])
print(dictionary)

print(dictionary.keys())
print(0 in dictionary.keys())
print(dictionary.values())
print(dictionary.items())
'''
실행결과
gil
log
is
best
{1: 'gil', 2: 'log', 3: 'is', 4: 'best'}

dict_keys([1, 2, 3, 4])
False
dict_values(['gil', 'log', 'is', 'best'])
dict_items([(1, 'gil'), (2, 'log'), (3, 'is'), (4, 'best')])


'''

List

List는 연속적으로 저장되는 형태의 자료형이다.
저장되는 요소들이 모두 같은 자료형일 필요 없다.

List[, ]로 데이터를 감싸서 나타 내고, 0개 이상의 원소가 저장될 수 있다.

List안에 List를 저장할 수도 있다.
3차원, 4차원 List도 가능하다.

List 함수

  • sort() 함수 : 해당 리스트에 저장된 원소들을 오름차순으로 정렬한다.
    숫자끼리 데이터나 문자열끼리 데이터는 잘 작동, 여러 타입이 저장되어있는 경우 동작 하지 않을 수 있다.

  • reverse() 함수 : 해당 리스트 저장된 원소들의 순서를 정반대로 뒤집는다.

  • append() 함수 : 해당 리스트 맨 마지막 위치에 전달받은 데이터를 추가한다.

listOne = [10, 40, 20, 50]

listTwo = [11, 51, 21, 41]

listName = ["gil", "yeo", "kim", "hong"]

listList = [listOne, listTwo, listName]

print(listOne)
print(listTwo)
print(listName)
print(listList)

listOne.sort()
listTwo.reverse()

print(listOne)
print(listTwo)

del listOne[0]

listOne.append(77)

print(listOne)

'''
실행결과
[10, 40, 20, 50]
[11, 51, 21, 41]
['gil', 'yeo', 'kim', 'hong']
[[10, 40, 20, 50], [11, 51, 21, 41], ['gil', 'yeo', 'kim', 'hong']]
[10, 20, 40, 50]
[41, 21, 51, 11]
[20, 40, 50, 77]
'''

Set

Set은 중복되는 원소 없이, 순서 상관 없는 데이터의 묶음 자료형이다.

데이터 중복을 허용하지 않기에, 중복 원소는 하나만을 저장한다.

순서가 없기에 Index를 통한 특정 값 접근도 불가능하다.

{, }를 이용해 생성하거나, set() 함수를 이용해 list나 문자열 등을 set으로 생성할 수도 있다.

set의 교집합은 &연산자를 사용하여, 합집합은 | 연산자를 사용하여, 차집합은 연산자를 사용하여 표현한다.

myList = [22, 44, 77, 99]

setOne = set(myList)

print(setOne)

setTwo = {1, 2, 3}

setThree = {3, 3, 3}

print(setTwo, setThree, setTwo - setThree)
print(setTwo, setThree, setTwo & setThree)
print(setTwo, setThree, setTwo | setThree)

'''
실행결과
{99, 44, 77, 22}
{1, 2, 3} {3} {1, 2}
{1, 2, 3} {3} {3}
{1, 2, 3} {3} {1, 2, 3}
'''

제어문

if

기본 구조는 아래와 같다.

text = "gil"
if text == "gil":
    print("gil log??")
else :
    print("oops")
    
# 실행결과 : gil log??

들여쓰기는 탭(tap) 또는 스페이스바(spacebar)를 사용하여 표현할 수 있다.
어떤 것을 사용해도 상관없으나 같은 코드 내에서는 탭이나 스페이스바 중 하나로 통일하여 사용하는 것이 좋다.

if: / else: 문의 맨 끝에는 콜론(:)을 반드시 기재해야 한다.

elif

elif는 자바에서 if ~ else if를 생각하면 된다.

a in b, a not in b

Python에서만 사용할 수 있는 조건문으로 a in b, a not in b이 있다.

>>> a in ['a','b','c']

False

>>> 'a' in ['a','b','c']

True

>>> 'a' not in ['a','b','c']

False


#########

box =['candy','chocolate','coke']

if 'candy' in box:

    print("삼키다") #pass

else:

    print("뱉다")

while

meet=0

while meet<4:            # 유비가 제갈량을 방문횟수가 4보다 작을 동안 방문합니다.

    meet = meet+1        # 방문횟수 증가

    print("유비가 %d번 방문했습니다." % meet)

    if meet == 3:        # 세 번 만났기 때문에 방문을 종료함.

        print("제갈량이 유비 곁으로 갑니다.")

        break            # while 문을 빠져나온다.
        
'''
실행결과
유비가 1번 방문했습니다.
유비가 2번 방문했습니다.
유비가 3번 방문했습니다.
제갈량이 유비 곁으로 갑니다.
'''

for

range 함수는 range(시작 숫자, 마지막 숫자)의 형태로 사용되며, 예를 들어 range(1,5)는 1, 2, 3, 4의 숫자의 나열을 의미한다.
시작 숫자부터 (마지막 숫자 - 1) 까지의 숫자의 나열을 의미하며, 이때 마지막 숫자는 포함되지 않는다.

tempList = ['유비', '관우', '장비', '제갈량']

for i in tempList:

    print(i)

'''
실행결과
유비
관우
장비
제갈량
'''

###
i = [(1,2),(3,4),(5,6)]

for (first,last) in i:
    print(first+last)
    
'''
실행결과
3
7
11
'''

###
sum = 0

for a in range(1,5):

    sum = sum + a

print(sum)

#실행결과 : 10

함수

Python에서 함수 구조는 아래와 같다.

def 함수이름(인수):
    실행문1
    실행문2
    실행문3
    
# 함수 예제
def sum(a, b):
    return a + b
    
print(sum(1, 22))

# 실행결과 : 23

매개변수가 고정되지 않는 경우

함수 매개변수 괄호 안에 *을 통해 아래와 같이 표현할 수 있다.

def sumMany(*numbers):
    sum = 0
    for i in numbers:
        sum = sum + i
    return sum

sumOneToTen = sumMany(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(sumOneToTen)

# 실행결과 : 55
profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/

0개의 댓글