[Developer /Python] - 누구나 파이썬 -4 (사용자입력, 반복문[while], 함수-1)
1. function -2
1-1 기본함수
1-2 자료 전달
1-3 언패킹 전달 (함수에 리스트를 전달하는 방법)
1-4 * Asterisk
2. 딕셔너리 자료형
3. bool 자료형
4. Stack , Queue
5. 혼자해보기 문제
매개변수가 없는 기본형태( 파라미터가 없는 함수)
def funcNon():
print 'function is default function'
1-2 파라미터가 있는 함수
파라미터가 있는 함수 -1
def funcNoneInit(data , data_2):
sum = data + data_2
return sum
파라미터가 있는 함수 -2 (디폴트 값이 있는 파라미터)
def func(data, name = 'min', age = 19):
if data is 0:
print 'hello world'
else :
print 'ok sure'
print 'your Data = ', data , 'your name ' , name, 'your age ' , age
func(0,'namer',10)
func(40)
func 를 호출하게 되면 data 파라미터에 40이 들어가며,
2번째 3번째 파라미터는 기본 값으로 지정된다.
value = 10
def func(var = value):
print var
value = 4
func()
func 함수를 불렀을때 출력되는값은 무엇일까요?
10 이 출력될까요? 아니면 4가 출력될까요?
4가 출력되지않고 10이 출력됩니다.
그 이유는 함수의 정의 부분에서 초기값을 선언해 주었을때, 초기값은 변화하지 않습니다. 만약 우리가 정상적으로 4를 출력하려면, 파라미터로 4를 입력해주어야 값이 변화 합니다.
def func(name,stage='study room', action='coding', type = 'hifive'):
print '-- Welcome to python study', name
print 'hey ' , name , 'what are you doing '
print action, 'to do ' , type
func(‘kim')
/*
name 파라미터만 입력한 경우 나머지 파라미터는 디폴트값
*/
func('lee','company','work','user')
/*
순서대로 입력한 경우
*/
func(type='eat',name='oh', action = 'watch')
/*
파라미터를 직접 정하여 순서에 상관없이 입력가능
*/
1-3 리스트 전달
디폴트 리스트 사용하기
def func(a, L = []):
L.append(a)
return L
print func(3)
print func(2)
print func(5)
print func(1)
var = func(1)
for v in var:
print v
def 함수는 a 라는 파라미터를 받고, 리스트의 입력이 없다면 자체적으로 리스트를 만들어 리스트에 append 하는 구조입니다.
생성된 리스트는 리스트 변수를 만들어 조작할수있습니다.
def func(a, L = []):
L.append(a)
return L
print func(3)
print func(2)
print func(5)
print func(1)
var = func(1)
for v in var:
print v
del var
print func(2)
★ var 라는 리스트를 지운다고해서 내부에있는 리스트가 삭제되지는 않습니다.
* asterisk 아스터리스크 는 파라미터를 튜플 형태로 나눕니다.
arg = [3,6]
print range(*arg)
리스트를 튜플 형태로 나누어 사용하는 방법은 아래와 같습니다.
def po(v):
if v is 3:
print 'this is 3'
elif v is 5:
print 'this is 5'
else :
print 'hello'
arg = [2,6]
for a in range(*arg):
po(a)
튜플은 Python 에서 리스트와 거의 비슷합니다.
튜플의 가장큰 다른점은 데이터의 값을 수정및 제거가 안됩니다.
튜플의 사용법은 아래와 같습니다.
tup = (1,3,4)
print tup
t1 = 1,55,13,4
print t1
리스트에서 아래와 같이 가능했습니다.
▶ 리스트사용
list = [10,3,4,5]
print list
list[1] = 33
print list
♣ 튜플 사용
tuple = (10,3,4,5)
print tuple
tuple[1] = 33
print tuple
튜플 자료형은 데이터 수정 , 삭제가 불가능합니다.
자료형의 기본구조가 key와 value 로 쌍을 나눈 데이터 자료구조입니다.
{KEY : VALUE , KEY1 : VALUE1 , KEY2: VALUE2}
dic = {1 : 'value', 2 : 'kim','a':10}
print dic
print dic['a']
리스트 처럼 사용가능하며, 해당 key 값을 인덱스로 넣으면 value가 출력된다.
- 삽입하기
딕셔너리 자료형에는 key 와 value의 규칙대로 값을 삽입할수 있다.
dic = {1 : 'value', 2 : 'kim','a':10}
dic['k'] = 'orean'
print dic
‘k’ 키값에 ‘orean’ 값이 마지막에 삽입된다.
dic = {1 : 'value', 2 : 'kim','a':10}
dic[10] = 'names'
10 이라는 key 에 ‘names’ 라는 값을 삽입된다. 마지막에 추가된다.
* 삽입할때 중복값을 삽입할수 없다, 동일한 키값을 입력하면 기존 값이 수정된다.
key 값은 고유 값이다.
- 데이터 삭제
del 키워드를 사용하여, 삽입과 동일하게 하면 된다.
dic = {1 : 'value', 2 : 'kim','a':10}
dic[10] = 'names'
print dic
del dic['a']
print dic
bool 자료형은 Ture , False 값 2가지 값을 가지게된다.
변수의 이름은 true, false , True, False는 사용하지 않는게 좋다. (예약어 이다.)
python 에서 참 불을 사용할때 대문자만을 사용해야한다.
boolean = 10 is 10
print boolean
4-1 List를 Stack 처럼 사용하기
* 스택(Stack)
스택자료 형 후입선출 (먼저 들어온 데이터가 나중에 나가는 구조)특징을 가지고 있다.
파이썬에서 리스트를 스택처럼 사용하는것은 다음과 같다.
list = []
list.append(1) # [1]
list.append(2) # [1,2]
list.pop() # [2]
#출력 1
4-2 List를 Queue 처럼 사용하기
* 큐(Queue)
큐형 선입선출 (먼저 들어온 데이터가 먼저 나가는 구조)특징을 가지고 있다
리스트를 큐로 사용하는 방법은 다음과 같습니다.
from collection import deque
que = deque([1,2,3]) # [1,2,3]
que.append(10) #[1,2,3,10]
que.popleft() # [2,3,10]
#1 출력
아래는 학생의 성적표 입니다.
student |
eng |
math |
computer |
ashe |
75 |
85 |
93 |
xinzao |
85 |
60 |
56 |
riven |
100 |
76 |
93 |
nidalee |
40 |
20 |
100 |
olaf |
25 |
25 |
90 |
elsa |
100 |
70 |
25 |
kwanda |
60 |
95 |
15 |
4-1 성적표 데이터를 입력하세요
4-2 olaf의 평균 데이터를 출력하세요
4-3 전체 학생의 수학평균을 구하여 출력하세요
4-4 전체 학생의 평균을 구하세요
4-5 전체 평균의 점수를 내림차순 한뒤, 새로운 리스트를 만들고 , 딕셔너리화 하여 데이터를 저장하기
6강 자료 보기
[Developer /Python] - 누구나 파이썬 -6 (Module , file I/O , 코딩스타일)
누구나 파이썬 -8 [ Class 2 , except ] (0) | 2020.02.23 |
---|---|
누구나 파이썬 -7 (Class 기본 -1 ) (0) | 2020.02.12 |
누구나 파이썬 -6 (Module , file I/O , 코딩스타일) (0) | 2020.01.10 |
누구나 파이썬 -4 (사용자입력, 반복문[while], 함수-1) (0) | 2020.01.02 |
누구나 파이썬 -3 (연산자, if, for) (0) | 2019.12.22 |
누구나 파이썬 -2 (문법 , 자료형) (0) | 2019.12.13 |