Python 기초3

UICHEOL_HWANG·2023년 8월 8일

파이썬기초

목록 보기
3/12

🍟딕셔너리 함수 사용하기

  • 딕셔너리에 키와 값을 추가해줌
  • 단 , Key만 지정하면 값은 None으로 자동 입력이 된다.
d3.setdefault('e') # key만 지정해주고 value 값은 안둔다 
d3 # none값을 일단 return 해준다
{'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': None}

  • setdefault는 덮어쓰기 기능이 되지 않는다
d3['e']= 50 
기존 
d3['e']= 30

30이 덮어써진다

d3.setdefault('a',10) 
10이 안 덮어진다

2) update(key=value)

  • 딕셔너리 안에 있는 key 값을 변경시켜줌
  • update함수 사용시 주의사항 : key값이 문자가 아닌 숫자형일 경우
  • update({key: value}) 형태로 사용
d3.update({70:[5,6,7,8]})
{'a': 30, 'b': 20, 'c': 30, 'd': 40, 'e': 50, 'f': 60, 70: [5, 6, 7, 8]}
  • update(리스트),update(튜플)로도 딕셔너리 key와 value 값 수정하기 가능
update([[key1,value1],[key2,value2],[key3,value3]])
update([(key1,value1),(key2,value2),(key3,value3)])

딕셔너리에서 key-value 쌍 삭제하기

d3.pop('a') #이미 지운 코드를 어떻게 지우냐 
d3.pop('a','key없음')
key없음 출력

딕셔너리에서 모든 key와 value를 삭제하기

.clear()

d4 =d3.copy()
# d3 데이터를 일단 복사 시킨 뒤 
d3.clear()
d3
{}

copy() 와 = 대입연산의 차이

cpoy()를 해놓은 요소들은 카피 해놓은 원본 파일을 지워도 영향이 없으나

= 대입연산은 복사가 아닌 바로가기의 의미이기 때문에 원본 파일을 지우면 대입시켜놓은 다른 변수들도 사라지게 된다.

비교

d5 = d4
d5.clear()
d4
d5

둘다 clear

딕셔너리에서 값 가져오기 .get()

d3 = {'b': '이십', 'c': '삼십', 'd': '사십', 'e': '오십', 'f': 60, 70: [5, 6, 7, 8]}
d3.get('a','키가없어요')
키가없어요

딕셔너리에서 key와 value, key만,value만 가져오는 함수

  • .itmes() : key와 value 모두 가져옴
  • .keys() : key만 가져옴
  • .values() value만 가져옴

서식지정자

서식 지정자나 format 메서드를 사용하는 이유 :

  • 문자열로만 입력 해야 하는 상황에서의 같은 위치의 문자를 여러 번 바꿔야 할 때가 있기 때문이다.

1) 문자를 입력할 때 %s

print('이 수업의 이름은 %s 입니다.'%'파이썬')

subject = ['국어','영어','수학','과학','파이썬','장고']
for i in subject:
  print('이 수업의 이름은 %s 입니다'%i)

이 수업의 이름은 국어 입니다
이 수업의 이름은 영어 입니다
이 수업의 이름은 수학 입니다
이 수업의 이름은 과학 입니다
이 수업의 이름은 파이썬 입니다
이 수업의 이름은 장고 입니다

2) 정수를 입력할 때 %d를 입력합니다

year = [2021,2022,2023]

for i in year:
  print('올해는 %d년 입니다'%i)
올해는 2021년 입니다
올해는 2022년 입니다
올해는 2023년 입니다

3) 실수를 입력할 때 %f

print('사람의 정상체온은 약 %f 도 입니다'%2)
사람의 정상체온은 약 2.000000 도 입니다

%f는 기본적으로 소수점 6자리까지 표시하므로 f앞에 .자릿수를 지정하면 지정한 자릿수 만큼만 출력된다.

print('사람의 정상 체온은 약 %.1f도 입니다'%36.5)
사람의 정상 체온은 약 36.5도 입니다

4) 서식지정자로 문자열 정렬하기 %길이 s

print('%10s'%'오른쪽정렬')
오른쪽정렬
# 10칸 오른쪽 밀림 

print('%10d'%19500)
19500

print('가격 %10d'%195000)
print('가격 %10d'%71800)

가격     195000
가격      71800

print('금일 삼성전자 주가는 %10d원입니다.'%717800)
금일 삼성전자 주가는     717800원입니다.

print('오늘은 %d년 %d월 %d일 입니다'%(2023,10,20))
오늘은 20231020일 입니다
# 여러 값을 넣을 때 튜플 안에 넣어줄 값들을 입력한다. 

여러 항목 동시에 넣기

company = ['삼성전자','LG전자','현대차','대한항공','하나투어']
stock = [71800,121000,195000,31900,86600]

for i,j in zip(company,stock):
  print('오늘 %s의 주가는 %10d 입니다'%(i,j))

오늘 삼성전자의 주가는      71800 입니다
오늘 LG전자의 주가는     121000 입니다
오늘 현대차의 주가는     195000 입니다
오늘 대한항공의 주가는      31900 입니다
오늘 하나투어의 주가는      86600 입니다

format 메서드 사용하기

  • print({인덱스}'.format(값))
  • print({인덱스0}{인덱스1}{인덱스2}'.format(값1,값2,값3))
print('{0}의 주가는 {1}원 입니다'.format('삼성전자',78000))
삼성전자의 주가는 78000원 입니다

format 메서드로 같은 값 여러개 넣기

print('{0}의 주가는 {1}원 입니다.{0}의 상한가는 {2},\n {0}의 하한가는 {3}입니다'.format('삼성전자',78000,82000,75000))
삼성전자의 주가는 78000원 입니다.삼성전자의 상한가는 82000,
삼성전자의 하한가는 75000입니다

enmerate응용

fruit = ['사과','바나나','야채','토마토','자두']

for i in enumerate(fruit):
  print(f'{i[1]}의 순서는 {i[0]}')
사과의 순서는 0
바나나의 순서는 1
야채의 순서는 2
토마토의 순서는 3
자두의 순서는 4

5. format 메서드로 문자열 정렬하기

print('{인덱스 : <길이}'.format())
print('{인덱스 : 방향 <길이}'.format())

숫자 개수 통일하기

print('{인덱스:채울숫자 길이 서식지정자}'.format(값))

print('{0:02d}'.format(1))
01 # 1자리수 숫자이면 앞자리에 0을 붙여줘라 
profile
개발 취미로 하는 세일즈맨

0개의 댓글