#정리
#04while - 반복문
#while (조건): (~continue) ~break뼈대로 작성한다.
- while True: ~ if i==5: continue ~ if i==10: break
#do - while 은 없다.
#for - 반복문
#for (변수) ~ in (범위) 뼈대로 작성한다.
- range()를 이용해서 필요만큼 반복할 수 있다.
- for i in range(10,20):
#다른 언어에서 사용되는 for문 형태는 사용하지 못한다.- for(;;) #error
#range()는 다양하게 작성할 수 있다.
- print(range(10))
- print(range(0,10))
- print(range(0+1,10+1))#list 배열 원소 갯수를 활용하여 foreach처럼 사용할 수 있다.
- for item in lst : ~
#list 배열 인덱스를 활용하여 반복시킬 수 있다.- for index in range(len(lst)) : ~
#06def_function - 함수
#def : function 역할을 한다고 선언하는 의미
** 함수의 4가지 형태 알아보기 **
<1. void - void ># 매개변수와 리턴이 모두 없는 형태
- def aaa():
<2. void - return >
#함수의 리턴 타입을 선언할 필요가 없고, 아무 타입이나 리턴 가능하다.
def bbb(): ~ return 100
<3. para - void>
# 함수의 매개변수 타입을 선언할 필요가 없어, 아무 타입이나 받아준다.
- def ccc(x):<4. para - return >
# 매개변수와 리턴이 모두 있는 형태
- def ddd(x): ~ return 123//mission : 07함수 생성 연습
#para [11,22,33], return [110,220,330] - test04
- lst2.append(x*10) # 배열 원소 활용할 때는 append( ) 적용 필요
#para 11,22,33 or 11,22,33,44 , return x - test05
** def test05(*args): # * : 여러 매개변수를 숫자를 정하지 않고 받겠다. (포인터 변수 아님)
- (11,22,33) >> 소괄호로 감싸져있는 것을 tuple type이라고 한다.- args[i] = args[i]*10 #read only error >> tuple은 출력이 가능하지만, 값 변경은 불가하다
** 터미널에서 python3 >> dir(tuple) 명령어를 통해 사용가능한 함수를 볼 수 있다.
**할당연산("=") 우측에 오는 것을 리터럴(Literal)이라고 한다.
#08def_firstclass
#일급함수(first class)란, 함수 그대로의 사용 이외에 함수를 변수값(리터럴), 매개변수값(인자), 함수리턴값으로 사용할 수 있는 함수 형태를 말한다.
<1.argument value>
#함수(test01)의 매개변수 "x"을 콜하는 것으로 매개변수에 넣은 함수(fn_arg)를 실행시킬 수 있다.
- test01(fn_arg)
<2.return value>#함수(test02) 안에 정의된 함수(fn_return)를 콜할 때는 ( )를 두번 붙여 안의 함수를 콜할 수 있다.
- test02( )( )
<3.variable value>#특정 변수(a)에 함수를 넣어 변수 명으로 해당 함수(fn_var)를 콜할 수 있다.
- a = fn_var >> a( )//mission : 08def_firstclass2 - 리턴이 1급 함수 생성 연습
#타입 선언이 없기 때문에, 여러가지 타입을 섞어서 입력 혹은 출력할 수 있다.
#04while - 반복문
#while (조건): (~continue) ~break뼈대로 작성한다.
- while True: ~ if i==5: continue ~ if i==10: break
#do - while 은 없다.
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("Hello python")
print("---------------")
i=0
while True:
print("{}:{}".format(i,"100"))
if i==10: break
i+=1
if i==5: continue
print("Hello python")
print("---------------")
while True:
print("end....input[x]:")
txt = input()
if txt=="x": break
print("---------------")
-----------------------------------------------
# mission : 04while_score
#학생 이름, 국어, 수학, 영어 성적을 받아 총점/평균/학점을 계산하는 반복 코드를 작성하시오.
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("-- while score mission --")
while True:
name=input("name:")
kor=int(input("kor:"))
eng=int(input("eng:"))
math=int(input("math:"))
total=kor+eng+math
avg=total/3
grade = 'A'
if avg >= 90:
grade = 'A'
elif avg >= 80:
grade = 'B'
elif avg >= 70:
grade = 'C'
elif avg >= 60:
grade = 'D'
else:
grade = 'F'
print("name:{},kor:{},eng:{},math:{}".format(name,kor,eng,math))
print("total:{}".format(total))
print("avg:{:.2f}".format(avg))
print("grade:{}".format(grade))
print("---------------")
print("end....input[x]:")
txt = input()
if txt=="x": break
print("---------------")
#for - 반복문
#for (변수) ~ in (범위) 뼈대로 작성한다.
- range()를 이용해서 필요만큼 반복할 수 있다.
- for i in range(10,20):
#다른 언어에서 사용되는 for문 형태는 사용하지 못한다.
- for(;;) #error
#range()는 다양하게 작성할 수 있다.
- print(range(10))
- print(range(0,10))
- print(range(0+1,10+1))
#list 배열 원소 갯수를 활용하여 foreach처럼 사용할 수 있다.
- for item in lst : ~
#list 배열 인덱스를 활용하여 반복시킬 수 있다.
- for index in range(len(lst)) : ~
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("---------------")
#for(;;) #error
#for .. in .. : #OK
#range()는 다양하게 작성할 수 있다.
print(range(10))
print(range(0,10))
print(range(0+1,10+1))
print(range(10,20))
#range()를 이용해서 필요만큼 반복할 수 있다.
for i in range(10):
print(i,end=" ")
print()
print("---------------")
for i in range(10,20):
print(i,end=" ")
print()
print("---------------")
#9*9=81 mission
for x in range(2,10):
for i in range(1,10):
print("{}*{}={}".format(x,i,x*i),end=" ")
print()
print("---------------")
#list 형태의 배열 원소 갯수를 활용하여 foreach처럼 사용할 수 있다.
lst = [11,22,33]
for item in lst:
print(item,end=" ")
print()
#list 형태의 배열 인덱스를 활용하여 반복시킬 수 있다.
lst = [11,22,33]
for index in range(len(lst)):
print(lst[index],end=" ")
print()
print("-------mission--------")
lst = [11,22,33]
sum_lst = 0
for item in lst:
sum_lst += item
print(sum_lst)
sum_lst = 0
for index in range(len(lst)):
sum_lst += lst[index]
print(sum_lst)
#06def_function - 함수
#def : function 역할을 한다고 선언하는 의미
** 함수의 4가지 형태 알아보기 **
<1. void - void >
# 매개변수와 리턴이 모두 없는 형태
- def aaa():
<2. void - return >
#함수의 리턴 타입을 선언할 필요가 없고, 아무 타입이나 리턴 가능하다.
def bbb(): ~ return 100
<3. para - void>
# 함수의 매개변수 타입을 선언할 필요가 없어, 아무 타입이나 받아준다.
- def ccc(x):
<4. para - return >
# 매개변수와 리턴이 모두 있는 형태
- def ddd(x): ~ return 123
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("Hello python")
print("---------------")
#def : function 역할을 한다고 선언하는 의미
#함수의 4가지 형태 알아보기
print("-- void - void --")
def aaa():
print("aaa()...")
#function call
aaa()
print("-- void - return --")
#함수의 리턴 타입을 선언할 필요가 없고, 아무 타입이나 리턴 가능하다.
def bbb():
print("bbb()...")
return 100
b = bbb()
print(b)
print("-- para - void --")
#함수의 매개변수 타입을 선언할 필요가 없어, 아무 타입이나 받아준다.
def ccc(x):
print("ccc()...",x)
#둘 다 가능
ccc(888)
ccc("kim")
print("-- para - return --")
#매개변수와 리턴이 모두 있는 형태
def ddd(x):
print("ddd()...",x)
return 123
d = ddd(999)
print(d)
d = ddd("lee")
print(d)
-----------------------------------------------
#mission : 07함수 생성 연습
#para [11,22,33], return [110,220,330] - test04
- lst2.append(x*10) # 배열 원소 활용할 때는 append( ) 적용 필요
#para 11,22,33 or 11,22,33,44 , return x - test05
** def test05(*args): # * : 여러 매개변수를 숫자를 정하지 않고 받겠다. (포인터 변수 아님)
- (11,22,33) >> 소괄호로 감싸져있는 것을 tuple type이라고 한다.
- args[i] = args[i]*10 #read only error >> tuple은 출력이 가능하지만, 값 변경은 불가하다
** 터미널에서 python3 >> dir(tuple) 명령어를 통해 사용가능한 함수를 볼 수 있다.
#score function mission
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("---------------")
#para 11 22 33, return x - test01
print("----test01---")
def test01(lst):
print("test01()",lst)
test01([11,22,33])
#para x, return "kim" - test02
print("---test02---")
def test02():
return "kim"
print(test02())
#para x, return [11,22,33] - test03
print("---test03---")
def test03():
return [11,22,33]
print(test03())
for item in test03():
print(item,end=" ")
print()
print("---------------")
#para [11,22,33], return [110,220,330] - test04
def test04(lst):
print("test04()...",lst)
#1. 배열 길이 활용
#for i in range(len(lst)):
# lst[i] = lst[i]*10
#2. 배열 원소 활용 - append() 적용 필요
lst2 = []
for x in lst:
lst2.append(x*10)
return lst2
lst = test04([11,22,33,44,55])
print(lst)
print("---------------")
#para 11,22,33 , return x - test05
#para 11,22,33,44 , return x - test05
def test05(*args): # * : 여러 매개변수를 숫자를 정하지 않고 받겠다.
print("test05()...",args) #(11,22,33) >> 소괄호로 감싸져있는 것을 tuple type이라고 한다.
#1. 배열 길이 활용
for i in range(len(args)):
print(args[i]) #tuple은 출력이 가능하지만, 값 변경은 불가하다.
#args[i] = args[i]*10 #read only error
#2. 배열 원소 활용
for x in args:
print(x)
test05(11,22,33)
test05(11,22,33,44)
print("---------------")
#py04while_score.py 내용을 함수로 정의
#def score_fn(): return x
def score_fn():
name=input("name:")
kor=int(input("kor:"))
eng=int(input("eng:"))
math=int(input("math:"))
total=kor+eng+math
avg=total/3
grade = 'A'
if avg >= 90:
grade = 'A'
elif avg >= 80:
grade = 'B'
elif avg >= 70:
grade = 'C'
elif avg >= 60:
grade = 'D'
else:
grade = 'F'
print("name:{},kor:{},eng:{},math:{}".format(name,kor,eng,math))
print("total:{}".format(total))
print("avg:{:.2f}".format(avg))
print("grade:{}".format(grade))
while True:
print("---------------")
print("end....input[x]:")
txt = input()
if txt=="x": break
score_fn()
**할당연산("=") 우측에 오는 것을 리터럴(Literal)이라고 한다.
#08def_firstclass
#일급함수(first class)란, 함수 그대로의 사용 이외에 함수를 변수값(리터럴), 매개변수값(인자), 함수리턴값으로 사용할 수 있는 함수 형태를 말한다.
<1.argument value>
#함수(test01)의 매개변수 "x"을 콜하는 것으로 매개변수에 넣은 함수(fn_arg)를 실행시킬 수 있다.
- test01(fn_arg)
<2.return value>
#함수(test02) 안에 정의된 함수(fn_return)를 콜할 때는 ( )를 두번 붙여 안의 함수를 콜할 수 있다.
- test02( )( )
<3.variable value>
#특정 변수(a)에 함수를 넣어 변수 명으로 해당 함수(fn_var)를 콜할 수 있다.
- a = fn_var >> a( )
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#first class
#1.argument value
#2.return value
#3.variable value
print("-- 1.argument value ---")
#함수의 매개변수 "x"을 콜하는 것으로 매개 변수에 넣은 함수를 실행시킬 수 있다.
def test01(x):
x()
def fn_arg():
print("test01~fn_arg()...")
test01(fn_arg)
print("-- 2.return value ---")
#함수 안에 정의된 함수를 콜할 때는 ()를 두번 붙여 안의 함수를 콜할 수 있다.
def test02():
def fn_return():
print("test02~fn_return()...")
return fn_return
test02()()
print("-- 3.variable value ---")
#특정 변수에 함수를 넣어 변수 명으로 해당 함수를 콜할 수 있다.
def fn_var():
print("test03~fn_var()...")
a = fn_var
a()
print("---------------")
-----------------------------------------------
#mission : 08def_firstclass2 - 리턴이 1급 함수 생성 연습
#타입 선언이 없기 때문에, 여러가지 타입을 섞어서 입력 혹은 출력할 수 있다.
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("-- 1.argument value ---")
def test01(fn,x,y):
print("test01()...",x,y)
print("test02 name:", fn(3,4))
return "kim"
def test02(x,y):
print("test02()...",x,y)
return "lee"
name = test01(test02,100,200)
print("test01 name:",name)
print("-- 2.return value ---")
#리턴 값이 있는 함수로 연습
def test03(a,b):
print("test03()...",a,b)
def test04(c,d):
print("test04()...",c,d)
return 100
return test04
test03(5,"kim")(6,"lee")
print("-- 3.variable value ---")
#리턴 값이 있는 함수로 연습
def test05(i,j):
print("test05()...",i,j)
return "park"
name1 = test05
name2 = name1(7,"kim")
print("return name:",name2)
print("---------------")
'Python' 카테고리의 다른 글
[Python] 7.sqlite3 DB 연동 CRUD 구현 (0) | 2022.04.07 |
---|---|
[Python] 6. 파일 읽기,쓰기 file open _ read / write,append, with_open (0) | 2022.04.06 |
[Python] 5.배열(array) : tuple, dictionary, set (0) | 2022.04.06 |
[Python] 3. 람다식(lambda), 시간함수(time,datetime), 임포트(import) (0) | 2022.04.06 |
[Python] 1. 파이썬, 연산자(operator), 캐스팅(casting), 분기문(if_else), 실행 아규먼트(sys.argv) (0) | 2022.04.05 |