Python Features & String, List Functions

shin·2022년 3월 16일

Python

목록 보기
1/4
post-thumbnail

1. Features

1) Python의 역사와 특징

  • 1989년 Guido Van Rossum이 만든 프로그래밍 언어
  • 1991년 Python 최초 발표
  • Google에서 만들어진 소프트웨어의 50% 이상 파이썬
  • 이해하기 쉽기 때문에 공동 작업과 유지 보수가 편리함
  • Python은 C언어와 조합이 잘 맞음
    • 쉬운데 느린 Python (인터프리터 언어)
    • 빠른데 복잡한 C언어 (컴파일 언어)
    • C로 만들어진 Python 라이브러리가 많음
    • Numpy : C 라이브러리를 Python에서 쓸 수 있도록 래핑
  • 실행이 되게 하려면 꼭 줄을 맞춰야 함
  • "Life is too short, You need python."
    : 그만큼 파이썬은 개발 속도가 빠름

2) Python can do

  1. 시스템 유틸리티 제작

  2. GUI 프로그래밍

  3. C/C++와의 결합
    (속도가 중요하지 않은 부분을 파이썬으로 짬)

  4. 웹 프로그래밍

  5. 수치 연산 프로그래밍

  6. 데이터베이스 프로그래밍

  7. 데이터 분석, 사물 인터넷

3) Python can not do

  1. 시스템과 밀접한 프로그래밍 영역
    (운영체제를 만들지 못함)

  2. 모바일 프로그래밍 - 앱 개발
    (안드로이드 : kotlin / Java, IOS : Swift)

2. 자료형

1) String

(1) 여러 줄로 이루어진 문자열 출력

: 작은 따옴표나 큰 따옴표 3개로 묶어주면 그대로 출력 가능

a = '''
python
is 
too
short'''

print(a)
C:\learn_python>python hello.py

python
is
too
short

(2) 문자열 슬라이싱

a[이상:미만:간격]

a = 'Python is too short'

print(a[0:8]) # 인덱스 0부터 7까지
print(a[0:8:2]) # 인덱스 0부터 7까지 2 간격으로
C:\learn_python>python hello.py
Python i
Pto 

(3) 문자열 포맷팅

< 문자열 포맷 코드 >
%s : String
%c : Character
%d : Integer
%f : Floating-point
%o : 8진수
%x : 16진수
%% : 문자 '%' 자체

이때, %s는 어떤 형태의 값이든 변환해 넣을 수 있음
(string으로 자동으로 바뀌어서 들어감)

num = 10 # Integer
day = "three" # string

print("I ate %d apples. so I was sick for %s days."%(num, day))
C:\learn_python>python hello.py
I ate 10 apples. so I was sick for three days.
a = "hello, My name is {}".format("kevin")
b = "hello, My name is {name}. My age is {age}".format(name = "sora", age = 20)

name = "swift"
c = f"hello, My name is {name}."

print(a)
print(b)
print(c)
C:\learn_python>python hello.py
hello, My name is kevin
hello, My name is sora. My age is 20
hello, My name is swift.

(4) count : 문자 개수 세기

a = "hello everyone"

print(a.count('e'))
4

(5) find : 문자 위치 반환

print(a.find('y'))
print(a.find('every'))
10
6

(6) join : 문자열 삽입

print(",".join("hello"))
print("oo".join("hello"))
h,e,l,l,o
hooeooloolooo

(7) 문자열.upper() : 소문자를 대문자로 변경

upper_a  = a.upper()
print(upper_a)
HELLO EVERYONE
  • 문자열.isupper() : 문자열이 대문자인지 판단
    - 문자열이 대문자일 경우 True, 아닐 경우 False 반환

(8) 문자열.lower() : 대문자를 소문자로 변경

print(upper_a.lower())
hello everyone
  • 문자열.islower() : 문자열이 소문자인지 판단
    - 문자열이 소문자일 경우 True, 아닐 경우 False 반환

(9) strip : 양쪽 공백 제거

  • 문자열에서 인자로 받은 문자를 문자열 양끝에서 제거
  • 인자로 아무것도 받지 못하면 문자열의 양끝 공백을 제거함
  • lstrip : 왼쪽 공백 제거
  • rstrip : 오른쪽 공백 제거
space_a = "    hello everyone   "
print("[" + space_a.strip() + "]") # 양쪽에서 제거
print("[" + space_a.lstrip() + "]") # 왼쪽에서 제거
print("[" + space_a.rstrip() + "]") # 오른쪽에서 제거
[hello everyone]
[hello everyone   ]
[    hello everyone]
  • 인자로 문자를 전달하면, 그 문자와 동일한 문자를 모두 제거함
text = "00000    python   test  0000"
print('[' + text.strip('0') + ']')
print('[' + text.lstrip('0') + ']')
print('[' + text.rstrip('0') + ']')
[    python   test  ]
[    python   test  0000]
[00000    python   test  ]

(10) replace(old, new) : 문자열 바꾸기

  • replace는 문자열의 모든 공백을 제거하고, strip은 양쪽 공백만 제거함
  • 첫 번째 인자 : 제거할 문자나 문자열
  • 두 번째 인자 : 새로 변경할 문자나 문자열
print(a.replace("hello", "bye"))
bye everyone
  • 첫 번째 인자로 " " 공백을 넣고,
    두 번째 인자로 "" 빈 문자열을 넣으면 문자열에 있는 모든 공백이 제거됨
text = " Ha p pily  Ever Af te r  "

print(text.replace(" ", ""))
print(text.strip())
Ha p pily  Ever Af te r
HappilyEverAfter

(11) split : 문자열 나누기

  • 인자로 아무것도 받지 못하면 공백을 기준으로 문자열을 나눔
  • 특정 값을 인자로 받은 경우에는 그 값을 구분자로 문자열을 나눔
print(a.split()) # 공백 기준

split_a = "hello:every:one"
print(split_a.split(':')) # 인자로 전달 받은 문자 기준
  • 나눈 값들은 리스트에 하나씩 들어감
['hello', 'everyone']
['hello', 'every', 'one']
text = "Happily ever after"
print(text.split())

text = "a, b, c, d"
print(text.split(','))
['Happily', 'ever', 'after']
['a', ' b', ' c', ' d']

2) List

(1) append : 리스트에 요소 추가

: 리스트 맨 뒤에 인자로 전달 받은 값 추가

a = [3, 2, 4]

a.append(1)
print(a)
[3, 2, 4, 1]

(2) sort : 리스트 정렬

a.sort()
print(a)
[1, 2, 3, 4]

(3) reverse : 리스트 뒤집기

a.reverse()
print(a)
[4, 3, 2, 1]

(4) index : 위치 반환

인자로 전달받은 값의 인덱스 위치 반환

print(a.index(3))
1

(5) insert : 리스트 요소 삽입

첫 번째 인자로 전달받은 위치에 두 번째 인자로 전달받는 요소가 삽입됨

a.insert(0, 5)
print(a)
[5, 4, 3, 2, 1]

(6) remove : 리스트 요소 제거

인자로 전달받은 값을 리스트에서 삭제

a.remove(2)
print(a)
[5, 4, 3, 1]

(7) pop : 리스트 요소 끄집어내기

리스트 맨 마지막 값이 반환되고 동시에 리스트에서 삭제됨

pop_num = a.pop()
print(pop_num)
print(a)
1
[5, 4, 3]

(8) count : 요소 개수 세기

리스트에 포함된 요소의 개수를 반환

print(a.count(5))
1

(9) extend : 리스트 확장

기존의 리스트 뒤에 새로운 리스트를 붙여서 확장시킴

a.extend([1, 2])
print(a)

b = [6, 7]
a.extend(b)
print(a)
[5, 4, 3, 1, 2]
[5, 4, 3, 1, 2, 6, 7]


출처 : 파이썬 코딩 무료 강의 - 조코딩(JoCoding)

profile
Backend development

0개의 댓글