from itertools import permutations

문자열이된 숫자 배열 = list(map(str,숫자 배열)) 
for i in range(1,len(숫자배열)+1):
	for permu in permutations(문자열이된 숫자 배열,i):
    	result.append(''.join(permu))
result = list(map(int,result))
# 중복된 값을 제거하구 싶으면 set을 활용한다.
resultSet = set(result)

 

1. conda activate 가상환경 명령어로 가상환경을 실행한다.

2. conda install -c anaconda pywin32 명령어를 실행한다. 

tip) 아나콘다 프롬프트(base) 환경에서 pywin32를 설치해도 가상환경 위에서 pywin32 설치를 해주지않으면

pywin32 관련 오류가 발생할 수 있다. 

9_day.ipynb
0.01MB

 

 

 

성적을 입력받아 합격 여부를 알려주는 프로그램

In [16]:
graduation,score = map(float, input("졸업학점과 이수학점을 입력하시오. : ").split())

if graduation >=2.0 and score >=140:
    print("졸업가능")
elif graduation < 2.0 and score >=140 :
    print("졸업학점 부족")
elif score <140 and graduation >=2.0 :
    print("이수학점 부족")
else :
    print("둘다 부족")
 
졸업학점과 이수학점을 입력하시오. : 2.0 140
졸업가능
 

출생년도를 입력받아서 재난지원금 신청 가능 요일 알려주는 프로그램

In [21]:
str = input("출생년도를 입력하시오. : ")
if str[3] == '1' or str[3] == '6':
    print("월요일에 재난 지원금 신청 가능")
elif str[3] == '2' or str[3] == '7':
    print("화요일에 재난 지원금 신청 가능")
elif str[3] == '3' or str[3] == '8':
    print("수요일에 재난 지원금 신청 가능")
elif str[3] == '4' or str[3] == '9':
    print("목요일에 재난 지원금 신청 가능")
elif str[3] == '5' or str[3] == '0':
    print("금요일에 재난 지원금 신청 가능")
 
출생년도를 입력하시오. : 1990
0
금요일에 재난 지원금 신청 가능
 

문자열을 입력받아 홀수자리의 문자열이면 가운데 짝수면 가운데 근접 2문자를 출력하는 프로그램

In [34]:
str = input("문자열을 입력하세요")
len1 = len(str)%2
len2 = len(str)/2

if len1:
    print(str[round(len2)])
else :
    print(str[int(len2 -1)], str[int(len2)])
    
 
문자열을 입력하세요python
t h
 

외부 파일 리스트 정보를 통해 합계와 평균을 구하는 프로그램

In [49]:
import math

f = open('score.txt','r')
line = f.readline()
a= list(map(int,line.split(',')))
sum1, avg1 =math.ceil(sum(a)), round(sum(a)/len(a),2)
print("합계는", sum1, "평균은", avg1, "입니다.")
 
합계는 169 평균은 28.17 입니다.
 

컴퓨터와 가위바위보 하는 프로그램

In [69]:
import random
count =0

while True:
    rn = random.randint(1, 3)
    if rn==1:
        com = '가위'
    elif rn==2:
        com = '바위'
    elif rn==3:
        com = '보'
        
    player = input("가위, 바위, 보 중 하나를 입력하세요.")
    if player =='가위' or player =='보' or player=='바위' :
        if (com=='가위' and player== '보') or(com=='바위' and player== '가위') or(com=='보' and player== '바위') :
            print('com='+com+'  player='+player+' is com win')
                    
        elif (com=='보' and player== '가위') or(com=='가위' and player== '바위') or(com=='바위' and player== '보') :
            print('com='+com+'  player='+player+' is player win')
            count += 1
            if count >=3 :
                print("player가 3승으로 종료합니다.")
                break
        else :
            print('com='+com+'  player='+player+' is draw')                  
    else :
        print("잘못 입력했습니다.")
        continue
        
 
가위, 바위, 보 중 하나를 입력하세요.가위
com=바위  player=가위 is com win
가위, 바위, 보 중 하나를 입력하세요.바위
com=가위  player=바위 is player win
가위, 바위, 보 중 하나를 입력하세요.보
com=바위  player=보 is player win
가위, 바위, 보 중 하나를 입력하세요.보
com=보  player=보 is draw
가위, 바위, 보 중 하나를 입력하세요.보
com=가위  player=보 is com win
가위, 바위, 보 중 하나를 입력하세요.가위
com=가위  player=가위 is draw
가위, 바위, 보 중 하나를 입력하세요.보
com=바위  player=보 is player win
player가 3승으로 종료합니다.

3_day.ipynb
0.02MB

 

In [1]:
dic={1:'a'}
In [2]:
dic
Out[2]:
{1: 'a'}
In [3]:
dic[2] ='b'
dic
Out[3]:
{1: 'a', 2: 'b'}
In [4]:
dic[3] = [1,2,3]
dic
Out[4]:
{1: 'a', 2: 'b', 3: [1, 2, 3]}
In [6]:
dic["name"]="honggildong"
dic
Out[6]:
{1: 'a', 2: 'b', 3: [1, 2, 3], 'name': 'honggildong'}
In [7]:
del dic[2]
dic
Out[7]:
{1: 'a', 3: [1, 2, 3], 'name': 'honggildong'}
In [8]:
dic['name']
Out[8]:
'honggildong'
 

리스트는 키 값으로 사용할 수 없다.

In [9]:
dic[[1,2,4]] =[1,2,3,4]
 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-87103fba05b6> in <module>
----> 1 dic[[1,2,4]] =[1,2,3,4]

TypeError: unhashable type: 'list'
In [10]:
dic.keys()
Out[10]:
dict_keys([1, 3, 'name'])
In [11]:
dic.values()
Out[11]:
dict_values(['a', [1, 2, 3], 'honggildong'])
In [12]:
dic.items()
Out[12]:
dict_items([(1, 'a'), (3, [1, 2, 3]), ('name', 'honggildong')])
In [13]:
dic.get('name')
Out[13]:
'honggildong'
In [14]:
dic[2]
 
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-14-f9d6f1c3d59c> in <module>
----> 1 dic[2]

KeyError: 2
 

get()함수를 사용하면 오류가 발생 하지 않는다. 되도록 get을 사용하자

In [16]:
dic.get(2)
In [17]:
print(dic.get(2))
 
None
 

키값 in 딕셔너리

In [18]:
3 in dic
Out[18]:
True
In [19]:
2 in dic
Out[19]:
False
In [21]:
s1=set([1,2,3])
s1
Out[21]:
{1, 2, 3}
In [22]:
s2 = set("hello")
s2
Out[22]:
{'e', 'h', 'l', 'o'}
In [23]:
s3=[s1]
s3
type(s3)
Out[23]:
list
 

집합 정의

In [25]:
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
 

차집합

In [29]:
print(s1-s2)
print(s1.difference(s2))
print(s2-s1)
print(s2.difference(s1))
 
{1, 2, 3}
{1, 2, 3}
{8, 9, 7}
{8, 9, 7}
 

합집합

In [31]:
print(s1 | s2)
print(s1.union(s2))
 
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
 

교집합

In [28]:
print(s1 & s2)
print(s1.intersection(s2))
 
{4, 5, 6}
{4, 5, 6}
 

값 1개 추가하기(add)

In [32]:
s1 = set([1, 2, 3])
s1.add(4)
s1
Out[32]:
{1, 2, 3, 4}
 

값 여러 개 추가하기(update) tip) 리스트로 추가해야한다.

In [33]:
s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1
Out[33]:
{1, 2, 3, 4, 5, 6}
In [34]:
a=True
b=False
In [35]:
type(a)
Out[35]:
bool
In [36]:
c=5
d=7
c>d
Out[36]:
False
In [37]:
c == d
Out[37]:
False
In [38]:
c != d
Out[38]:
True
In [39]:
bool(2)
Out[39]:
True
In [40]:
bool(-1)
Out[40]:
True
In [41]:
bool("kyungnam")
Out[41]:
True
In [42]:
bool(" ")
Out[42]:
True
In [43]:
bool("")
Out[43]:
False
In [44]:
1 and 0
Out[44]:
0
In [45]:
1 or 0
Out[45]:
1
In [46]:
not False
Out[46]:
True
In [48]:
a=[1,2,3,4]
while a:
    print(a.pop())
 
4
3
2
1
In [ ]:
str1="kyungnam"
In [49]:
apple=10
Apple=20
In [50]:
print(apple)
print(Apple)
 
10
20
In [51]:
print(APple)
 
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-51-08860365de26> in <module>
----> 1 print(APple)

NameError: name 'APple' is not defined
 

파이썬에서는 변수명이 다르더라도 값이 같으면 같은 위치에 저장된다.

In [52]:
a=3
b=3
print(id(a))
print(id(b))
 
140707594805712
140707594805712
In [53]:
x=input()
 
10
In [54]:
print(x)
 
10
In [56]:
print('1', '2', '3', sep=":")
print('1', '2', '3', end=":")
 
1:2:3
1 2 3:
In [58]:
#한줄 주석
'''
여러줄
주석
'''
print("hello")
 
hello
 

3주차 문제

In [65]:
#1번
mid_term={'kor':90, 'eng':100, 'math':80}
del mid_term['eng']
mid_term['math'] = 80
mid_term['computer'] = 100;
print(mid_term)
 
{'kor': 90, 'math': 80, 'computer': 100}
In [94]:
#2번
final_term={'kor':90, 'eng':100, 'math':80}
total = sum(final_term.values())
term_avg = total/len(final_term)
print('총점 :', total)
print('평균 : ', term_avg)
 
총점 : 270
평균 :  90.0

4_Day.ipynb
0.01MB

 

제어문(if문)

  • 주의 사항
    들여쓰기를 잘 해야한다.
    파이썬은 들여쓰기로 구문을 구분한다.
In [2]:
a=3
if a>5:
    print("참")
else:
    print("거짓")
 
거짓
In [4]:
money=True
if money :
    print("택시를 타고 가라")
 
택시를 타고 가라
 

만약 영어(eng) 점수가 90점 이상이면 합격을 나타내고 아니면 불합격을 나타내시오

  • input으로 입력받는 값은 문자열이다.
In [7]:
eng = int(input("영어 점수 입력: "))
if eng>=90:
    print("합격")
else:
    print("불합격")
 
영어 점수 입력: 100
합격
 

영어 점수가 90점 이상이고 수학점수가 90점이상이면 합격이고 아니면 불합격이다.

In [8]:
eng = 80
math = 90
if eng >=90 and math >=90:
    print("합격")
else:
    print("불합격")
 
불합격

 

In [9]:
1 in [1,2,3]
Out[9]:
True
In [10]:
4 in [1,2,3]
Out[10]:
False
In [12]:
pocket=['paper','phone','coin']
if 'money' in pocket or 'card' in pocket:
    print("택시")
elif 'coin' in pocket:
    print("걸어서")
 
걸어서
 

Quiz

주민등록번호 13자리를 입력 받아 성별이 남자인지 여자인지 나타내시오.

In [34]:
citizen_num = input("주민번호를 입력하시오: (-제외)")
if citizen_num[6] =='1' or citizen_num[6]=='3':
    print("남자")
else: 
    print("여자")
 
주민번호를 입력하시오: (-제외)1231233123123
남자
In [23]:
i=0
while i<10:
    print(i,end=' ')
    i =i+1
 
0 1 2 3 4 5 6 7 8 9 
In [24]:
i=0
while i<10:
    print(i,end=' ')
    i =i+1
    if i ==7:
        break;
 
0 1 2 3 4 5 6 
 

continue는 되도록 사용하지 않는 것이 바람직하다

In [26]:
i=0
while i<10:
    i =i+1
    if i ==7:
        continue
    print(i,end=' ')
    
 
1 2 3 4 5 6 8 9 10 
In [28]:
a=0
while a<10:
    a=a+1
    if a%2 ==0 : continue
    print(a)
 
1
3
5
7
9
 

무한 반복시 Kernel -> interupt

In [29]:
while True:
    x=input()
    if(x == 'q'):
        break;
 
d\
e
q
 

Quiz

while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해 보자

In [32]:
i, sum =1, 0

while i<=1000:
    if(i%3 == 0 or i==1):
        sum += i
    i +=1
print("sum: ", sum)
 
sum:  166834

5_day.ipynb
0.01MB

 

 

In [1]:
test=['one', 'two', 'three']

for i in test:
    print(i)
 
one
two
three
In [3]:
marks=[90, 25, 67, 45, 80]

for i in marks:
    if i >= 90 :
        print("합격")
    else:
        print("불합격")
 
합격
불합격
불합격
불합격
불합격
In [9]:
for i in range(1, 11, 3):
        print(i)
 
1
4
7
10
 

Quiz for문을 사용해 1부터 100까지의 숫자를 출력해 보자

In [26]:
for i in range(1,101):
    print('{}'.format(i), end=' ')
    if(i%10 == 0 ):
        print(' ')
    
 
1 2 3 4 5 6 7 8 9 10  
11 12 13 14 15 16 17 18 19 20  
21 22 23 24 25 26 27 28 29 30  
31 32 33 34 35 36 37 38 39 40  
41 42 43 44 45 46 47 48 49 50  
51 52 53 54 55 56 57 58 59 60  
61 62 63 64 65 66 67 68 69 70  
71 72 73 74 75 76 77 78 79 80  
81 82 83 84 85 86 87 88 89 90  
91 92 93 94 95 96 97 98 99 100  
 

Quiz A 학습에 총 10명의 학생이 있다.

학생들의 중간고사 점수는 다음과 같다.

[70, 60, 55, 75, 95, 90, 80, 80, 85, 100]

for문을 사용하여 평균을 구하는 프로그램을 완성하시오.

In [29]:
std_score = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
sum = 0;
avg = 0;
for i in std_score:
    sum = sum + i
avg = sum/len(std_score)
print("avg: ", avg)
 
avg:  79.0
 

while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해 보자

In [33]:
i=1
sum=0
while 1000>=i:    
    if i%3 == 0 or i==1:
        sum = sum + i
    i = i+1    
    
print(sum)
 
166834
 

4차시 종합 과제

 

1번

In [1]:
num1 = int(input("player1님 숫자를 입력하세요."))
print('----------------------------')
while True:
    num2 = int(input("player2님 숫자를 입력하세요."))
    if num1 == num2:
        print(num2, "is correct number!")
        break
    elif num1>num2:
        print(num2, "is small number !",end='\n\n')
    elif num1<num2:
        print(num2, "is big number !",end='\n\n')
print("game over")
    
 
player1님 숫자를 입력하세요.20
----------------------------
player2님 숫자를 입력하세요.1
1 is big number !

player2님 숫자를 입력하세요.20
20 is correct number!
game over
 

2번

In [1]:
while True:
    num1 = int(input("player1님 숫자를 입력하세요."))
    print('----------------------------')
    if num1 >=1 and num1<=10:
        break;
    print("1~10사이의 숫자를 입력하세요")
    
while True:
    num2 = int(input("player2님 숫자를 입력하세요."))
    if num2<1 or num2 >10:
        print("1~10사이의 숫자를 입력하세요.")
        continue
    if num1 == num2:
        print(num2, "is correct number!")
        break
    elif num1>num2:
        print(num2, "is small number !",end='\n\n')
    elif num1<num2:
        print(num2, "is big number !",end='\n\n')
print("game over")
    
 
player1님 숫자를 입력하세요.55
----------------------------
1~10사이의 숫자를 입력하세요
player1님 숫자를 입력하세요.10
----------------------------
player2님 숫자를 입력하세요.55
1~10사이의 숫자를 입력하세요.
player2님 숫자를 입력하세요.11
1~10사이의 숫자를 입력하세요.
player2님 숫자를 입력하세요.7
7 is big number !

player2님 숫자를 입력하세요.-10
1~10사이의 숫자를 입력하세요.
player2님 숫자를 입력하세요.5
5 is big number !

player2님 숫자를 입력하세요.10
10 is correct number!
game over
 

3번

In [13]:
count =0
count_max = 5

while True:
    num1 = int(input("player1님 숫자를 입력하세요."))
    print('----------------------------')
    if num1 >=1 and num1<=10:
        break;
    print("1~10사이의 숫자를 입력하세요")
    
while True:
    if count >= count_max:
        print("5번의 기회를 모두 사용하셨습니다.")
        break
    
    num2 = int(input("player2님 숫자를 입력하세요."))
    if num2<1 or num2 >10:
        print("1~10사이의 숫자를 입력하세요.")
        continue
    
    count = count +1
    
    if num1 == num2:
        print(num2, "is correct number!")
        break
    elif num1>num2:
        print(num2, "is small number !",end='\n\n')
    elif num1<num2:
        print(num2, "is big number !",end='\n\n')
print("game over")
    
 
player1님 숫자를 입력하세요.11
----------------------------
1~10사이의 숫자를 입력하세요
player1님 숫자를 입력하세요.10
----------------------------
player2님 숫자를 입력하세요.1
1 is small number !

player2님 숫자를 입력하세요.2
2 is small number !

player2님 숫자를 입력하세요.3
3 is small number !

player2님 숫자를 입력하세요.4
4 is small number !

player2님 숫자를 입력하세요.5
5 is small number !

5번의 기회를 모두 사용하셨습니다.
game over
In [ ]:
 

8_day.ipynb
0.01MB

 

 

 

 

1. 모듈

  • 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일
  • 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있음
In [6]:
import mod1

print(mod1.add(2,1))
 
3
In [9]:
# 이렇게 호출하면 모듈 이름을 사용하지 않아도 된다.
from mod1 import sub
In [8]:
sub(5,2)
Out[8]:
3
In [11]:
from mod2 import *
add(1,2)
Out[11]:
3
In [13]:
import mod3
 
5
2
In [17]:
import mod4
In [26]:
import hello13
 
__name__: hello13
In [28]:
import sys
sys.path
Out[28]:
['C:\\Users\\kimde',
 'C:\\ProgramData\\Anaconda3\\python37.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs',
 'C:\\ProgramData\\Anaconda3\\lib',
 'C:\\ProgramData\\Anaconda3',
 '',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\kimde\\.ipython']
 

2. 예외처리

In [29]:
4/0
 
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-29-221068dc2815> in <module>
----> 1 4/0

ZeroDivisionError: division by zero
In [30]:
try:
    4/0
except ZeroDivisionError:
    print("0으로 나누었음")
 
0으로 나누었음
In [31]:
try:
    4/0
except ZeroDivisionError as e:
    print(e)
 
division by zero
In [33]:
f=open("bbb.txt",'r')
 
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-33-093f96f3ea3d> in <module>
----> 1 f=open("bbb.txt",'r')

FileNotFoundError: [Errno 2] No such file or directory: 'bbb.txt'
In [36]:
try:
    f = open("bbb.txt",'r')
except ZeroDivisionError as e:
    print(e)
except FileNotFoundError as e:
    print(e)
 
[Errno 2] No such file or directory: 'bbb.txt'
In [38]:
try:
    f=open("ccc",'r')
except:
    print("에러 발생")
else:
    data = f.read()
    f.close()
 
에러 발생
 

예외처리 과제

In [2]:
while True:  
    try:
        a,b =map(int, input("2개 정수 입력: ").split())
        c= a/b
    except ValueError:
        print("유요한 정수가 아닙니다. 다시 입력하세요.")
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다. 다시 입력하세요")
    else:
        break
print(a,'/',b,'=',c,'입니다.')
 
2개 정수 입력: 10
유요한 정수가 아닙니다. 다시 입력하세요.
2개 정수 입력: 10 하나
유요한 정수가 아닙니다. 다시 입력하세요.
2개 정수 입력: 10 0
0으로 나눌 수 없습니다. 다시 입력하세요
2개 정수 입력: 4 1
4 / 1 = 4.0 입니다.

7_day.ipynb
0.01MB

 

 

 
 

파이썬 함수 기본 예제

In [1]:
result = 0
def adder(num):
    global result
    result += num
    return result

print(adder(3))
print(adder(4))
 
3
7
In [5]:
result1 = 0
result2 = 0

def adder1(num):
    global result1
    result1 += num
    return result1

def adder2(num):
    global result2
    result2 += num
    return result2
print(adder1(3))
print(adder1(4))
print(adder2(3))
print(adder2(7))
print(result1)
print(result2)
 
3
7
3
10
7
10
 

self는 본인 자신을 가리키는 것 이다.

In [24]:
class Calcurator:
    def __init__(self):
        self.result=0
        
    def adder(self, num):
        self.result+=num
        return self.result
    def sub(self, num):
        self.result -=num
        return self.result
In [25]:
cal1 = Calcurator()
In [26]:
cal1.adder(4)
Out[26]:
4
In [27]:
cal2 = Calcurator()
In [28]:
cal2.adder(3)
Out[28]:

 

3
In [29]:
cal1.sub(2)
Out[29]:
2
 

클래스 기본 구조

In [30]:
class Student:
    name = "홍길동"
    def info(self):
        print("제 이름은 "+self.name + "입니다.")
In [33]:
inst = Student()
inst.name
Out[33]:
'홍길동'
In [34]:
inst.info()
 
제 이름은 홍길동입니다.
 
init(self) 는 생성자이다.

생성자: 객체가 생성될때 수행되는 메소드

 

In [ ]:
class Student:
    name = "홍길동"
    def info(self):
        print("제 이름은 "+self.name + "입니다.")
 

University 클래스는 Student 클래스로부터 상속 받고있다.

In [40]:
class University(Student):
    major = "컴퓨터공학"
    name="이순신"
    
    def intro(self):
        print("제이름은 "+self.name+"이고 전공은"+self.major+"입니다.\n")
In [41]:
inst2=University()
In [37]:
inst2.major
Out[37]:
'컴퓨터공학'
In [38]:
inst2.name
Out[38]:
'홍길동'
 

부모 클래스의 변수 name을 University 자식 클래스에서 재정의(오버라이딩) 하였다.

In [42]:
inst2.name
Out[42]:
'이순신'
 

응용 예제

In [44]:
class Calculator():
    def __init__(self):
        self.rsult=0
    def add(self, num1, num2):
        self.result = num1 + num2
        print(self.result)
In [47]:
class UpgradeCalculator(Calculator):
    def __init__(self):
        self.result = 0
    def minus(self, num1, num2):
        self.result = num1 - num2
        print(self.result)
In [48]:
cal1 = UpgradeCalculator()
cal1.add(1,2)
cal1.minus(3,1)
 
3
2
In [66]:
class exam():
    korean, english, math = 0, 0, 0
    def __init__(self):
        self.result=0
        
    def f_input(self,input_korean, input_english, input_math):
        korean = input_korean
        english = input_english
        math = input_math
        self.result = korean + math + english
        
    def f_sum(self):
        print(self.result)
        
    def f_avg(self):
        print(self.result/3)
        
    def f_print(self):
        print("총점:", self.result, "평균:",self.result/3)
        

 

In [67]:

 

exam1 = exam()
exam1.f_input(10, 20, 30)
exam1.f_sum()
exam1.f_avg()
exam1.f_print()
 
60
20.0
총점: 60 평균: 20.0

 

<딕셔너리 자료형>

- 단어 그대로 해석하면 사전이라는 뜻

- Key(키)를 통해 Value(값)라는 것을 한 쌍으로 갖는 자료형

- 리스트나 튜플처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻음

- key와 value들을 중괄호로 묶어서 정의

- key와 value는 콜론(:)으로 구분

- key는 중복 및 변경 불가. 중복시 앞에 값에 덧씌운다

- key: 변하지 않는 값을 사용

- Value: 변하는 값과 변하지 않는 값 모두 사용

{ Key1:Value1, Key2:Value2, Key3:Value3, ... }

- key에는 숫자, 문자열, 튜플만 사용 가능

- value는 어떤 값도 사용 가능

- 인덱싱, 슬라이싱 불가능

- value 변경 가능

- 딥러닝에서 자료 분석할 때 사용한다.

 

 

 

딕셔너리 값 삭제하기

 

키가 2인 값을 del 함수를 사용하여 제거하였다.

 

딕셔너리 키 값이나 속성 값을 참조하는 방법

 

딕셔너리에서 dic[2] 이런 식으로 값을 찾을 때 값이 없으면 오류가 발생한다.

dic[2]을 대신해서 dic.get(2) 이런 식으로 get() 함수를 활용하면 오류가 발생하지 않는다.

딕셔너리 키 값 존재 여부 확인하는 방법

 

<집합 자료형>

집합에 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형

 

특징

- 중복을 허용하지 않는다.

- 순서가 없다(Unordered)

- 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 가능

ㅣ이 2개지만 중복을 허용하지 않아 집합에는 l 하나가 존재한다.

순서가 엉망 진창으로 들어가 있는 것을 확인할 수 있다.

 

 

집합을 리스트로 변환하였다.

 

차집합, 합집합, 교집합

 

집합에 값 추가해보기

<불 자료형>

- 논리 연산자를 통한 논리 연산이나. 수치를 비교할 때 사용하는 비교 연산자의 결과로 사용한다.

- 논리곱을 의미하는 and(&), 논리합을 의미하는 or(|)

 

 

리스트의 원소가 모두 빠져나가면 false값이 된다.

 

 

<특이한 파이썬의 값 성질>

<파이썬 주석>

아래 자료는 오늘 살펴본 주피터 노트 파일입니다.

3_day.ipynb
0.02MB

8진수 표현 -> 0o34

 

제곱 연산자

>>> a = 3

>>> b = 4

>>> a**b

81

 

나머지 연산자

>>> 3 % 7

3

 

몫을 반환하는 연산자

>>> 7//4

1

소수점을 버린다.

 

인덱싱이란 무언인가를 "가리킨다"는 의미

슬라이싱은 무엇인가를 "잘라낸다"는 의미

 

튜플 & 문자열

- 변경이 불가능 하다

 

특이한 리스트 참조방식 

리스트에 마이너스 값을 사용하면 거꾸로된 순서로 참조하게 됩니다.

리스트를 사용할 때 콜론(:)을 사용하여 연속된 값을 참조할 수 있다

a[::2] 같은 경우 처음부터 끝까지 2칸씩 넘어가며 값을 출력한다.

 

 

 

 

아래 코드는 오늘 살펴본 주피터 노트 파일입니다.

현재 블로그에 저장된 내용외 추가적인 내용도 포함되있으니 기초 다지기에 좋습니다.

day_2.ipynb
0.02MB

+ Recent posts