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
'''
'\'를 이용해 특수한 문자들의 기능을 없앨 수 있다.
코드 | 설명 |
---|---|
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(")를 그대로 표현할 때 사용 |
\r | 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) |
\f | 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동) |
\a | 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다) |
\b | 백 스페이스 |
\000 | 널 문자 |
값의 예 | 참 or 거짓 |
---|---|
0 | 거짓 |
1 | 참 |
True | 참 |
False | 거짓 |
[] | 거짓 |
[1,2,3,4,5] | 참 |
() | 거짓 |
{} | 거짓 |
None | 거짓 |
"" | 거짓 |
"python" | 참 |
Python
은 다른 언어와 다르게 직관적으로 논리 연산자를 사용한다.
&&
> and
, ||
> or
, !
> not
논리 연산자 | 의미 |
---|---|
and | 둘 다 참일 때만 참을 반환하고, 나머지 경우에는 거짓을 반환함. |
or | 둘 다 거짓일 때만 거짓을 반환하고, 나머지 경우에는 참을 반환함. |
not | 참이면 거짓을 반환하고, 거짓이면 참을 반환함. |
Tuple
은 가장 단순한 여러 데이터 저장 자료형으로 (, )
로 데이터를 감싸서 표현한다.
Tuple
에는 0개 이상의 원소를 저장할 수 있다.
저장되는 자료형은 같지 않아도 되고, 다른 Tuple
도 포함할 수 있다.
한 번 Tuple
이 생성되면 그 내부의 원소를 삭제하거나 수정할 수는 없다.
프로그램 실행 중 절대 변하지 않거나 변해서는 안되는 여러 값들이 있다면 Tuple
에 저장하여 사용하는 것이 좋다.
Tuple
을 서로 더할 경우(+
) 두 튜플을 원소로 가지는 새로운 튜플을 생성하는 것이 아니라, 두 튜플의 원소만을 순서대로 가지는 새로운 튜플을 생성하여 반환한다.
Tuple
을 곱할 경우(*
) 해당 튜플의 원소를 반복하여 연결한 새로운 튜플을 생성하여 반환한다.
Tuple
의 Index는 첫번째 원소 부터 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
는 사전형 데이터를 의미하며, key
와 value
로 1:1 대응 시킨 자료형 이다.
Java의 Map과 유사
하나의 key
에는 하나의 value
만 대응된다.
key
값은 절대 변하지 않고, value
값은 변경 될 수 있다.
Tuple
과 달리 key
-value
쌍 자체를 수정, 삭제할 수 있어 유용하다.
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
는 [, ]
로 데이터를 감싸서 나타 내고, 0개 이상의 원소가 저장될 수 있다.
List
안에 List
를 저장할 수도 있다.
3차원, 4차원 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
은 중복되는 원소 없이, 순서 상관 없는 데이터의 묶음 자료형이다.
데이터 중복을 허용하지 않기에, 중복 원소는 하나만을 저장한다.
순서가 없기에 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}
'''
기본 구조는 아래와 같다.
text = "gil"
if text == "gil":
print("gil log??")
else :
print("oops")
# 실행결과 : gil log??
들여쓰기는 탭(tap) 또는 스페이스바(spacebar)를 사용하여 표현할 수 있다.
어떤 것을 사용해도 상관없으나 같은 코드 내에서는 탭이나 스페이스바 중 하나로 통일하여 사용하는 것이 좋다.
if: / else:
문의 맨 끝에는 콜론(:)을 반드시 기재해야 한다.
elif
는 자바에서 if ~ else if
를 생각하면 된다.
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("뱉다")
meet=0
while meet<4: # 유비가 제갈량을 방문횟수가 4보다 작을 동안 방문합니다.
meet = meet+1 # 방문횟수 증가
print("유비가 %d번 방문했습니다." % meet)
if meet == 3: # 세 번 만났기 때문에 방문을 종료함.
print("제갈량이 유비 곁으로 갑니다.")
break # while 문을 빠져나온다.
'''
실행결과
유비가 1번 방문했습니다.
유비가 2번 방문했습니다.
유비가 3번 방문했습니다.
제갈량이 유비 곁으로 갑니다.
'''
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