본문 바로가기
카테고리 없음

튜플, 딕셔너리, 집합 자료형, 반복문 파이썬

by aitrip 2024. 1. 25.
728x90

여기에서 재미있는 것은 %s 포맷 코드인데, 이 코드에는 어떤 형태의 값이든 변환해 넣을 수 있다. 무슨 말인지 예를 통해 확인해 보자.

 

문자열 포맷 코드인 %d와 %가 같은 문자열 안에 존재하는 경우, %를 나타내려면 반드시 %%를 써야 한다’라는 법칙이 있다. 이 점은 꼭 기억해 두어야 한다. 하지만 문자열 안에 %d와 같은 포매팅 연산자가 없으면 %는 홀로 쓰여도 상관없다. 따라서 위 예를 제대로 실행하려면 다음과 같이 작성해야 한다.

Copy>>> "Error is %d%%." % 98
'Error is 98%.'

 

 

TUPLE

 

모습은 리스트와 거의 비슷하지만, 튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있다. 

t2 = (1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표(,)를 반드시 붙여야 한다는 것과 t4 = 1, 2, 3처럼 소괄호(())를 생략해도 된다는 점이다.

 

플과 리스트의 가장 큰 차이는 요솟값을 변화시킬 수 있는지의 여부이다. 즉, 리스트의 요솟값은 변화가 가능하고 튜플의 요솟값은 변화가 불가능하다. 

 

튜플 삭제 안됨

TypeError: 'tuple' object doesn't support item deletion

 

튜플의 요소를 리스트처럼 del 함수로 지우려고 한 예이다. 튜플은 요솟값을 지울 수 없다는 오류 메시지를 확인할 수 있다.

tuple list 형변환

myT = (10,20,30)을 myT =(10,20,30,40)으로 변경하라.

myT = (10,20,30)
my = list(myT)
my.append(40)
myT = tuple(my)
myT

 

 

딕셔너리

 

Key와 Value를 한 쌍으로 가지는 자료형

 

a.keys()
a.values()

for k in a.keys():
    print(k)

 

a.itmes() #key,value쌍 얻기
a.clear() #clear

 

 

집합 자료형

 

  • 중복을 허용하지 않는다.
  • 순서가 없다(Unordered).
>>> s1 = set([1, 2, 3])
>>> s1
{1, 2, 3}
위와 같이 set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.

>>> s2 = set("Hello")
>>> s2
{'e', 'H', 'l', 'o'}


 s1.intersection(s2) #교집합
 s1.union(s2) #합집합
 s1.difference(s2) #차집합
 s2.difference(s1) #차집합
 
 
 s1.add(4) #add
 s1.update([4, 5, 6]) #업데이트
 s1.remove(2) #remove

 

 

중복된 값을 제거하라

a=[1,1,1,2,2,3,3,3,4,4,5,]
aSet = set(a)
b = list(aSet)
print(b)

 

 

참일 때 

a = {1,2,3,4}
while a:
    print(a.pop())
    
 
money = 2000
card = 1    #card = True
if money >= 3000 or card:
    print("taxi")
else:
    print("walk")
    
 >>> 1 in [1, 2, 3]
True
>>> 1 not in [1, 2, 3]
False


엘리프
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
    print("taxi")
elif card:
    print("taxi")
else:
    print("walk")

 

 

반복
treeHit = 0
while treeHit < 10:
    treeHit = treeHit +1
    print("나무를 %d번 찍었습니다." % treeHit)
    if treeHit == 10:
        print("나무 넘어갑니다.")
    
treeHit = 0
for treeHit in range(0,10,1):
    print("%d 번 찍었습니다." %treeHit)

 

 

while 문의 맨 처음으로 돌아가기

 a = 0
>>> while a < 10:
...     a = a + 1
...     if a % 2 == 0: continue
...     print(a)

무한 루프

while True:
...     print("Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.")
...

댓글