python 입출력

입력

input: input 에 입력되는 모든 것을 문자열로 취급한다 (내부입력 : 메모리로부터 자료를 읽어옴)

1
2
3
4
5
6
7
8
9
10
11

a = input() # input 함수의 출력 타입 'str'

print(a)
print(type(a))

a = int(a) # type : str -> int
print(a)
print(type(a))
# 일단 str 타입으로 받아들인 후 type 전환을 통해 변수 가공
print(10+a)
3
3
<class 'str'>
3
<class 'int'>
13
1
2
3
# 프롬프트 값을 띄워서 사용자 입력받기

number = input("숫자를 입력하세요 : ")
숫자를 입력하세요 : 3
1
print(number)
3
1
2
3
4
5
6
# split: value 나누기
a,b = input('숫자 두개를 입력하세요: ').split()
a = int(a)
b = int(b)

print(a+b)
숫자 두개를 입력하세요: 5 7
12
1
2
# sep(separator): 변수 사이값(구분) 지정
print(1920,1000,sep=' * ')
1920 * 1000
1
2
3
4
5
# end: print 끝 값 임의로 지정(default: \n)
for i in range(2,5):
for j in range(1,5):
print(i*j,end='') ## end = '' 이 문장에 끝은 \n이 아닌 '' 내부 문자로 대신한다.
print()
2468
36912
481216

출력

print : 입력 자료형을 출력 (내부출력)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a = 123
print(a)

a = "Python"
print(a)

a = [1,2,3]
print(a)

a = "이번달은 %d 월 입니다." %11
print(a)

a = "오늘은 %d 월 %d 일 입니다." %(11,11)
print(a)

a = "시험 성적은 %3.1f점 입니다." %85.2345 ## 기말test :
print(a)

123
Python
[1, 2, 3]
이번달은 11 월 입니다.
오늘은 11 월 11 일 입니다.
시험 성적은 85.2점 입니다.
1
2
3
4
print("Life" + "is" + "too stort")
print("Life" "is" "too stort") # 큰 따옴표 문자열 연산은 + 와 동일
print("Life " "is " "too stort")
print("Life", "is", "too stort") # 문자열 띄어쓰기는 콤마(,)로 가능
Lifeistoo stort
Lifeistoo stort
Life is too stort
Life is too stort
1
2
3
4
# 한 줄에 결과값 출력하기

for i in range(10) :
print(i, end=' ')
0 1 2 3 4 5 6 7 8 9 

python 함수(define)

함수

반복적으로 사용되는 가치 있는 부분을 한 뭉치로 묶어 불필요한 반복을 줄일 수 있다.
‘어떤 입력값을 주었을 때 어떤 결과값을 돌려준다.’ 라는 식의 함수를 작성하는 것이 유리하다.

1
2
3
4
5
6
7
8
9
10
# 파이썬 함수 구조
"""
def 함수 이름(매개변수들):
수행할 문장1
수행할 문장2
...

return 결과값

"""
'\ndef 함수 이름(매개변수들):\n    수행할 문장1\n    수행할 문장2\n    ...\n\n    return 결과값\n\n'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 함수

def add(a,b): ## a 와 b는 add라는 함수를 작동시키기 위한 변수
return a+b ## 함수 이름은 ad고 입력으로 2개의 값을 받으며, 결과값은 2개의 입력값을 더한 값이다.



# 메인 프로그램

a=3
b=4
c=add(a,b)
print(c)

# Or

result=add(a=3,b=4)
print(result)

# Or

result=add(b=3,a=4) ## 변수 이름만 맞추면 변수 순서가 바뀌어도 작동된다.
print(result)
7
7
7
1
2
3
4
# 입력값이 없는 함수

def say():
return 'Hi'
1
2
a=say()
print(a)
Hi
1
2
3
# retrun(결과값)이 없는 함수
def add(a,b):
print("%d + %d = %d"%(a,b,a+b))
1
add(3,4)
3 + 4 = 7
1
2
3
4
5
6
7
8
9
# 입력값이 몇 개가 될지 모를 때는?

# 여러 개의 입력값을 받는 함수

def add_many(*arg): # '*' 는 임의의 여러 변수 지정
result=0
for i in arg:
result=result+i # *arg에 입력받는 모든 값을 더한다.
return result
1
2
result = add_many(1,2,3,4,5)
print(result)
15
1
2
3
4
5
6
7
8
9
10
11
12
# 사칙 연산 선택 가능

def add_mul(choice, *args) :
if choice =='add': ## choice 매개변수가 add 일 경우
result = 0
for i in args:
result = result+i
elif choice =='mul': ## choice 매개변수가 mul 일 경우
result = 1
for i in args:
result = result*i
return result
1
2
3
4
5
result = add_mul('add',1,2,3,4)
print(result)

result2 = add_mul('mul',1,2,3,4)
print(result2)
10
24
1
2
3
4
5
6
# 함수의 결과값은 항상 하나  # 함수 결과값은 언제나 하나이기에 오류가 나는 것이 아니라 (7,12)라는 하나의 튜플 값으로 돌려준다.
def add_mul (a,b):
return a+b,a*b

result = add_mul(3,4)
print(result)
(7, 12)
1
2
3
4
5
6
7
8
9
# 매개변수에 초기값 미리 정하기

def sayself(name,old,man=True): ## 초기값 "Ture(or something)" 의 경우 변수 가장 끝에 지정하지 않으면 에러가 발생한다.
print("이름 %s" %name)
print("나이 %d" %old)
if man:
print("남성")
else:
print("여성")
1
sayself("박응",27,True)
이름 박응
나이 27
남성
1
sayself("박선",27,False)
이름 박선
나이 27
여성
1
sayself("박응",27)           ## 초기값이 True로 설정되어있다.
이름 박응
나이 27
남성

함수에서 매우 중요한 부분

1
2
3
4
5
6
7
8
# 함수 안에서 선언한 변수의 효력 범위

a = 1 # 함수 밖의 변수 a
def vartest(a): # 여기서 a는 함수 안에서 a라서 함수 안에서만 작동한다. 함수 밖과는 다른 셀이다.
a=a+1

vartest(a) # 여기서 입력값 a는 함수 바깥 a=1을 입력한다는 의미
print(a) # 함수에서 a+1 = 2 가 되었지만 retrun도 없고 함수 안에서의 a만 a=2이 되었다. 메인 셀에서 a는 여전히 1이다.
1
1
2
3
4
5
6
7
8
9
# 함수 안에서 함수 밖의 변수를 변경하는 법

a = 1
def vartest(a):
a=a+1
return a # 메인 프로그램 지정변수에 결과값을 돌려준다.

a = vartest(a) # 결과값을 지정변수 a에 대입
print(a)
2
1
2
3
4
5
6
# lambda (한줄 함수)
'lambda 매개변수1,매개변수2, ...: 매개변수를 사용한 표현식'

add = lambda a,b: a+b
result=add(3,4)
print(result)
7
1
2
3
4
5
6
7
8
#1 for문, while문, if문 등 제어문을 사용하여 1부터 100까지의 숫자를 출력
a=0
while a<100:
a=a+1
print(a,end=' ')
print()

for i in range(0,100):print(i+1,end=" ")
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 
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 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#2 A학급에 총 10명의 학생이 있다. 이 학생들의 중간고사 점수는 다음과 같다.
# [ 70, 60, 55, 75, 95, 90, 80, 80, 85, 100 ]
# 제어문(반복문)을 사용하여 A학급의 평균 점수를 구하라.

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

score_sum = 0

for i in range(0,len(score)):
score_sum = score_sum + score[i]
i=i+1

score_avg = score_sum/len(score)

print(score_avg)
79.0
1
2
3
# 메모리 : 내부 입출력 장치 (Internal I/O) -> 전원과 동시에 소멸
# 하드 : 외부 입력 장치 (External I/O) -> 지속
#file (파일)

python while문

While 문 (조건과 반복의 콤비네이션)

조건이 참인 동안에 while 문 아래의 문장이 반복 수행된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# while 문의 기본 구조

"""

while <조건문>:
<수행 문장1>
<수행 문장2>
<수행 문장3>
...


"""

treehit = 0

while treehit <10: ## 조건이 ture 일 경우에 실행된다. -> fulse일 경우 중단
treehit = treehit + 1
print("나무를 %d번 찍었습니다" %treehit)
if treehit == 10: print("나무가 넘어갑니다")
나무를 1번 찍었습니다
나무를 2번 찍었습니다
나무를 3번 찍었습니다
나무를 4번 찍었습니다
나무를 5번 찍었습니다
나무를 6번 찍었습니다
나무를 7번 찍었습니다
나무를 8번 찍었습니다
나무를 9번 찍었습니다
나무를 10번 찍었습니다
나무가 넘어갑니다
1
2
3
4
5
6
7
8
prompt = """
1. Add
2. Del
3. List
4. Quit

Enter number:"""

1
2
3
4
5

num = 0
while num != 4:
print(prompt)
num = int(input())
    1. Add
    2. Del
    3. List
    4. Quit

    Enter number:
1

    1. Add
    2. Del
    3. List
    4. Quit

    Enter number:
1

    1. Add
    2. Del
    3. List
    4. Quit

    Enter number:
3

    1. Add
    2. Del
    3. List
    4. Quit

    Enter number:
2

    1. Add
    2. Del
    3. List
    4. Quit

    Enter number:
4

quit 의미의 4를 입력하지 않으면 계속 prompt를 출력하는 형식
여기서 input()은 사용자의 입력을 받는 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# while 문 :커피머신

coffee = 3

while True: ## while 문 무한반복 문구
money = int(input())
if money >= 300 and coffee != 0: ##커피를 뽑기에 충분한 돈인지 판단
coffee = coffee - 1
if money > 300:
print("커피")
print("거스름돈 %d원" %(money - 300))
else : print("커피")
elif money < 300 :
print("잔액부족")
elif coffee == 0 :
print("재고부족")
break ##if 특정조건이면 while을 빠져나가자 (break) <-> continue
1000
커피
거스름돈 700원
10
잔액부족
300
커피
301
커피
거스름돈 1원
500
재고부족
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 홀수만 출력하는 while 문
a=0
while a<10:
a=a+1
if a%2==0:continue
print(a)
print("")

x= list(range(1,10,2))
print(list(range(5)))
for i in range(5):
print(x[i])
print("")

a=1
while True:
print(a)
a=a+2
if a> 10:
break
1
3
5
7
9

[0, 1, 2, 3, 4]
1
3
5
7
9

1
3
5
7
9

python for문

FOR 문 (반복문)

1
2
3
4
5
6
# for

test_list = ['one','two','three']

for i in test_list:
print(i)
one
two
three
1
2
3
x = [1,'2',3]
for i in x:
print(i,type(i))
1 <class 'int'>
2 <class 'str'>
3 <class 'int'>
1
2
3
4
a = [(1,2),(3,4),(5,6)]

for (first, last) in a:
print(first,last)
1 2
3 4
5 6
1
2
3
4
5
a = [(1,2),(3,4),(5,6)]

for i in a:
print(i)
print(i[0]+i[1]) ## a : 튜플 [ ]
(1, 2)
3
(3, 4)
7
(5, 6)
11

formatted print %a

%d : 정수 , %f : 실수 , %s : 문자

%#d : # 만큼의 칸을 변수에 할당한다.
%#.?f : # 만큼의 칸을 할당하고 ?만큼의 소수점 이하 자리를 표현한다. ‘.’도 #의 칸 수에 해당한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
# 응용

# '총 5명의 학생이 시험을 보았는대 60점이 넘으면 합격 아니면 불합격'

marks =[90,25,97,45,80]

number = 0
for mark in marks:
number = number + 1 ## x = x + 1
if mark >= 60:
print("%4d번 학생은 합격입니다." % number) ## 문자열 외부에 % (변수) 지정
else:
print("%d번 학생은 불합격입니다." % number)
   1번 학생은 합격입니다.
2번 학생은 불합격입니다.
   3번 학생은 합격입니다.
4번 학생은 불합격입니다.
   5번 학생은 합격입니다.
1
2
3
4
5
6
7
8
# range(시작 수, 끝 수) 함수. 단 끝 수는 해당하지 않는다. (시작 수 =< range < 끝 수)
# 시작 수 생략 가능 ex) range(6) == (0,1,2,3,4,5)

add = 0
for i in range(1,11):
add = add + i

print(add)
55
1
2
3
4
marks = [90,25,67,45,80]
for mark in marks:
if mark >= 60:
print("%d번 학생 합격" %(marks.index(mark)+1)) ## '+1' index의 경우 0번부터 시작하기 때문에
1번 학생 합격
3번 학생 합격
5번 학생 합격
1
2
3
4
5
marks = [90,25,67,45,80]
for number in range(len(marks)): ## for number in range(5) -> (0,1,2,3,4)
if marks[number] < 60:
continue ## 아무 작업을 하지 않고 'for'문으로 돌아간다.
print("%d번 학생 합격" %(number+1))
1번 학생 합격
3번 학생 합격
5번 학생 합격
1
2
3
4
5
6
# 2중 루프

for i in range(2,5):
for j in range(1,5):
print(i*j)
print('')
2
4
6
8

3
6
9
12

4
8
12
16
1
2
3
4
5
6
# 2중 루프

for i in range(2,5):
for j in range(1,5):
print(i*j,end=' ') ## end = '' 이 문장에 끝은 \n이 아닌 '' 내부 문자로 대신한다.
print('')
2 4 6 8 
3 6 9 12 
4 8 12 16 
1
2
3
4
5
6
7
8
9
10
11
12
13
#for 구문  ## range(#1,#2,#3) 를 이용한 리스트 만들기  #1 : 시작값 / #2 : 종료값 / #3 : 간격

result = [x*y for x in range(2,10)
for y in range(1,10)]

print(result)



range(1,30,2)
print(type(range(1,30,2)))
print(list(range(1,30,2))) ### range 는 list 와 비슷한 형식이다.

[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
<class 'range'>
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

python 비교연산자

비교 연산자

    <   작다
    >   크다
    ==  같다
    !=  같지 않다
    >=  크거나 같다
    <=  작거나 같다

비교 연산 결과는 반드시 bool(참 or 거짓)이 되야한다.

    x or y     둘 중 하나만 참이면 된다.
    x and y    둘 모두 참일 경우
    not x      x가 거짓이면 참이다
1
2
# ex
1>3 and 2<4 ## false and ture
False
1
True and False or True or False and True   ## 연산은 왼쪽부터 수행한다.
True
1
not False
True
1
not False or not True
True
1
1 or 0 or -1       ## 0 : 거짓(0) , 0 이외 : 참(1 혹은 다른 수)
1
1
bool(5)         ## bool 값으로 변경
True

x in s , x not in s

x in list,튜플,문자열 / x not in list,튜플,문자열
: list,튜플,문자열 안에 x가 있는가?

1
1 in [1,2,3]      ## 존재하면 ture 하지 않으면 false
True
1
'a' not in ['a','b']
False
1
't' in 'pythone'    ## 문자열 같은 경우 해당 문자가 존재하는가로 결정
True
1
2
3
4
5
6
pocket = ['phone','money','card']

if ('money' in pocket) or ('card' in pocket): ## 괄호 설정으로 확실히하기
print("택시")
else:
print("보도")
택시
1
2
3
4
5
6
pocket = ['phone','money','card']

if not ('money' in pocket) or not ('card' in pocket):
print("보도")
else:
print("택시")
택시
1
2
3
4
5
6
7
# elif (else if)   elif 문 사용 수에 제한은 없다.

pocket = ['phone','card']

if 'money' in pocket: print("택시 by money") ## 수행문이 1줄일 경우 줄이기 가능
elif 'card' in pocket: print("택시 by card")
else: print("보도")
택시 by card

python 제어문

제어문

파이썬 프로그래밍의 첫번째 단계 : 변수(variable)를 선언해서 객체(object)를 메모리에 담는 것
파이썬 프로그래밍의 두번째 단계 : 객체로 뭔가 컴퓨터가 일을 하게 만든다.
컴퓨터가 할 수 있는 일은 크게 나누어 판단과 반복 밖에 없음을 기억한다.
1) 판단 : 컴퓨터가 객체들을 비교하여 판단하게 만들기 : if 문
2) 반복 : 사람보다 수만배 빠른 두뇌회전 속도를 이용하여 반복계산 시키기 : for 문
3) 판단 + 반복 : 두 과정을 결합하여 조건이 맞는 동안만 반복하기 : while 문

if 문

1
2
3
4
5
6
# ex1
money = True ## 불(bool) 타입: True or False ; 판단에 쓰이는 자료이기에 매우 중요하다.
if money: ## if 다음 불(bool)이 나온다.
print("택시를 타고 가라") ## 실행문에는 반드시 들여쓰기를 해줘야 한다.
else:
print("걸어 가라") ## **동일한 수행 동작은 줄을 맞춰야한다.** ## Tab 이용
택시를 타고 가라

money에 True를 입력했으므로 money는 참이다. 따라서 if문 다음 문장이 수행되어 ‘택시를 타고 가라’가 출력된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
# if 문 기본구조
'''

if 조건문:
수행할 문장1 ## 조건문 = ture 일 경우 수행 문장
수행할 문장2
...
else:
수행할 문장A ## 조건문 = false 일 경우 수행 문장
수행할 문장B
...
'''

'\n\nif 조건문:\n    수행할 문장1    ## 조건문 = ture 일 경우 수행 문장\n    수행할 문장2\n    ...\nelse:\n    수행할 문장A    ## 조건문 = false 일 경우 수행 문장\n    수행할 문장B\n    ...\n'

python 변수

변수(Variable), 객체(Object), 자료(Data), 자료형(Data type)

자료는 우리가 컴퓨터 메모리에 입력할 컴퓨터 외부에 존재하는 수, 문자 등을 의미
자료를 컴퓨터에 입력하기 위해서 일정한 규칙이 필요하고 그 규칙은 자료형으로 규정된다.
컴퓨터 외부에 존재하는 자료를 컴퓨터 머리에 입력하는 독특한 방식은 ‘=’ 기호를 쓰고 주로 ‘변수 = 자료’ 형태를 취한다
일단 컴퓨터 메모리에 자료를 입력하면 그 자료는 ‘자료’라 부르지 않고 파이썬에선 ‘객체(Object)’라 칭한다.
변수란 컴퓨터 메모리 어딘가에 존재하는 객체가 어디에 있는지를 알려주는 주소 개념이다.
타 프로그래밍 언어인 C나 Java에선 자료형(Data type)이 무엇인지 친절히 알려줘야한다.
반면, 파이썬은 자료를 스스로 살펴보고 자료형이 무엇인지 판단한다. 따라사 그 과정이 필요 없다.
변수를 만들 때는 반드시 ‘=’(assignment) 기호를 사용한다.
예 : a = [1,2,3] 이면, [1,2,3] 값을 가지는 리스트 자료형(객체)은 메모리에 자동생성되고 변수 a는 리스트가 저장된 메모리 주소를 가리킨다.

1
2
a = [1,2,3]
id(a) # id() : 변수가 가리키고 있는 객체의 주고 값을 돌려주는 함수
2456107858688
1
2
3
4
# 여러 변수 한번에 만들기
a, b = 1, 2
print(a)
print(b)
1
2
1
2
3
4
# null 변수 만들기
a = None
print(a)
type(a)
None





NoneType
1
2
3
4
5
6
# 변수에 변수를 할당할 경우
b = a ## 주소값 공유
print(a)
print(b)
print(id(a))
print(id(b))
None
None
140715255699584
140715255699584
1
2
# a와 b가 가리키는 객체가 동일한지 묻는 방법 (is)
a is b
True
1
2
3
4
5
# * 주의 *
a[1] = 4
print(a)
print(b)
## 주소값 공유란, 자료를 복사하는 것이 아니라 메모리 주소를 서로 공유한다는 것.
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-72-a5aa4d30ec01> in <module>
      1 # * 주의 *
----> 2 a[1] = 4
      3 print(a)
      4 print(b)
      5 ## 주소값 공유란, 자료를 복사하는 것이 아니라 메모리 주소를 서로 공유한다는 것.


TypeError: 'NoneType' object does not support item assignment
1
2
3
4
5
6
7
8
9
# [:] 사용

a = [1,2,3]
b = a[:]
a[1] = 4
print(a)
print(b)
## [:]는 리스트 전체를 가리키는 방법이기에 자료를 복사하는 경우다.
a is b
[1, 4, 3]
[1, 2, 3]





False
1
2
3
4
#1 자연수 a 홀수 짝수 판별
a = 13
b = a%2
print(b) # print 값이 0일 경우 짝수, 1일 경우 홀수
1
1
2
3
#2 주민등록번호 13자리를 생년월일(YYMMDD)과 그 외 숫자로 분류
a = "0101011234567"
print(a[:6],"-",a[6:]) ## a[:6] : 0 =< print < 6 , a[6:] : 6 =< print
010101 - 1234567
1
2
3
4
5
#3 [1,3,5,4,2] 리스트를 [5,4,3,2,1]로 변경 ## 오름차순 내림차순
a = [1,3,5,4,2]
a.sort()
a.reverse()
print(a)
[5, 4, 3, 2, 1]

python 불

불 자료형 (bool)

참(Ture), 거짓(False) 2가지 값만 가진다.

1
2
3
# 따옴표로 감싸지 않아도 변수 지정이 된다.
a = True #참
b = False #거짓
1
type(a)
bool
1
type(b)
bool
1
2
a = 1 == 1  # '=' : 할당 , '==' : equal , '!=' : 같지 않다.
print(a)
True

자료형의 참과 거짓

문자형이나 리스트, 튜플 등은 비어 있으면 거짓(False)가 되고, 비어 있지 않으면 참(True)이 된다. 숫자에서는 그 값이 0이 될 때 거짓이 된다.

[문자열]

"python" = Ture
"" = False

[리스트]

[1,2,3] = Ture
[] = False

[튜플]

(1,2,3) = Ture 
() = False

[딕셔너리]

{1,2,3} = Ture 
{} = False

[숫자형]

0이 아닌 수 = Ture 
0 = False
1
2
3
4
5
6
7
# bool 자료형 활용 예시
# while 조건문:
# 수행할 문장

a=[1,2,3,4]
while a: # a가 참이 동안
print(a.pop()) # 리스트 마지막 요소를 하나씩 꺼낸다
4
3
2
1
1
2
3
4
5
6
7
8
9
10
11
# 예시 2

if []: #만약 [ ] 가 참이면,
print("Ture") # '참' 문자열 출력
else: # 만약 [ ] 가 거짓이면,
print("False") # '거짓' 문자열 출력

if [1,2,3]:
print("Ture")
else:
print("False")
False
Ture

python 딕셔너리

딕셔너리 (Dictionary)

‘이름’=’홍길동, ‘생일’=’n월n일’과 같이 대응 관계를 나타낼 수 있는 자료형 (연관배열, 해시)

{key1:Value1, key2:Value2, key3:Value3} —> {} 로 둘러싸여 있고, 쉼표로 구분

열쇠(key)가 있어야 값(value)을 얻는다.

1
reset -f
1
dict = {'name':'pei','birth':'1118'}
1
whos
Variable   Type    Data/Info
----------------------------
dict       dict    n=2
1
a = {'a':[1,2,3]} # Value에 리스트도 넣을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
# 딕셔너리 추가
a = {1:'a'}
print(a)

a[2] = 'b' # a[ 2 ]에서 2는 몇번째 요소의 의미가 아니라 key 값을 의미한다.
print(a)

a[3] = [1,2,3]
print(a)

a['name'] = 'pay'
print(a)
{1: 'a'}
{1: 'a', 2: 'b'}
{1: 'a', 2: 'b', 3: [1, 2, 3]}
{1: 'a', 2: 'b', 3: [1, 2, 3], 'name': 'pay'}
1
2
3
# 삭제 del
del a['name']
print(a)
{1: 'a', 2: 'b', 3: [1, 2, 3]}
1
2
3
# 딕셔너리 주의사항 : key 값이 중복될 경우 기존 값을 대체한다.
a={1:'a',1:'b'}
print(a)
{1: 'b'}
1
2
3
4
5
6
# 딕셔너리 관련 함수

# key 리스트 생성
a = {'name':'pey','phone':'01012345678','birth':'1118'}
print(a.keys()) #딕셔너리의 key 만을 모아 딕셔너리(dict_keys)로 만듦
print(list(a.keys()))
dict_keys(['name', 'phone', 'birth'])
['name', 'phone', 'birth']
1
2
3
4
5
6
# Value 리스트 만들기 (values)
print(a.values())
# key, value 쌍 얻기 (items)
print(a.items())
# key, value 쌍 모두 지우기 (clear)
print(a.clear())
dict_values(['pey', '01012345678', '1118'])
dict_items([('name', 'pey'), ('phone', '01012345678'), ('birth', '1118')])
None
1
2
3
4
# key로 value 얻기 (get)
a = {'name':'pey','phone':'01012345678','birth':'1118'}
print(a.get('name'))
a['name'] ## get 대체로 index를 이용 가능
pey





'pey'

pythone 튜플

튜플(tuple)

튜플은 리스트와 달리 수정이 불가능하다.

리스트는 []로 둘러싸지만 튜플은 ()로 둘러싼다.

리스트는 값의 생성, 삭제, 수정이 가능하지만 튜플은 불가능하다.

프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바를 때 사용한다.

1
reset -f
1
2
3
4
5
t1 = ()
t2 = (1,) # 요소가 1개일 경우 반드시 콤마(,)를 넣어야한다.
t3 = (1,2,3)
t4 = 1,2,3 # 괄호 생략 가능
t5 = ('a','b',('ab','cd')) # 튜플 내부에 튜플 삽입 가능. 단, 리스트는 변경 가능 변수이므로 삽입할 수 없다.
1
whos
Variable   Type     Data/Info
-----------------------------
t1         tuple    n=0
t2         tuple    n=1
t3         tuple    n=3
t4         tuple    n=3
t5         tuple    n=3
1
2
3
4
5
6
7
8
9
10
11
# 인덱싱
t1 =(1,2,'a','b')
print(t1[0])
print(t1[3])
# 슬라이싱
print(t1[1:])
# 덧셈
t2 =(3,4)
print(t1+t2)
# 곱셈
print(t2*3)
1
b
(2, 'a', 'b')
(1, 2, 'a', 'b', 3, 4)
(3, 4, 3, 4, 3, 4)