'+++++SW 일일 공부+++++'에 해당되는 글 40건

 

 

Card = [1,2,3,4,5,6,7,8,9,10,11,12]
Cardlen = len(Card)

Cardlist = []
for i in range(1<<Cardlen):
    CatchCard = [] 
    for it in range(Cardlen):
        if i & (1<<it):
            CatchCard.append(Card[it])
    Cardlist.append(CatchCard)


/*
for i in range(1,int(input())+1):
    many, hap = map(int, input().split())
    
    search = []
    for m in Cardlist:
        if many == len(m):
            search.append(m)
            
    resurt = []       
    for k in search:
        if sum(k) == hap:
            resurt.append(k)
            
    print("#{0} {1}".format(i, len(resurt)))
    */

해석

1<<Cardlen 은

0000 0000 0000 0001 을 변환한것이다 

Cardlen 12 임으로 1을 왼쪽으로 12번 옴긴다 

0001 0000 0000 0000 이 되게 되어 

이것을 10 진수로 바꾸면 

4096 임으로 

4096 번 반복하게 된다 

 

 

그리고 if  i  &(1<<it) 는

잘 봐야한다 

it은 12번 반복하고 있다 즉  1~12 이다

그리고 i 는 위에서 준

0000 0000 0000 0000 ~ 0001 0000 0000 0000 이다 

그중 맨앞이 비트가 같을때만 적는 다는 것이다 

0000 1101 1100 0001 & (0000 0000 0000 0000 ~ 0001 0000 0000 0000 한칸씩 움직이는 1을 비교함)

 

0000 0000 0110 0001 & 0000 0000 0000 0001 은 true 인가?? 

true 이다 그럼으로 하나를 새로 만든다 이유는 &연산자 즉 둘 중 하나가 속하면 True를 반환하는거 같다 

 

1024 2048 4096

 

그렇게 4096 2^12까지 다구한 집합체를 컴터가 준다

그렇게 집합이 모두다 완성된다 

 

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

SW 백트래킹 미로찾기  (0) 2020.04.19
SW 계산방법  (0) 2020.04.19
stack  (0) 2020.03.26
객체지향  (0) 2020.02.11
파이썬 문자열에 대하여  (0) 2020.02.07
블로그 이미지

Or71nH

,

쌓아 올리는 형태의 데이터로서 pop으로 마즈막 것을 빼넬수도 있다

### Pop 만들기

def pop():
	if len(s) ==0:
    	return
    else:
    	return s.pop(-1)

### 피보나치 수열

def fibo(n):
	if n < 2:
    	return n
    else:
    	return fibo(n-1) + fibo(n-2)

 

### 메모이제이션

def gibo1(n):
	global memo 
    if n >= 2 and len(memo) <= n :
    	memo.append(fibo1(n-1) + fibo1(n-2))
    return memo[n]

memo = [0, 1]

### DP(동적 계획법)

visited[], stack[]  ##초기화
DFS(v)
	v 방문;
    visited[v] <-true;
    do {
    	if (v의 인접 정점 중 방문 안한 w 찾기)
        	push(v);
        while(w){
        	w 방문;
            visited[w] <-true;
            push(w);
            v <-w;
            v의 인접 정점 중 방문 안 한 w 찾기
        }
        v<-pop(stack);
    }while(v)
end DFS()

### DFS( 깊이 우선 탐색 )

 

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

SW 계산방법  (0) 2020.04.19
트리구조의 모든 집합 구하기 시프트 활용  (0) 2020.04.09
객체지향  (0) 2020.02.11
파이썬 문자열에 대하여  (0) 2020.02.07
Python Dict()  (0) 2020.02.02
블로그 이미지

Or71nH

,

###객체지향

class 이름:

   self.__이름 = 넣을값

__ 이것설정이란

__이 붙으면 접근제한 기능을 부과한다

프라이빗 필드를 생성한다고 부른다

    @이름.getter   멤버를 읽어오는 메서드
    @이름.setter   멤버를 변경하는 메서드
    @classmethod    
    @property    

### def

def create(name, age):
	return {"name" : name, "age" : age}
    


def to_str(person):
	return "{0}\t{1}".format(person["name"],person["age"])
    
    
members= [
	create("홍길동", 20 ),
    create("이순신", 45),
    create("강감찬", 35)
]
   
for member in members:
	print(to_str(member))
 

### class

class Person:
	pass
    
    
member = Person()

if isinstance(member, Person):

	print("member는 Person 클래스의 인스턴스입니다.")
    
    

### class

class Person:
	def __init__(self, name, age):
    	self.name = name
        self.age = age
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
member = Person("홍길동", 20)

print("{0}\t{1}".format(member.name, member.age))

print(dir(member))

### class

class Person:
	def __init__(self, name, age):
    	self.name = name
        self.age = age
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

for member in members:
	print(member.to_str())
    

###class

class Person:
	def __init__(self, name, age):
    	self.name = name
        self.age = age
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

members[0].age = -20

for member in members:
	print(member.to_str())
    

###class

class Person:
	def __init__(self, name, age):
    	self.name = name
        self.age = age
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

members[0].age = -20

for member in members:
	print(member.to_str())
    

###class

class Person:
	def __init__(self, name, age):
    	self.__name = name
        self.__age = age
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    def get_name(self):
    	return self.__name
        
    def get_age(self):
    	return self.__age
        
    def set_age(self, age):
    	if age<0:
        	raise TypeError("나이는 0이상의 값만 허용합니다.")
        self.__age = age        
    
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

members[0].set_age(-20)

for member in members:
	print(member.to_str())
    

###class

class Person:
	def __init__(self, name, age):
    	self.__name = name
        self.__age = age
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    @property
    def name(self):
    	return self.__name
        
    @property
    def age(self):
    	return self.__age
        
    @age.setter
    def age(self, age):
    	if age<0:
        	raise TypeError("나이는 0이상의 값만 허용합니다.")
        self.__age = age        
    
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

members[0].age = 22

for member in members:
	print(member.to_str())
    

## count

class Person:
	count = 0
    
	def __init__(self, name, age):
    	self.__name = name
        self.__age = age
        Person.count += 1
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    @property
    def name(self):
    	return self.__name
        
    @property
    def age(self):
    	return self.__age
        
    @age.setter
    def age(self, age):
    	if age<0:
        	raise TypeError("나이는 0이상의 값만 허용합니다.")
        self.__age = age        
    
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

print("현재 Person 클래스의 인스턴스는 총 {0} 개입니다.".format(Person.count))


for member in members:
	print(member.to_str())
    

###classmethod

class Person:
	count = 0
    
	def __init__(self, name, age):
    	self.__name = name
        self.__age = age
        Person.count += 1
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    @property
    def name(self):
    	return self.__name
        
    @property           // 변수선언   . 하고 붙혀쓰면됨
    def age(self):
    	return self.__age
        
    @age.setter
    def age(self, age):
    	if age<0:
        	raise TypeError("나이는 0이상의 값만 허용합니다.")
        self.__age = age     
        
    @classmethod  //부모 객체를 불러옴
    def get_info(cls):   // cls 부모겍체 이름정함
    	return "현재 Person 클래스의 인스턴스는 총 {0} 개입니다.".format(cls.count)
        
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]

print("현재 Person 클래스의 인스턴스는 총 {0} 개입니다.".format(Person.count))

print(Person .get_info())

for member in members:
	print(member.to_str())
    

### 비교 하기

class Person:
	count = 0
    
	def __init__(self, name, age):
    	self.__name = name
        self.__age = age
        Person.count += 1
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    @property
    def name(self):
    	return self.__name
        
    @property           // 변수선언   . 하고 붙혀쓰면됨
    def age(self):
    	return self.__age
        
    @age.setter
    def age(self, age):
    	if age<0:
        	raise TypeError("나이는 0이상의 값만 허용합니다.")
        self.__age = age     
        
    @classmethod  //부모 객체를 불러옴
    def get_info(cls):   // cls 부모겍체 이름정함
    	return "현재 Person 클래스의 인스턴스는 총 {0} 개입니다.".format(cls.count)
        
    def __gt__(self, other):
    	return self.__age > other.__age //self의 __age필드가 other 객체의 __age 필드보다 크면 ture 반환
        
    def __ge__(self, other):
    	return self.__age >= other.__age // self의 __age 필드가 other 객체의 __age 필드보다 크거나 같으면 ture 반환
    
    def __lt__(self, other):
    	return self.__age < other.__age // self의 __age 필드가 other 객체의 __age 필드보다 작으면 true 반환

	def __le__(self,other):
    	return self.__age <= other.__age
    
    def __eq__(self, other):
    	return self.__age == other.__age
        
    def __ne__(self, other):
    	return self.__age != other.__age 
        
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]


cnt = len(members)
i = 0
while True:
	print("members[{0}] > members[{1}] => {2}".format(i, i + 1, members[i] > members[i + 1]))
    i += 1
    if i == cnt -1:
    	print("members[{0}] > members[{1}] => {2}".format(i, 0, members[i] > members[0]))
        break
        

### __str()__

class Person:
	count = 0
    
	def __init__(self, name, age):
    	self.__name = name
        self.__age = age
        Person.count += 1
        print("{0} 객체가 생성되었습니다. ".format(self.name))
        
    def __del__(self):
    	print("{0} 객체가 제거되었습니다. ".format(self.name))
        
    def to_str(self):
    	return "{0}\t{1}".format(self.name, self.age)
        
    @property
    def name(self):
    	return self.__name
        
    @property           // 변수선언   . 하고 붙혀쓰면됨
    def age(self):
    	return self.__age
        
    @age.setter
    def age(self, age):
    	if age<0:
        	raise TypeError("나이는 0이상의 값만 허용합니다.")
        self.__age = age     
        
    @classmethod  //부모 객체를 불러옴
    def get_info(cls):   // cls 부모겍체 이름정함
    	return "현재 Person 클래스의 인스턴스는 총 {0} 개입니다.".format(cls.count)
        
    def __gt__(self, other):
    	return self.__age > other.__age //self의 __age필드가 other 객체의 __age 필드보다 크면 ture 반환
        
    def __ge__(self, other):
    	return self.__age >= other.__age // self의 __age 필드가 other 객체의 __age 필드보다 크거나 같으면 ture 반환
    
    def __lt__(self, other):
    	return self.__age < other.__age // self의 __age 필드가 other 객체의 __age 필드보다 작으면 true 반환

	def __le__(self,other):
    	return self.__age <= other.__age
    
    def __eq__(self, other):
    	return self.__age == other.__age
        
    def __ne__(self, other):
    	return self.__age != other.__age 
        
    def __str__(self):
    	return "{0}\t{1}".format (self.__name ,self.__age)
        
member = [
	Person("홍길동", 20),
    Person("이순신", 45),
    Person("강감찬", 35)
]


for member in members:
	print(str(member))
    
        

### class child

class Parent:
    def __init__(self, family_name):
        self.__family_name = family_name
        print("Parent 클래스의 init() ..")
    
    @property
    def family_name(self):
        return self.__family_name
        
class Child(Parent):
    def __init__(self, first_name, last_name):
        Parent.__init__(self, last_name)
        #super().__init__(last_name)
        self.__first__name = first_name
        print("Child 클래스의 __init__() ..")
        
    @property
    def first_name(self):
        return self.__first_name
    
    @first_name.setter
    def first_name(self, first_name):
        self.__first_name = first_name
    
    @property
    def name(self):
        return "{0} {1}".format(self.family_name, self.first_name)
        
child = Child("길동", "홍")
print(child.family_name)
print(child.first_name)
print(child.name)

### 오머라이딩

# -*- coding: utf-8 -*-

class Person:
    def __init__(self, family_name):
        self.__family_name = family_name
        print("Parent 클래스의 __init__() ..")
    
    @property
    def family_name(self):
    	return self.__family_name
        
class Child(Parent):
    def __init__(self, first_name, last_name):
        Parent.__init__(self, last_name)
        # super().__init__(last_name)
        self.__first_name = first_name
        print("Child 클래스의 __init__()... ")
        
    @property
    def first_name(self):
    	return self.__first_name
        
    @first_name.setter
    def first_name(self, first_name):
    	self.__first_name = first_name
        
    @property
    def name(self):
    	return "{0} {1}".format(self.family_name, self.first_name)
    
    def print_info(self):
        Parent.print_info(self)
        # super().print_info()
        print("Child: {0}".format(self.name))
        
child = Child("길동", "홍")

child.print_info()

###연습

# -*- coding: utf-8 -*-

# 15-15.py

class Student:
	def __init__(self, name, gender, height):
    	self.__name = name
        self.__gender = gender
        self.__height = height
        
    @property
    def name(self):
    	return self.__name
        
    @property
    def gender(self):
    	return self.__gender
        
    @property
    def height(self):
    	return self.__height
    @height.setter
    def height(self, height):
    	self.__height = height
        
    def __repr__(self):
    	retrun "{0}(name: {1}, gender: {2}, height: {3})"\
        	.format(self.__class__.__name__, self.name, self.gender, self.height)
            
students = [
	student("홍길동", "남", 176.5),
    student("이순신", "남", 188.5),
    student("유관순", "여", 158.4),
    student("강감찬", "남", 182.2)
]
for student in students:
	print(student)
    
print ("name으로 오름차순 정렬후====>")
for student in sorted(students, key=lambda x: x.name):
	print(student)
print("name으로 내림차순 정렬 후 ===>")
for student in sorted(students, key=lambda x: x.name, reverse= True):
	print(student)
    

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

트리구조의 모든 집합 구하기 시프트 활용  (0) 2020.04.09
stack  (0) 2020.03.26
파이썬 문자열에 대하여  (0) 2020.02.07
Python Dict()  (0) 2020.02.02
파이썬 set(), 집합  (0) 2020.02.02
블로그 이미지

Or71nH

,

###단축키

str = "" + 문자열    두 문자열을 합쳐 넣어준다
"{0} 에서 {1}까지".format(문자열, 문자열)    문자를  대입하여 넣어준다
print("-"*13, end="") 원래 마즈막은 \n 마즈막을 바꾸어 줄바꿈이 없이 출력
print("'{0}'".format(data_str[start: end]))   출력할 부분 출력
len(data_str)   문자열 길이를 알려줌
data_str.find("찾을 문자")   문자를 찾아 시작위치를 출력한다
data_str.rfind("찾을 문자:)   문자를 찾아 끝위치를 출력한다
idx = data_str.index(input_str)   위와 같지만 에러가 발생한다
"사이사이 추가할 거 ".join(data_str)   한 문자마다 사이에 추가해준다
capiralize() lower() upper()   대소문자 만들기 함수
lstrip() rstrip() strip()   양쪽만 없에는 그런 함수
replace("찾을거", "변환할거")   찾은것을 모두 변환한다
split("찾을 문자")   입력 문자 기준으로 나누어 준다
"문자".isdigit()   숫자 문자열인 경우 true 반환

### 거꾸로 출력하기

idx = -1
while true:
	print("data_str[{0}] : {1}".format(idx, data_str[idx]))
    if idx == -cnt:
    	break
        idx -= 1

### 문자열 특정 부분 출력

data_str = "와우! 안녕하세요, 파이썬입니다."

start = input("시작 인덱스를 입력하세요: ")
end = input("종료 인덱스를 입력하세요: ")

try
	end = int(end)
except ValueError:
	end = None
    
print("'{0}'".format(data_str[start: end]))

// 숫자를 넣으면 사이값을 출력

###갯수알아내기

data_str = "Have a nice day!"

print("'{0}'".format(data_str))
input_str = input("위에서 찾고자 하는 문자열을 입력하세요: ")

print("'{0}'에서 '{1}'은 {2} 번 나타납니다.".format(data_str, input_str, data_str.count(input_str)))

### 찾고자 하는 문자열 

data_str = "파이썬은 클래스를 이용해 객체를 생성하는 갯체지향 프로그래밍 언어입니다."

print("'{0}'".format(data_str))
input_str = input("위에서 찾고자하는 문자열을 입력하세요: ")

print("str.find() ...")
idx = data_str.find(input_str)

if idx != -1:
	print("\t'{0}' : [{1}] <= 문자열을 가장 먼저 찾은 위치".format(input_str, idx))
else:
	print("\t'{0}'를 찾을 수 없습니다.".format(input_str))
    
print("str.rfind() ...")
idx = data_str.rfind(inpur_str)

if idx != -1:
	print("\t'{0}' : [{1}] <= 문자열을 가장 마즈막 찾은 위치".format(input_str, idx))
else:
	print("\t'{0}'를 찾을 수 없습니다.".format(input_str))
    
print("str.index() ...")
try:
	idx = data_str.index(input_str)
    print("\t'{0}' : [{1}] <= 문자열을 가장 먼저 찾은 위치".format(input_str, idx))
except ValueError:
	print("\t'{0}'를 찾을 수 없습니다.".format(input_str))

### join()

data_str ="가나다라마바사아자차카타파하"
comma_space = ", "

output = comma_space.join(data_str)
print("{-}: {1}".format(type(output), output))

### capiralize() lower() upper()

data_str = "better tomorrow"

data_str = data_str.capitalize()
print("'{0}'".format(data_str_))
 // 맨앞만 대문자로함

data_str = data_str.lower()

// 모든 문자 소문자로 변환

data_str = data_str.upper()

//모든 문자 소문자로 변환

###lstrip() rstrip() strip()

data_str = " 홍 길동 "
data_str = data_str.lstrip(" ")
print("'{0}' : ({1})".format(data_str, len(data_str)))

/// 왼쪽에서 다른거 나올때 까지 제거 


data_str = "___홍  길 동______  "
data_str = data_Str.rstrip("_ ")
print("'{0}' : ({1})".format(data_str, len(data_str)))

//오른쪽에서 따른거 나올때 까지 제거

data_str = " 0?홍  길동  _#     "
data_str = data_Str.strip(" 0?_#")
print("'{0}' : ({1})".format(data_str, len(data_str)))

/// 양쪽에서 다른거 나올떄까지 제거한다

### replace ()

data_str = "10....20.....30.....40.....50"

data_str =data_str.replace("."*4, "\t")
print(data_str)



data_str = "10, 20, 30, 40, 50"

data_str = data_str.replace(" ","")
print(data_str)

data_list = data_str.split(",")
for val in data_list:
	print(val)

### split()

data_str = "10, 20, 30, 40, 50"

data_str = data_str.replace(" ","")
print(data_str)

data_list = data_str.split(",")
for val in data_list:
	print(val)

 

###문자열 구성 확인 방법 isdigit():

data_str = "10, 20, 3o, 40 ,50"

data_str = data_str.replace(" ", "")
print(data_str)

data_list = data_str.split(",")
for val in data_list:
	print(val, end=" ")
    if not val.isdigit():
    	print("<= ", end="")
    print()

 

# -*- coding: utf8 -*-

data_str = " 파이썬은 클래스를 이용해 객체를 생성하는 객체지향 프로그래밍 언어입니다."

find_str = "객체"

===============(문자 하나 찾기)==================================
idx = data_str.find(find_str, 15) /// find("찾을문자" , 시작위치)

print(idx)
==========(문자 모두다 찾기)========================
idx = -1 

count = 1
while True: 
	idx = data_str.find(find_str, idx + 1 )
    if idx != -1:
    	print("[0] ~[1]".format(idx, idx + len(find_str) -1))
        new_str = data_str.replace(find_str,"****", 1)replace("문자열","변환할거",몇번할것인지)
        print(new_str)
        count += 1
    else:
    	break
        
 =======================================

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

stack  (0) 2020.03.26
객체지향  (0) 2020.02.11
Python Dict()  (0) 2020.02.02
파이썬 set(), 집합  (0) 2020.02.02
파이썬 받은 값 문자열 정렬 영어사전만들기  (0) 2020.02.02
블로그 이미지

Or71nH

,

###Dict

data_dict = {제목 : 값, 제목2, 값2}   이름이 있는 값 생성
dict(제목=값, 제목=값, 제목=값)   딕셔너리 생성
dict(data_tuple)   튜플 딕셔너리로 변환
data_dict[제목]   제목에 맞는 값을 출력함
datga_dict.update({이름 : 값, 이름:값})   추가 or 수정
del data_dict[이름]   이름을 가진것 삭제
data_dict.pop(이름)   위와 같음같음
data_dict.clear()   다 삭제
이름 in data_dict   이름있으면 true
이름 nor in data_dict   이름 없으면 true
data_dict.items   리스트 튜플 형태로 모든 값 반환
data_dict.keys   리스트 형태로 키워드 반환
data_dict.values   리스트 형태로 값 반환

###  dict 바꾸기

data_tuple = (("홍길동", 20), ("이순신", 45), ("강감찬", 35))
data_dict = dict(data_tuple)
print("data_dict:{0} {1}".format(type(data_dict), data_dict))

data_list = [("홍길동", 20), ("이순신", 45), ("강감찬", 35)]
data_dict2 = dict(data_list)
print("data_dict:{0} {1}".format(type(data_dict2), data_dict2))

data_set = {("홍길동", 20), ("이순신", 45), ("강감찬", 35)}
data_dict3 = dict(data_set)
print("data_dict:{0} {1}".format(type(data_dict3), data_dict3))

### dict 추가 or 수정

data_dict1 = {
	"홍길동": 20,
    "이순신": 45,
    "강감찬": 35
}

print("data_dict1: {0} {1}".format(type(data_dict1), data_dict1))

data_dict1["을지문덕"] = 40  //객체 이름[ 중복되ㅣ지 않은 키] = 값
print("data_dict1: {0} {1}".format(type(data_dict1), data_dict1))

data_dict1.update({"심사임당": 50,  "유관순": 16})
print(data_dict1: {0} {1}".format(type(data_dict1), data_dict1))

### item, keys, values

data_dict1 = {
	"홍길동": 20,
    "이순신": 45,
    "강감찬": 35
}

print("data_dict1: {0} {1}".format(type(data_dict1), data_dict1))

print("{0} {1}".format(type(data_dict1.items()), data_dict1.items()))
print("{0} {1}".format(type(data_dict1.keys()), data_dict1.keys()))
print("{0} {1}".format(type(data_dict1.values()), data_dict1.values()))

for key in data_dict1:
	print("key, data_dict1[key] => '{0}', {1}".format(key, data_dict1[key]))
    
for key in data_dict1.keys():
	print("key, data_dict1[key] => '{0}', {1}".format(key, data_dict1[key]))
   
for item in data_dict1.item():
	print("item[0], item[1] => '{0}, {1}".format(item[0], item[1]))

for key, value in data_dict.items():
	print("key, value => '{0}, {1}".format(key, value))

for value in data_dict.values():
	print("value => {0}".format(value))


///////////////////////////////////////
data_dict2 = {key : value for key, value in data_dict1.items()}
///////////////////////////////////////
    
    

### 학생들 총점 및 평균 구하기

# -*- coding: utf-8 -*-

scores = []

count = int(input("총 학생의 수를 입력하세요: "))

for i in range(1, count +1):
	score = {}
    score["name"] = input("학생의 이름을 입력하세요: ")
    score["kor"] = int(input("{0} 학생의 국어 점수를 입력하세요: ".format(score["name"])))
    score["mat"] = int(input("{0} 학생의 수학 점수를 입력하세요: ".format(score["name"])))
    score["emg"] = int(input("{0} 학생의 영어 점수를 입력하세요: ".format(score["name"])))
    scores.append(score)
    
for score in scores:
	total = 0
    for key in score:
    	if key != "name":
        	total += score[key]
    print("{0} => 총점: {1}, 평균: {2:0.2f}".format(score["name"], total, total/3))

kor_total, mat_total, eng_total = 0, 0, 0
for score in scores:
	for key in score:
    	if key == "kor":
        	kor_totla += score[key]
        elif key == "mat":
        	mat_total += score[key]
        elif key =="eng": 
        	eng_total += score[key]

### sorted value 값 적용

 sorted(d.items(), key=lambda x: x[1]

 

블로그 이미지

Or71nH

,