2023. 2. 17. 05:59ㆍ파이썬
print()
- 어떤 값을 출력해주는 함수
idle에서 실습하면
====================
print('Hello world')
Hello world
print(1)
1
print([1,2,3])
[1, 2, 3]
print(1, 2, 3)
1 2 3
print(123)
123
print('python')
python
====================
print(1,2,3)을 보면 ,가 띄어쓰기가 되는걸 볼 수 있다.
input()
- 사용자에게 입력을 받는것
idle에서 실습하면
=====================
input()
aaaaaaaa
'aaaaaaaa'
***test1.py실행*****
dd
fdjfkl
input('당신의 이름은?')
당신의 이름은?조동현
'조동현'
age = input('당신의 나이는?')
당신의 나이는?3살
print(age)
3살
======================
위와같이 입력을 받고 텍스트입력 후 엔터하면 출력이된다. 이 출력되는거는 idle내에서 기본적으로 출력다해줘서
그런거지 실제로 test1.py파일로 저장후 실행하면 출력을 하지 않는다.
input으로 사용자에게 입력을 받아 변수에 담을 수 있다.
variable(변수)
- 값을 할당해서 담는 것
idle에서 실습하면
=====================
avc_hi = 1
print(avc_hi)
1
python = 1
PYTHON = 2
print(python)
1
print(PYTHON)
2
변수=123
print(변수)
123
123
123
my variable = 123
SyntaxError: invalid syntax
123variable = 123
SyntaxError: invalid decimal literal
=====================
123이라는 값에 ma_variable이라는 이름을 붙여준거다.
변수명에 _사용 가능하고 대소문자 구분을한다. 한글 변수명도 가능하다
띄어쓰기나 숫자로 시작하는 변수는 에러난다.
Data type
Numeric
-정수, 실수형 자료형
type()
- 자료형을 알수있다.
idle에서 실습하면
=====================
my_int = 123
my_float = 1.23
type(my_int)
<class 'int'>
type(my_float)
<class 'float'>
=====================
String
- 문자열
- '나 "로 구분 '와 "를 섞어쓰면 안된다
idle에서 실습하면
=====================
'hello'
'hello'
"world"
'world'
"hello world'
SyntaxError: incomplete input
=====================
Boolean
- 참과 거짓(true/false)
idle에서 실습하면
=====================
print(1<2)
True
print(2==3)
False
=====================
int(), float(), str(), list()
-자료형을 변환
idle에서 실습하면
=====================
my_int = 1
type(my_int)
<class 'int'>
float(my_int)
1.0
type(my_int)
<class 'int'>
str(my_int)
'1'
int(my_int)
1
my_string = 'hellow'
list(my_string)
['h', 'e', 'l', 'l', 'o', 'w']
=====================
Comment
-주석
-코드에 대한 설명을 적을때 주로 사용
-# 뒤에 쓴다
idle에서 실습하면
=====================
print('Hello World') # 이건안나옴
Hello World
print(2+5) # +계산을한다
7
=====================
''' '''
"""세개를 문자열 사이에 사용하면 줄바꿈도 적용이 된다.
'''도 가능
idle에서 실습하면
=====================
my_str = "조씨가족"
print(my_str)
조씨가족
type(my_str)
<class 'str'>
my_str = '작은따옴표'
type(my_str)
<class 'str'>
my_str = """여기서
한번더 엔터를 누르면
다음줄이 된다
"""
print(my_str)
여기서
한번더 엔터를 누르면
다음줄이 된다
=====================
Formatting
-%d (정수형 숫자 대입)
-%f (실수형 숫자 대입)
-%s (문자열 대입)
idle에서 실습하면
=====================
var = 'my name is %s' % 'donghyeon'
print(var)
my name is donghyeon
var2 = '%d %d' % (1,2)
print(var2)
1 2
var3 = '%f 파이' % 3.14
print(var3)
3.140000 파이
=====================
'{}'.format()
idle에서 실습하면
=====================
'my name is {}'.format('조동현')
'my name is 조동현'
'{} x {} = {}'.format(3,4,3*4)
'3 x 4 = 12'
'{1} x {0} = {2}'.format(3,4,3*4)
'4 x 3 = 12'
=====================
format()안에 순서대로 값이 들어가는데 0, 1, 2, ... 등 순서를 {}안에 넣어서 순서에 따른 값을 넣을수도 있다.
Indexing
-위치
['h', 'e', 'l', 'l', 'o']
0 1 2 3 4
위와 같이 각 문자의 위치가 0 ,1, 2 .. 와같이 정해진다.
['h', 'e', 'l', 'l', 'o']
-5 -4 -3 -2 -1
-로 뒤에서부터 index를 나타낼 수 있다.
idle에서 실습하면
=====================
var = 'hello'
list(var)
['h', 'e', 'l', 'l', 'o']
list(var)[0]
'h'
list(var)[3]
'l'
list(var)[-2]
'l'
list(var)[-4]
'e'
=====================
Slicing
- list를 일부 잘라서 가져온다
[ A : B ]
A index부터 시작해서 B index 전까지 뽑아온다
-list()를 이용하면 list로 변환됨
idle에서 실습하면
=====================
var = 'hello'
list(var)[1:4]
['e', 'l', 'l']
list(var)[0:3]
['h', 'e', 'l']
list(var)[:3]
['h', 'e', 'l']
list(var)[1:]
['e', 'l', 'l', 'o']
list(var)[:]
['h', 'e', 'l', 'l', 'o']
=====================
split()
-문자열을 공백단위로 잘라서 list로 만들어줌
-()안에 자르는 단위를 어떤걸 넣어서 할지 결정할 수 있다.
idle에서 실습하면
=====================
var= '안녕 안녕하세요 hi'
var.split()
['안녕', '안녕하세요', 'hi']
var.split('안')
['', '녕 ', '녕하세요 hi']
=====================
Docstring
- 함수 설명할때 쓰는 주석
- """ 와""" 사이에 변수명 없이 사용
idle에서 실습하면
=====================
# 이건주석
"""이건 Docstring 주석 """
=====================
print('' , end='')
- end로 출려되는 문자열의 끝에 붙여줄수 있다.
idle에서 실습하면
=====================
print('hello' , end='w')
hellow
print('마침표가 없습니다' , end='. 내가 붙임')
마침표가 없습니다. 내가 붙임
=====================
\n 과 \t
- \n은 엔터
- \t는 tab
idle에서 실습하면
=====================
print('어느새 \n 부터 힙합은 \t 안멋져')
어느새
부터 힙합은 안멋져
=====================
List
- 수많은 값을 담을 수 있다
- 순서가 있다
- 값을 변경할 수 있다(mutable)
[val1, val2, val3 ,.....]
idle에서 실습하면
=====================
myList = [ 2, 3, 4, 1, 3]
print(myList)
[2, 3, 4, 1, 3]
=====================
append()
-list에 사용할 수 있는 함수
-list끝에 값을 추가함
-insert나 pop도 공부하셈
idle에서 실습하면
=====================
myList = [ 2, 3, 4, 1, 3]
print(myList)
[2, 3, 4, 1, 3]
myList.append('추가됨')
print(myList)
[2, 3, 4, 1, 3, '추가됨']
myList.append('추가됨2')
print(myList)
[2, 3, 4, 1, 3, '추가됨', '추가됨2']
=====================
del
-list에 있는 값을 삭제
idle에서 실습하면
=====================
print(myList)
[2, 3, 4, 1, 3, '추가됨', '추가됨2']
del myList[6]
print(myList)
[2, 3, 4, 1, 3, '추가됨']
=====================
list.sort()
-오름차순으로 정렬해준다
idle에서 실습하면
=====================
myList = [5 , 4, 3, 2, 9 ]
myList.sort()
print(myList)
[2, 3, 4, 5, 9]
=====================
count
-list에 몇개있는지 알 수 있다.
idle에서 실습하면
=====================
myList= [1, 1, 2, 2, 2]
myList.count(1)
2
myList.count(2)
3
=====================
len
-list 값의 개수를 알 수 있다.
idle에서 실습하면
=====================
myList= [1, 1, 2, 2, 2]
len(myList)
5
=====================
Tuple
-list와 비슷한데 값을 변경할 수 없다
-list는 mutable, Tuple은 immutable
-[]를 안써도 된다
idle에서 실습하면
=====================
myTuple = ()
type(myTuple)
<class 'tuple'>
myTuple = 4, 5, 6
print(myTuple)
(4, 5, 6)
type(myTuple)
<class 'tuple'>
=====================
packing 과 unpacking
- packing 된 tuple을 = 왼쪽에 unpacking 한다
idle에서 실습하면
=====================
myTuple = 1,2,3
num1 , num2, num3 = myTuple
num1
1
num2
2
num3
3
num1, num2 = num3, num3
num1
3
num2
3
num3
3
=====================
for
for 변수 in 컨테이너 :
띄어쓰기4개하고 명령1
띄어쓰기4개하고 명령2
명령1과 명령2는 코드블록으로 :와 띄어쓰기 4개를 통해서 인식한다.
띄어쓰기 4칸 말고도 2칸도 가능하고 tab도 가능한데 4칸했으면 4칸
2칸 했으면 2칸 똑같이 해야한다.
idle에서 실습하면
=====================
listdat = [1, 2, 4, 5, 6, 7]
for k in listdat :
print(k)
1
2
4
5
6
7
=====================
range()
range안에 숫자를 하나만 넣으면 0부터 그 숫자까지 0, 1, 2, 3, 4 ... 그숫자
rnage안에 두개의 숫자를 넣으면 range(a , b)
a부터 b 전까지의 숫자를 나타낸다
idle에서 실습하면
=====================
for k in range(4) :
print(k)
0
1
2
3
for k in range(2,4) :
print(k)
2
3
=====================
Comprehension
idle에서 실습하면
=====================
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
odd_numbers = []
for k in numbers :
if k%2 == 1 :
odd_numbers.append(k)
print(odd_numbers)
[1, 3, 5, 7, 9]
#위에 코드를 Comprehension을 이용하면 짧게 구현할 수 있다.
[number for number in numbers if number % 2 ==1]
[1, 3, 5, 7, 9]
=====================
Operator
연산자
할당 연산자
=
복합 할당 연산자
+=
-=
*=
/=
idle에서 실습하면
=====================
count = 1
count
1
count += 1
count
2
count -= 1
count
1
count *= 3
count
3
count /= 3
count
1.0
=====================
Arithmetic
** >>> 제곱
// >>> 몫
% >>> 나머지
%는 홀짝을 구분할때도 많이 사용된다
idle에서 실습하면
=====================
numbers
[1, 2, 3, 4, 5, 6, 7, 8, 9]
for number in numbers:
if number % 2 == 0 :
print('짝수')
else:
print('홀수')
홀수
짝수
홀수
짝수
홀수
짝수
홀수
짝수
홀수
=====================
문자열에서도 +, * 연산 가능
idle에서 실습하면
=====================
'문자열' + ' 도 더하기가 가능하다'
'문자열 도 더하기가 가능하다'
'문자열 곱하기 ^^ ' *3
'문자열 곱하기 ^^ 문자열 곱하기 ^^ 문자열 곱하기 ^^ '
=====================
비교연산자
== >>> 왼쪽과 오른쪽 같은지
!= >>> 왼쪽과 오른쪽이 다른지
> >>> 왼쪽이 오른쪽 보다 큰지
< >>> 왼쪽이 오른쪽 보다 작은지
>= >>> 왼쪽이 오른쪽 보다 큰거나 같은지
<= >>> 왼쪽이 오른쪽 보다 작거나 같으지
idle에서 실습하면
=====================
1 == 3
False
1 == 1
True
1 != 3
True
1 != 1
False
1 > 3
False
3 > 1
True
1 >=3
False
1 >= 1
True
1 <= 3
True
1 <= 0
False
=====================
논리연산자
and >>> 둘다 참이면 참 하나라도 거짓이면 거짓
or >>> 둘중 하나라도 참이면 참 둘다 거짓이면 거짓
not >>> 참이면 거짓 거짓이면 참
idle에서 실습하면
=====================
True and True
True
True and False
False
True or False
True
False or False
False
not True
False
not False
True
=====================
in , not in
idle에서 실습하면
=====================
list = [1 , 3, 4, 6, 2, 4]
1 in list
True
9 in list
False
0 not in list
True
=====================
if 문
if 조건:
명령1
명령2
elif:
명령3
명령4
else:
명령5
명령6
-조건이 참이면 명령을 실행
idle에서 실습하면
=====================
if 1 == 1:
print(1)
elif 2 == 2:
print(2)
else:
print(3)
1
if 1 == 2:
print(1)
elif 2 == 2:
print(2)
else:
print(3)
2
if 1 == 2:
print(1)
elif 2 == 3:
print(2)
else:
print(3)
3
=====================
while문
while 조건:
명령1
명령2
조건이 만족하면 계속 반복적으로 명령을 수행
idle에서 실습하면
=====================
while number < 7:
print(number)
number+=1
1
2
3
4
5
6
=====================
continue, break
-continue를 만나면 밑에를 실행하지 않고 위로 올라간다
-break를 만나면 loop를 끝낸다
idle에서 실습하면
=====================
number = 1
while number < 7:
number+=1
if number < 4:
continue
print(number)
if number == 5:
break
4
5
=====================
Dictionary
{key1: val1, key2: val2 ... }
- key, value가 한쌍이 되어 {}안에 값들을 넣는다.
-del을 이용해 Dictionary에서 삭제할 수 있다.
-dictionary이름.values() 메소드를 사용하면 value들만 뽑아온다
-dictionary이름.items() 메소드를 사용하면 key와 value를 뽑아온다
idle에서 실습하면
=====================
my_dict = { 0 : 'ok', '강아지' : '귀엽다' }
print(my_dict[0])
ok
del(my_dict[0])
my_dict
{'강아지': '귀엽다'}
for val in my_dictionary.values():
print(val)
ok
귀엽다
둘리
my_dictionary = { 0 : 'ok', '강아지' : '귀엽다', '호잇' : '둘리' }
for key , val in my_dictionary.items() :
print(key, val)
0 ok
강아지 귀엽다
호잇 둘리
=====================
Function
-내장함수 : print() 같이 파이썬에서 기본적으로 제공하는 함수
-모듈의함수 : import를 해서 가져다가 쓸 수 있는 함수
-사용자 정의함수 : 함수를 직접 만들어서 사용하는 함수
def 함수이름(인자1, 인자2, ...):
명령1
명령2
return 결과
idle에서 실습하면
=====================
def thisIsFunction(parameter):
return parameter + ' good'
print(thisIsFunction('sounds'))
sounds good
=====================
결과를 여러개 return 할수도 있다.
def 함수이름(인자1, 인자2, ...):
명령1
명령2
return 결과1, 결과2
idle에서 실습하면
=====================
def thisIsFunction2(num1, num2):
return num1+num2, num1-num2, num1*num2
thisIsFunction2(3,2)
(5, 1, 6)
var1, var2, var3 = thisIsFunction2(3,2)
var1
5
var2
1
var3
6
=====================
모듈
-비슷한 함수를 모아둔 파일
-random 모듈로 실습(choice, sample, randint)
-choice는 랜덤으로 하나 뽑아주는거
-sample은 랜덤으로 몇개 뽑을지 정할수있음
-randint는 범위의 숫자에서 하나 뽑아줌
idle에서 실습하면
=====================
import random
aminals = ['cat', 'dog', 'rabit']
print(random.choice(aminals))
cat
print(random.choice(aminals))
rabit
print(random.choice(aminals))
dog
print(random.choice(aminals))
rabit
print(random.choice(aminals))
cat
print(random.choice(aminals))
dog
print(random.choice(aminals))
dog
print(random.sample(aminals, 3))
['dog', 'rabit', 'cat']
print(random.sample(aminals, 2))
['dog', 'cat']
print(random.sample(aminals, 2))
['cat', 'dog']
print(random.sample(aminals, 2))
['dog', 'rabit']
print(random.sample(aminals, 2))
['cat', 'dog']
print(random.sample(aminals, 1))
['dog']
print(random.randint(1,5))
1
print(random.randint(1,5))
2
print(random.randint(1,5))
5
print(random.randint(1,5))
5
print(random.randint(1,5))
4
print(random.randint(1,5))
3
=====================
Object
-함수와 데이터를 모아서 만든거
ex)
김연아라는 객체가 있다면
성별 = 'female'
나이 = '33'
def 트리플악셀():
return '3바퀴 돈다'