1. lec05_map_lambda.py
# -*- coding: utf-8 -*-
#map(),lambda함수
#map() : 순회가능한객체(iterable) 전체 각각에 함수적용
#lambda : 익명함수(함수의 이름이 없는 함수) lambda expression
#lambda를 사용하는 이유: 한번만 필요한 함수를 굳이 정의할 필요가 없음.
def double (x) :
return x*2
print(double(3))
list_a= [1,2,3,4,5]
#list_a에 있는 원소들에게 모두 double() 적용하여 새로운 리스트 만들기
#1. for문 사용
list_b=[]
for a in list_a :
list_b.append(double(a))
print(list_b)
#2. map()사용.
# 형식 : map(함수, 순회가능한 객체(리스트))
print(list(map(double, list_a)))
#3. lambda expression (표현식) 사용
# 형식 : lambda 매개변수 : 반환값(반환식)
print(list(map(lambda x:x*2, list_a)))
#Quiz : texts에 있는 단어를 모두 소문자로 변환하라.
texts=['I', 'like', 'banana', 'I', 'like', 'Apple']
print(list(map(lambda x: x.lower() ,texts)))
#sorted() :정렬, 각각의 원소에 적용할 수 있는 함수 지정
print(sorted(texts)) # 소문자, 대문자 섞여 있음.
#소문자로 바꾼 다음에 sorting
print(sorted(texts, key=lambda x:x.lower())) # 정렬만 소문자로 바꾼다음에
list_num=[1,3,2,6,8]
#sorting: reverse로 큰숫자가 먼저 나오게.
print(sorted(list_num, reverse=True))
print(sorted(list_num, key=lambda x: -x))
2. lec01_class.py
# -*- coding: utf-8 -*-
# 객체란 ? object:속성을 갖고 있는 실체(instance) (홍길동)
# 속성(attribute)란 ? 속성값(property, 변수)와 행동(behaviour,메서드)
# 클래스란? class : 객체의 종류를 정의. 개념적인 의미 (사람). 사용자가 정의한 타입
# 추상화 : 클래스를 만드는 작업
# 내장클래스(파이썬이 제공) : int
# 파이썬은 모든 것이 객체임.
#1이라는 int type의 객체를 만들어서 그 주소를 변수 num에 대입.
num=1
print(type(num)) #변수가 가리키는 객체의 타입
print(type(1)) #1의 타입
num='a'
#동적타이핑. 대입되는 객체의 타입에 의해서 그때그때 결정.
print(type(num)) #변수가 가리키는 객체의 타입
print(type('a')) #str 타입
#빈클래스
#형식 :
#class 클래스이름 () :
# body (블럭이므로 들여쓰기가 되어야함. )
class Book() :
pass
#객체 생성
num = Book()
#class 정의
class Student():
#생성자 (객체가 생성될 때 자동으로 호출)
def __init__(self, name, major) :
#property 변수
#self: 자기자신의 객체 (instance)
# 객체변수
self.name= name;
self.major = major;
print('객체 생성')
def goto_school(self) : #메서드에 항상 객체를 첫번째 매개변수로 넣어줘야 함.
name =self.name # name: 지역변수
print(name , '이 학교에 갑니다')
def learn(self) :
print(self.major, '를 배웁니다')
#객체 생성
student = Student("홍길동", "컴공")
#객체의 속성(멤버변수, 멤버메서드)에 접근하는 방법 : .으로 접근, 읽고쓰기 다 됨
student.goto_school()
student.learn()
print(student.name)
print(student.major)
student.name='shinsangrim'
student.goto_school()
#객체 생성
student = Student("김광길", "과학")
student.goto_school()
3. lec05_namespace.py
# -*- coding: utf-8 -*-
#namespace란 ? 네임스페이스. 변수이름이 유일한 공간.
# 네임스페이스가 다르면 변수이름이 같아도 됨.
#네임스페이스에 따른 변수의 종류
#1. 전역변수(global) : 네임스페이스 : 파일전체
#2. 지역변수(local) : 네임스페이스 : 지역변수가 선언된 함수
#전역변수 (파일내에서 다 통용)
global_a='I am a global'
#네임스페이스 규칙#1 : 네임스페이스가 다르면 참조가 안됨.
def func_1():
local_a = 1 #지역변수
print('func_1():', local_a)
#네임스페이스 규칙#2 : 네임스페이스의 안쪽영역(함수영역)에서는
#바깥쪽 네임스페이스(파일영역)의 변수를 참조(read)할 수 있음.
print('func_1():', global_a)
#print(local_a) ERROR! 지역변수이므로 함수내에서만 인식
func_1()
print(global_a)
#네임스페이스 규칙#3 : 네임스페이스의 안쪽영역(함수영역)에서
#바깥쪽 네임스페이스(파일영역)의 변수를 변경은 못함.
def func_2():
global_a=19 #지역변수를 새로 만든 결과임. 글로벌변수인 global_a와 아무관계가 없음.
local_a = 1 #지역변수
print('func_2():', local_a)
print('func_2():', global_a)
func_2()
print(global_a)
def func_3():
local_a = 1 #지역변수
print('func_3():', local_a)
print('func_3():', global_a) # 전역변수
#global_a=19 #전역변수 ERROR! 전역변수로 인식.
#지역변수를 대입전에 사용하려고 한다고 인식
func_3()
print(global_a)
#네임스페이스 규칙#4 : 네임스페이스의 안쪽영역(함수영역)에서 글로벌변수 변경방법
def func_4():
local_a = 1 #지역변수
global global_a # 글로벌 변수를 사용한다고 명시적으로 선언.
print('func_4():', local_a)
print('func_4():', global_a) # 전역변수
global_a=19
func_4()
print(global_a)
'웹_프론트_백엔드 > 단과' 카테고리의 다른 글
[단과_Python] 2020.01.29 (0) | 2020.01.29 |
---|---|
[단과_JAVA] 2020.01.29 (0) | 2020.01.29 |
[단과_JAVA] 2020.01.28 (0) | 2020.01.28 |
[단과_Python] 2020.01.23 (0) | 2020.01.23 |
[단과_JAVA] 2020.01.23 (0) | 2020.01.23 |