test = [["kim", "english", 99],["Hong","math",88],["Park", "history",55]
test[-2][1:-1] #['math']
#참조 #슬라이싱
test[-2][1:-1][0:-1] #"mat" => []
test[-2][1:-1] #['math']
슬라이싱할 때
끝의 -1은 포함이 안되니까 1만 포함이 됨
```
test = [["kim", "english", 99],["Hong","math",88],["Park", "history",55]]
print(test[-2][1:-1]) #['math']
#참조 #슬라이싱
print(test[-2][1:-1][0:-1]) #"mat" => []
# list를 슬라이싱 하면 결과도 list가 된다.
#그래서 빈 리스트가 나옴
# 글자를 뽑아낼때는 슬라이싱이 아니고 인덱스로 접근하면 된다
# 문자열 슬라이싱하면 문자열 나옴
print(test[-2][1][0:3])
print(test[1][1][0:1])
리스트 슬라이싱하면 리스트 나오고(문자열 안 나옴)
문자열 슬라이싱하면 문자열 나온다.
print(sum[1,2,3,4])
10 출력됨
함수는 변수처럼도 사용가능
print(sorted([4,1,2,3]))
print(sorted([4,1,2,4], reverse=True))
print(sorted(["aaa", "cccc", "bb", "dddd"]))
print(sorted(["aaa", "cccc", "bb", "dddd"], key=len)) # 오름차순 출력
print(sorted(["aaa", "cccc", "bb", "dddd"], key=len, reverse=True))
#오름차순인데 reverse해서 내림차순
def exp_2(a): # a는 형식매개변수
return a*a
print(list(map(exp_2, [1,2,3])))
# 실행결과 [1,4,9]
exp_2 함수 먼저 실행해 요소를 함수에 돌림
값을 list 타입으로 바꿔줌
자동반복은 map에 의해서 되는 것
map이 함수를 자동호출하도록 설정됨!
map Type인데
파일명에 접근할 수 있는 파일 객체를 반환하는 함수이다.
mode가 생략되면 읽기 전용모드(r)로 파일 객체를 만들어 반환하여 mode는 다음과 같다.
ex) fp = open('test.txt', 'r')
text 모드가 기본모드가 된다.
파이썬에서는 함수들을 기능별로 패키지 혹은 모듈에 포함
numpy 설치
라이브러리나 모듈에 존재하는 함수를 사용하기 위해서
형식 1
형식 2
모듈명 없이 사용하기 편함
import *
def 함수명(파라메터1, 파라메터2...) #이 파라메터는 형식매개변수!
함수에서 수행할 코드
[return 반환값]
ex1)
함수명에 사용되는 변수 : 형식매개변수(가인수)
호출할 때 사용되는 변수 : 실매개변수(실인수)
a,b는 형식매개변수
10,20은 실매개변수
실매개변수가 형식매개변수에 들어가
return값 수행
print(add(10)) 때문에 에러
b가 전달받지 않은 파라미터가 없기 때문!
키워드 매개변수 : 이름을 가지고 있는 것을 찾아감!
키워드를 지정해주면 자리 상관없이 이름에 해당되는 곳에 들어간다.
정의되지 않은 매개변수
-
for문은 2번 반복됨
for문 3번 반복됨
키워드 파라미터를 dict로 만들어 전달함
hap = 10 + b[mbc] + b[kbs]
= 10 + 20 + 30
첫번째 print
두번째 print
def add(*b, **c)로 바꿔도 가능
이렇게도 가능
*있는 건 없으면 생략이 가능하다!
error 나오지 않음
print(10,20,sep=",", end="\n")
숙제는 두 숫자 입력 받아서 min, max 만드는 거 함수로 만들기
이거 함수로 만들기
내 풀이:
답:
def input_proc():
num1 = int(input("첫번째 숫자를 입력하시오 => "))
num2 = int(input("두번째 숫자를 입력하시오 => "))
if num1 > num2:
min_num = num2
max_num = num1
else:
min_num = num1
max_num = num2
print()
return min_num, max_num
소수 출력하는 거 함수로 만들기
내 풀이:
답:
def process_proc(min_num, max_num):
cnt = 0
if min_num == 1:
min_num == 2
for i in range(min_num, max_num + 1):
for j in range(2, i):
if i % j == 0:
break
else: # 소수인 경우 수행
print("%5d" % (i), end="")
cnt += 1 # 소수의 갯수 카운트
if cnt % 10 == 0: # 소수의 갯수가 10의 배수면 줄바꿈 수행
print()
return cnt
총 소수 개수 출력하는 함수 만들기
내 풀이:
답:
def output_proc(cnt):
if cnt % 10 != 0:
print()
print("총소수의 갯수 = %d" % (cnt))
if __name__ == "__main__":
min_num, max_num = input_proc()
cnt = process_proc(min_num, max_num)
output_proc(cnt)