이번 포스팅에선 자료형을 배우며 헷갈렸던 부분들을 간단히 정리하고 문제를 풀며 생긴 오류를 해결하는 과정 그리고 해결과정 중 파생된 궁금증에 대해 적어보았다.


1. 파이썬의 자료형

  • int, float, str, tuple : 불변 자료형
  • list, dictionary, set : 변형 자료형
---시퀀스가변/불변인덱싱슬라이싱요소중복
list시퀀스가변ooo
tuple시퀀스불변ooo
dictionary비시퀀스가변 *key:x, value:oxxo
set비시퀀스가변xxx
*dictionary = {key:value}에서 key값은 문자, 정수, 실수, 튜플만 가능함
 key는 변하지 않기 때문에 가변형인 list, dictionary는 올 수 없음     

2. 자료형을 배우며 생긴 궁금증

1) list와 tuple이 둘 다 필요한 이유가 뭘까?

✔️ tuple 변형 안됨 -> 공간차지 적음 -> 처리 속도 빠름이라는 장점이 있음
✔️ 수정해서는 안 되는 항목의 컬렉션이 있을 때

2) list가 너무 길어서 변경하고자 하는 요소 값만 알고 인덱스를 알 수 없을 때 요소 값을 변경하는 방법은?

✔️ 우선 요소의 index를 찾고
✔️ index값을 입력하여 변경한다

# 리스트 안에 있는 '다영'을 '라영'으로 바꾸기

name = ['철수', '영희', '짱구', '맹구', '가영', '나영', '다영', '우주', '신비', '태희', '혜교', '지현', '원빈', '소희', '성찬', '쇼타로', '앤톤']

name.index('다영')	# .index()를 사용하여 인덱스 출력
name [6] = '라영'		# '다영' 을 '라영'으로 변경

print(name)		# ['철수', '영희', '짱구', '맹구', '가영', '나영', '라영', '우주', '신비', '태희', '혜교', '지현', '원빈', '소희', '성찬', '쇼타로', '앤톤'] 으로 변경되어 출력됨을 확인할 수 있음

3) list.sort(reverse=True) / list.reverse

두 메소드는 비슷해 보이지만 엄연히 다른 값을 출력한다.

num = [1, 2, 5, 4, 3]

# 1
num.sort(reverse=True)
print(num)	# [5, 4, 3, 2, 1] -> sort로 숫자를 정렬한 후 뒤집어 출력

# 2
num.reverse()
print(num)	#[3, 4, 5, 2, 1] -> 숫자를 정렬하지 않고 뒤에서부터 차례대로 출력

4) sort()와 sorted() 차이점?

Python lists have a built-in list.sort() method that modifies the list in-place. There is also a sorted() built-in function that builds a new sorted list from an iterable.

출처 https://docs.python.org/3/howto/sorting.html
a = [1, 4, 5, 2, 3]

#1 list.sort()
a.sort()
print(a)	# [1, 2, 3, 4, 5] -> a가 정렬됨 

#2 sorted(list)
b = sorted(a)
print(b)	# [1, 2, 3, 4, 5] -> b라는 정렬된 새로운 리스트 생성
print(a)	# [1, 4, 5, 2, 3] -> 원본 리스트 유지

3. 문자형 포맷팅(f-string)

  • 따옴표 앞에 f를 붙여 {} 안의 변수를 자유롭게 변경 가능하게 해주는 포맷
age = 500
city = "seoul"

#1
print(f'나는 {age}살이고, {city}에 살고 있습니다.')
#나는 500살이고, seoul에 살고 있습니다.

#2
result = f'나는 {age}살이고, {city}에 살고 있습니다.'
print(result)
#나는 500살이고, seoul에 살고 있습니다.

4. 오늘의 에러

'str' object is not callable

  • str을 중복 사용했더니 에러가 발생하여 수정한 뒤 재실행 했음에도 계속 에러 메세지가 사라지지 않았다

  ✔️ 변수 str을 중복 사용했는지 더블 체크
  ✔️ 현재 파일을 저장하고 재실행 혹은 새로운 파일 만들어 실행 해본다.
   -> 나의 경우 저장 후 재실행 하니 정상 작동 하였음

문제를 해결하는 과정에서 PEP8 python 라는 것을 알게 되어 짧게 나마 기록을 남긴다.
애초에 에러가 발생한 이유가 변수 이름으로 내장함수인 str을 지정했기 때문이다. 후에 이러한 에러를 최소화하기 위해 한번쯤 pep8를 읽어두면 좋을 것 같다.
PEP(Python Enhance Proposal)는 파이썬 개선 제안서 라는 의미로 그중 PEP8은 Coding Convention 제안서이다. 간단하게 말해 파이썬 코드 작성을 위한 가이드라 보면 된다. 검색하면 잘 정리된 자료들이 많이 나오기에 아래에 그 중 하나를 첨부해 두었다.
Python PEP8 알아보기



[2024. 12. 19]

profile
기록은 기억을 지배한다.

0개의 댓글