[SSAFY] 사전 교육 파이썬 2일차

전은평·2023년 7월 3일
0

1. 문자열 일부만 가져오기

str = "banana"

str[0:3]  #'ban' 0번째 인덱스에서 2번째 인덱스까지 출력
str[:3]   # 위의 표현을 바꿔서 사용도 가능

str[3:]   # 'ana' 3번째 인덱스에서 끝까지 출력

str[-3:]  # 'ana' 음수는 문자열 뒤부터 출력가능하게 해줌

str[::-1] # 'ananab'문자열을 거꾸로 출력

2. 소문자 / 대문자로 바꾸기

str = 'BaNaNa'
str.lower()   # 'banana' JS의 toLowerCase()와 동일

str.upper()   # 'BANANA' JS의 toUpperCase()와 동일

3. replace()

JS와 동일하게 특정 문자열을 원하는 문자열로 변환해줌

'Python'.replace('P','J')   # 'Jython'

4. find()

문자열 내 원하는 특정 문자의 인덱스 찾기

s = 'hello Python~'
s.find('P')     # 6

5. rstrip()

마지막 문자열 이후의 공백 제거할 수 있음.
하지만 원본 변수에 영향을 주는 것이 아니라 일시적으로 제거해서 사용가능한 것임.

s = '  hello ~ ~   '
s.rstrip()   # '  hello ~ ~'
s            # '  hello ~ ~   '

6. 리스트

JS의 배열과 동일한 개념!

문자열을 리스트로 바로 만드는 방법(문자열 하나 하나 원소로 리스트 만들기)

list('hello')	# ['h','e','l','l','o']

JS에선 문자열.split('') 과 같은 방법으로 했었는데, 파이썬에선 적용이 안되는 것 같다. ValueError: empty separator라는 에러 문구와 함께 실행이 되지 않는 것을 확인할 수 있었다..

1) list.append()
리스트의 제일 마지막에 값 추가하는 기능.
JS의 push()와 동일한 역할!

prime = [3,7,11]
prime.append(5)   
prime			 # [3,7,11,5]

2) list.sort()
리스트 내에서 순서를 정렬하는 기능.
JS보다는 조금 더 편리한 것 같다. 숫자의 경우 따로 콜백함수 지정해줄 필요 없이 크기순으로 알아서 정렬해주는 듯하다.

prime.sort()
prime 			 # [3,5,7,11]

3) list.insert(원하는 위치/인덱스 값, 넣고자 하는 데이터)
리스트 내 원하는 위치에 데이터 삽입하는 기능

prime(0,2)
prime 			 # [2,3,5,7,11]

4) del list[삭제하고자 하는 데이터의 인덱스 값]
리스트 내 원하는 원소 삭제하는 기능

del prime[4]
prime  			 # [2,3,5,7]

5) list.pop()
JS와 동일하게 리스트 내 마지막 값,원소를 삭제하고 해당 값을 반환하는 함수

a = prime.pop()  #  7

prime			 # [2,3,5]
a 				 #  7

6) 리스트의 원소 값 변경하기
list[인덱스 값] = 새로운 원소 값
위의 형태로 새로 선언해주면 변경된다.

prime[0] = 1
prime 		 	 # [1,3,5]

7) 리스트 내 원소 값 삽입의 또다른 방법

score = [1,2,3,4]
score += [5]
score			# [1,2,3,4,5]

8) 리스트 내 리스트 삽입 가능하다

orders = ['potato' , ['pizza','Coke','salad'], 'hamburger']

orders[1] 		 # ['pizza','Coke','salad']
orders[1][2]	 # ['salad']

9) sum(list)
반복문 사용 없이, 리스트의 전체 원소의 합을 간단하게 구할 수 있다.

one_to_ten = list(range(1,11))   # [1,2,3,4,5,6,7,8,9,10]

sum(one_to_ten) 				 # 55

10) map을 이용해 리스트내 문자 원소를 숫자 원소로 바꾸기

str_list = ['1','0','1','1'] 

list(map(int,str_list)) 		# [1,0,1,1]

7. bin()

십진수를 이진수로 바꾸는 함수

👻 십진수를 이진수로 변환하는 방법!

십진수를 2로 나눈 몫을 구하고 그 수를 다시 2로 나누기! 몫이 0이 될때까지 반복
각 단계에서 구한 나머지를 거꾸로 쓰면 이진수가 완성!!!

bin(13)				#'0b1101'  `0b`는 뒤의 숫자가 이진수임을 뜻함

8. 튜플(tuple)

리스트와 비슷한? 자료형이라고 생각하자.
( )안에 데이터가 들어있는 형태의 자료형!

  • 튜플의 특징

1) 변수끼리 값 맞바꾸기 용이

c = 10
d = 20

c,d = d,c

print(c,d) 		# 20 10

2) 튜플을 만들때 괄호를 써도 되고 안써도 됨!

number = 1,2,3,4,5 			# (1,2,3,4,5)

3) 다만 원소가 없는 튜플을 만들 때는 괄호를 꼭 써주기

empty = ()

4) 원소 하나만 가진 튜플을 만들 땐 원소 뒤에 콤마(,) 꼭 찍어주기

one = 5,   		#(5,)

5) 리스트와 달리 원소값을 직접 바꿀 수 없기 때문에, 문자열처럼 오려붙이는 방법을 사용해야 한다

p = (1,2,3)

q = p[:1] + (5,) + p[2:]

q 				# (1,5,3)

r = q[:1] , 5 , p[2:]

r				# ((1,),5,(3,))

6) 튜플을 리스트로, 리스트를 튜플로 쉽게 바꿀 수 있다.

p = (1,2,3)

q = list(p)				# [1,2,3]

r = tuple(q)			# (1,2,3)

9. zfill(자릿수)

JS의 padStart()와 같은 역할을 한다. 차이점으로는 원하는 숫자로 자릿수를 채우는 것이 아닌 0으로 채운다.

year, month, day = ('2023','7','3')
month = month.zfill(2)			# '07'
day = day.zfill(2)				# '03'

10. dictionary

JS에서의 객체와 유사한 개념이다. {}안에 key와 value값을 가진다.

빈 dictionary 생성하는 법

# 아래의 두가지 방법을 통해 생성가능하다

a = {} 

a = dict()  
  • dictionary의 특징

1) 원소의 삭제
리스트와 마찬가지로 del dictionary[key] 를 입력하면 된다

family = {'mom':'Kang','dad':'Jeon','bro':'Jeon','sis':'Jeon'}

del family['sis']

2) dict.keys() => key값들만 추출
JS의 Object.keys()와 동일역할인데, 추출한 값을 어떻게 사용할 수 있는지는 조금 더 공부해봐야 알 수 있을 것 같다!

family.keys()		# dict_keys(['mom','dad','bro'])

3) dict.values() => value값들만 추출
마찬가지로 JS의 Object.values()와 동일 역할!

family.values()		# dict_values(['Kang','Jeon'])

4) dict.items() => 딕셔너리의 원소의 키 & 값 들을 쌍으로 추출가능하다

family.items()		# dict_item([('mom','Kang'),('dad','Jeon'),('bro','Jeon')])

5) in 을 이용해 해당 key값이 dictionary에 존재하는지 확인가능

'dad' in family		# True

'sis' in family		# False

11. ord() & chr()

ord()는 문자에 해당하는 코드 값 출력하고, chr()는 역으로 코드 값에 해당하는 문자열 출력.

ord('A')		# 65
ord('Z')		# 90
ord('a')		# 97
ord('z')		# 122
ord('0')		# 48
ord('9')		# 57

chr(65)			# 'A'

한글에 대해서도 사용가능하다

ord('가')		# 44032
chr(55197)		# '힝' 

12. split('\n') & splitlines()

줄바꿈을 기준으로 문자열을 분할해서 리스트를 만드는 방법

love = ```L is for the way you look at me
		  O is for the only one I see
          V is very, very extraordinary
          E is even more than anyone that you adore can```
          
love.split('\n')		# ['L is for the way you look at me','O is for the only one I see','V is very, very extraordinary','E is even more than anyone that you adore can']

love.splitlines()		# ['L is for the way you look at me','O is for the only one I see','V is very, very extraordinary','E is even more than anyone that you adore can']

13. 구분점.join(list)

리스트의 각 원소들을 구분점으로 연결해서 하나의 문자열로 출력을 가능하게 해줌!
JS에서는 배열.join(구분점) 형식으로 작성했지만, 파이썬에서는 순서가 조금 다르다.. 유의하도록...!!!

14. Set(집합)

JS와 유사한 개념! {}안에 key:value 형태가 아닌 값만 들어있고, 중복 원소 갖지 않는 등.. 비슷하다고 생각하면 될 것 같다

빈 set 생성하는 법

a = set()
  • set의 특징

1) set.add()
set 안에 원소 추가하는 방법

fruits = {'apple','banana','orange'}

fruits.add('mango')

fruits			# {'mango','apple','orange','banana'}

2) 교집합(&)과 합집합(|)
set간의 원소가 겹치는 부분(= 교집합)을 &을 통해 추출해낼 수 있고, set간의 전체 원소(= 합집합)를 |을 통해 추출해낼 수 있다.

companies = {'apple','microsoft','google'}

# 교집합
fruits & companies 		# {'apple'}

# 합집합
fruits | companies		# {'apple','mango','microsoft','orange','google','banana'}

위 방법 이외에도 합집합과 교집합을 추출해내는 방법이 있다

list_of_sets = [fruits,companies]

# 교집합
set.intersection(*list_of_sets)		# {'apple'}

# 합집합
set.union(*list_of_sets)			# {'apple','mango','microsoft','orange','google','banana'}

3) JS와 마찬가지로 중복원소를 가지지 않는다.

alphabet = list('google')

alphabet			# ['g','o','o','g','l','e']

set(alphabet)		# {'e','o','g','l'}

4) 원소의 순서가 유지되지 않고 변한다.

5) set끼리 뺄셈도 가능하다.

S1 = {1,2,3,4,5,6,7}

S2 = {3,6,9}

S1 - S2 			# {1,2,4,5,7}

15. 모듈

일종의 프로그램 꾸러미? 모음?

  • 모듈 불러오는 방법 2가지

[1] import 모듈
: 모듈만 불러왔기 때문에, 모듈 내의 변수를 사용하기 위해선 모듈.변수 의 형식으로 작성해야 한다.

import 모듈

[2] from 모듈 import 이름
: 모듈 내 이름을 콕 찍어서 가지고 오는 방법이기에, 모듈을 생략하고 변수명의 형식으로 사용가능하다.

from 모듈 import *  	# 해당 모듈에 있는 것 전부(*)를 가지고 오겠다는 의미
  • 모듈 지우는 방법
del 모듈
  • 모듈 다시 불러오는 방법
from importlib import reload
reload(모듈)

1) math 모듈

: 수학적인 계산 기능!

import math

math.sqrt(4)		# 2 => 4의 제곱근

math.pi				# 3.1415926535897931 => 원주율

2) calendar 모듈

: 달력 불러오기 기능!

import calendar

calendar.prmonth(2023,7)

#      July 2023
Mo Tu We Th Fr Sa Su
                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

3) tkinter 모듈

from tkinter import *
widget = Label(None, text = 'I love Python!')
widget.pack()
profile
`아는 만큼 보인다` 라는 명언을 좋아합니다. 많이 배워서 많은 걸 볼 수 있는 개발자가 되고 싶습니다.

0개의 댓글