> > 위코드 수업 전 파이썬 기본기 잡기 (준비)
툴은 길어지는 코드는 Visual Studio Code
짧은 코드는 IDLE 로 둘을 병행하여 작성했습니다.
프로그램을 만드는 작업
문제를 해결하기 위해 모아놓은 것 혹은 미리 정해진 것
>>> print(1)
1
>>> print(-1)
-1
>>> print(3.14)
3.14
>>>
>>> print(100000)
100000
>>> print(1 + 2)
3
>>> print(3 - 4)
-1
>>> print(5 * 6)
30
>>> print(7 / 8)
0.875
>>>
>>> print(1 ** 2)
1
>>> print(3 // 4)
0
>>> print(5 % 6)
5
>>>
>>> my_int = 1
>>> my_str = 'python'
>>> my_bool = True
>>> my_list = [1, 2, 3]
>>> print(my_int)
1
>>> print(my_str)
python
>>> print(my_bool)
True
>>> print(my_list)
[1, 2, 3]
>>>
>>> count = 0
>>> count += 1
>>> count -= 1
>>> count *= 2
>>> print(count)
0
숫자로 시작 x
빈칸 x (언더 바 ( _ )를 사용
이름을 모두가 알아 볼 수 있게 적어라.
>>> my_str1 ='a'
>>> my_str2 = '3.14'
>>> my_str3 = 'coding'
>>> my_str4 = "coding"
>>> print(my_str1)
a
>>> print(my_str2)
3.14
>>> print(my_str3)
coding
>>> print(my_str4)
coding
print(type(my_str2))
<class 'str'>
와 *가 대표적이며
는 문자열이 연결
>>> my_str1 ='a' + 'b' + 'c'
>>> print(my_str1)
abc
my_str2 = 'abc' * 3
>>> print(my_str2)
abcabcabc
>>> alphabet ='abcde
>>> print(alphabet[0])
a
>>> print(alphabet[1])
b
>>> print(alphabet[3])
d
>>> print(alphabet[-1])
e
>>> print(alphabet[-5])
a
>>> Python = 'Python'
>>> print(Python[0:1])
P
>>> print(Python[0:2])
Py
>>> print(Python[0:5])
Pytho
>>> print(Python[:4])
Pyth
>>> print(Python[1:])
ython
>>> fruit_str = 'apple banana lemon'
>>> fruits = fruit_str.split()
>>> print(fruits)
['apple', 'banana', 'lemon']
>>> print('life is {}'.format('shord!'))
life is shord!
>>> print( '{} * {} = {}'.format(2,5,2*5))
2 * 5 = 10
>>> print('coding', end='')
coding
>>> print('coding','_')
coding _
>>> print('coding',end='\n')
coding
>>> print('coding',end='\t')
coding
>>>
>>> print('hello my name\ntaegyeong')
hello my name
taegyeong
>>> print('my name is \t jason')
my name is jason
>>> my_list = []
>>> my_list2 = [1, 2 ,3]
>>> my_list3 =['a', 'b']
>>> print(my_list)
[]
>>> print(my_list2)
[1, 2, 3]
>>> print(my_list3)
['a', 'b']
>>> my_list=[]
>>> my_list.append('abc')
>>> print(my_list)
['abc']
>>> my_list.append(True)
>>> print(my_list)
['abc', True]
>>> my_list[0] ='3.14'
>>> my_list[1] = 'Not True'
>>> print(my_list)
['3.14', 'Not True', True, 'abc']
>>> print(my_list[0])
3.14
>>> print(my_list)
['3.14', 'Not True', True, 'abc']
>>> del my_list[0]
>>> del my_list[1]
>>> print(my_list[0])
Not True
>>> print(my_list[1])
abc
>>> print(my_list)
['Not True', 'abc']
>>> my_list = ['a', 'b', 'c']
>>> print(my_list[:1])
['a']
>>> print(my_list[1:3])
['b', 'c']
>>> print(my_list[2:])
['c']
>>> my_list = [3, 2, 4, 1]
>>> my_list.sort()
>>> print(my_list)
[1, 2, 3, 4]
>>> my_list2 =[3, 50, 40, 60,1]
>>> my_list2.sort()
>>> print(my_list2)
[1, 3, 40, 50, 60]
>>> my_list = ['a', 'b' , 'c' , 'd', 'e', 'a', 'b' , 'a']
>>> print(my_list.count('a'))
3
>>> print(my_list.count('b'))
2
>>> my_list = ['a', 'b' , 'c' , 'd', 'e', 'a', 'b' , 'a']
>>> print('a' in my_list)
True
>>> print('b' not in my_list)
False
>>> my_tuple1 =()
>>> my_tuple2 = (1,)
>>> my_tuple3 =('a', 'b', 'c')
튜플로 안하면 int 로 나온다
>>> my_tuple1 = (1)
>>> print(type(my_tuple1))
<class 'int'>
순서열 (여러가지 것들을 가지고 있는것들)
my_list = [1, 2, 3]
>>> for count in my_list:
print('hello',count)
hello 1
hello 2
hello 3
**문자열 코딩**
my_str ='coding'
for letter in my_str:
print('문자:',letter)
문자: c
문자: o
문자: d
문자: i
문자: n
문자: g
띄어쓰기 4칸을 통일그리고 권장한다.
for count in range(3):
print('횟수',count)
횟수 0
횟수 1
횟수 2
0~2까지 출력
for count in range(0, 3):
print('횟수:',count)
횟수: 0
횟수: 1
횟수: 2
for count in range(5, 10):
print('횟수',count)
횟수 5
횟수 6
횟수 7
횟수 8
횟수 9
내부 for 먼저 해결 후 밖에 for 해결
for j in range(2):
for i in range(2):
print('i: {}, j: {}'.format(i,j))
i: 0, j: 0
i: 1, j: 0
i: 0, j: 1
i: 1, j: 1
for i in range(2,10):
for j in range (1,10):
print("{} * {} = {}".format(i,j,i*j))
긴 줄을 한줄로 요약하는것
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_numbers =[]
for number in numbers:
if number %2 == 1:
odd_numbers.append(number)
print(odd_numbers)
[1]
[1, 3]
[1, 3, 5]
[1, 3, 5, 7]
[1, 3, 5, 7, 9]
# numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# odd_numbers =[]
# odd_numbers = [number for number in numbers if number % 2 == 1 ]
True or False
my_bool1 =True
my_bool2 = False
my_bool3 = 1 < 2
my_bool4 = 1 == 2
print(my_bool1)
print(my_bool2)
print(my_bool3)
print(my_bool4)
True
False
True
False
당신이 레프티면 만나서 반가워요~
name = 'Lefty'
if name =='Lefty':
print('당신은 Lefty군요')
print('만나서 반갑습니다.')
당신은 Lefty군요
만나서 반갑습니다.
name = 'coding'
if name =='Lefty':
print('당신은 Lefty군요')
print('만나서 반갑습니다.')
결과값 : X
실행할 명령1
실행할 명령2
실행할 명령1
실행할 명령2
설명 : 이름이 엘리스라면 당신이 엘리스군요?
밥이라면 당신은 밥이군요?
둘다 아니면 당신은 대체 누구십니까?
name = 'Alice'
if name == 'alice' :
print('당신은 Alice군요.')
elif name 'Bob':
print('당신은 Bob이군요')
else :
print('당신은 누구십니까?')
당신은 Alice군요.
While 조건:
실행할 명령1
실행할 명령2
count = 0
while count < 3:
print('횟수:', count)
count += 1
횟수: 0
횟수: 1
횟수: 2
continue : 밑에 것 실행 하지 않고
다시 조건문으로 돌아가라
count = 0
while count < 5:
count = count +1
if count % 2 == 1:
continue
print(count)
2
4
break: 반복문을 종료
계속 반복하다가 종료라는 것을 입력 받으면
break에 따라 종료된다.
while True:
name = input('당신의 이름은 무엇입니까?')
if name == '종료':
print('종료합니다')
break
print('{}님, 안녕!'.format(name))
당신의 이름은 무엇입니까?안녕
안녕님, 안녕!
당신의 이름은 무엇입니까?친구
친구님, 안녕!
당신의 이름은 무엇입니까?경한
경한님, 안녕!
당신의 이름은 무엇입니까?종료
종료합니다
input이 진짜 타입을 확인해보자
input은 숫자든 뭐든 기본 str 형( 문자형)이다
name = input('이름을 입력하세요:')
print(name)
이름을 입력하세요:hong
hong
name = input('이름을 입력하세요:')
# print(name)
이름을 입력하세요:홍태경
name = input('이름을 입력하세요: ')
print('안녕, {}!'.format(name))
print(type(name))
print(name)
이름을 입력하세요: 안녕
안녕, 안녕!
<class 'str'>
안녕
input 앞에 원하는 타입을 넣어준다.
str 타입을 정수 타입으로 변경
age = int(input('나이를 입력하세요: '))
print('너의 나이는?: , {}!'.format(age))
print(type(age))
print(age)
나이를 입력하세요: 50
안녕, 50!
<class 'int'>
my_dict1 ={1:'a', 2:'b'}
my_dict2 ={'a':1, 'b':2}
my_dict3 ={1:'a', 'b':2}
print(my_dict1)
print(my_dict2)
print(my_dict3)
{1: 'a', 2: 'b'}
{'a': 1, 'b': 2}
{1: 'a', 'b': 2}
my_dict = {}
my_dict[1] = 'a'
my_dict['b'] = 2
my_dict['c'] ='d'
print(my_dict)
{1: 'a', 'b': 2, 'c': 'd'}
키를 이용해서 가지고 있는 값을 출력해준다.
print(my_dict)
{1: 'a', 'b': 2, 'c': 'd'}
print(my_dict[1])
a
print(my_dict['b']
2
print(my_dict['c']
'd'
딕셔너리 키와 값 모두 지우기.
키 값을 del 으로 사용하면 된다.
print(my_dict)
{1: 'a', 'b': 2, 'c': 'd'}
del my_dict[1]
del my_dict['b']
del my_dict['c']
print(my_dict)
my_dict={'k1':'v1', 'k2':'v2'}
for val in my_dict.values():
print(val)
v1
v2
my_dict={'k1':'v1', 'k2':'v2'}
for key in my_dict.keys():
print(key)
k1
k2
for문에 key 와 val값 동시에 받아온다
### my_dict={'k1':'v1', 'k2':'v2'}
for key, val in my_dict.items():
print(key, val)
k1 v1
k2 v2
통나무를 입력으로 받으면 마법 빗자루를 출력으로 뿅 바뀌는 마법
통나무를 걍 모자에 넣으면 뚝딱 나온다 ( 시간, 나의 노력이 절약된다)
반복 되는 코드를 묶어서 출력 해준다 .
받은 것을 그대로 출력해주는 print 역시 함수이다 하지만 그건 내장함수라 얘기한다 .
내장 함수 : 파이썬에서 기본적으로 제공하는 함수
함수를 직접 만들기
def = 함수를 만들겠다 설정
함수 이름
인자 = 입력 값
return 결과 : 실행한 것을 돌려준다.
def 함수이름 (인자1,...):
실행할 명령1
실행할 명령2
return 결과
my_sum(1,2) # my_sum(1,2)를 출력
>>> def my_sum(n1,n2):
return n1+n2
# 엔저 한번 쳐야 한다.
>>> my_sum(1,2)
3
# 3개 함수호추
>>> def my_love(n1,n2,n3):
return n1+n2+n3
>>> my_love(1,5,10)
16
인자를 여러번 사용하고 싶다면 ,를 사용하면 된다.
더한값은 S로 들어가고 곱한 값은 M으로 들어간다.
>>> def my_sum_mul(n1,n2):
return n1+n2, n1*n2
>>> s, m = my_sum_mul(2,3)
>>> print(s)
5
>>> print(m)
6
>>> result= my_sum_mul(2,3)
>>> result
(5, 6)
result는 튜플로 패킹하고 언패킹한다
>>> print(type(result))
<class 'tuple'>
함수의 이름 밑 에 주석으로 사용할 때
큰 따음표 3개 """ """
def sum_mul(num1,num2):
"""입력 값을 더하고 곱합니다."""
return num1+num2, num1 * num2
print(sum_mul(5,6))
(11, 30)
내가 랜덤이라는 모듈을 사용하고 싶다.
import random
fruits = ['apple', 'banana','lemon']
my_fruit = random.choice(fruits)
print(my_fruit)
lemon
lemon
banana
banana
import random
fruits=['banana','lemon','apple']
my_fruits = random.sample(fruits, 2)
print(my_fruits)
['banana', 'lemon']
['banana', 'apple']
['apple', 'lemon']
import random
my_int = random.randint(0,10)
print(my_int)
5
6
0
8
함수와 데이터를 함꺼번에 묶어서 사용
예시) 기타라는 객체는 이름,색,패밀리등 데이터들이 있고 한손, 두손, 핑거등 행동이 있다.
이렇게 두가지를 통해서 기타라는것이 정의된다.
예시) 게임 주인공이라는 객체는 hp ,mp, 스테미나 등 데이터들이 있고 앞으로 움직이기 싸우기, 죽기 등 행동들이 있다