>>> multiline="""
... Life is too short
... You need python
... """
>>> print(multiline)
Life is too short
You need python
문자열을 더하는 것은 자바에도 있었지만 놀랍게도 파이썬에는 문자열 곱하기가 가능하다!
>>> a = "python"
>>> a * 2
'pythonpython'
>>> a = "Life is too short"
>>> len(a)
17
공백도 포함해서 센다.
>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
# 문자열 뒤에서 첫번째 글자
>>> a[-1]
'n'
# a[-0]은 a[0]과 똑같은 값을 보여 준다.
>>>str(3) + "hi"
3hi
>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'
>>> a[19:-7]
'You need'
>>> a = "Pithon"
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'
코드 | 설명 |
---|---|
%s | 문자열(String) |
%c | 문자 1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
# 인덱스로 넣기
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'
# 이름으로 넣기
>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
# 인덱스와 이름을 혼용하기
>>> "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
# 왼쪽 정렬
>>> "{0:<10}".format("hi")
'hi '
# 오른쪽 정렬
>>> "{0:>10}".format("hi")
' hi'
# 가운데 정렬
>>> "{0:^10}".format("hi")
' hi '
# 공백 채우기
>>> "{0:=^10}".format("hi")
'====hi===='
>>> "{0:!<10}".format("hi")
'hi!!!!!!!!'
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age+1}입니다.'
'나의 이름은 홍길동입니다. 나이는 31입니다.'
# 딕셔너리 사용법
>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
>>> a = "hobby"
>>> a.count('b')
2
# find는 찾는 문자가 없으면 -1을, index는 찾는 문자가 없으면 오류를 반환한다
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
# 문자열 뿐만 아니라 리스트나 튜플에도 사용 가능하다
>>> ",".join('abcd')
'a,b,c,d'
>>> ",".join(['a', 'b', 'c', 'd'])
'a,b,c,d'
>>> a = "hi"
>>> a.upper()
'HI'
>>> a = "HI"
>>> a.lower()
'hi'
>>> a = " hi "
>>> a.lstrip()
'hi '
>>> a= " hi "
>>> a.rstrip()
' hi'
>>> a = " hi "
>>> a.strip()
'hi'
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
# 괄호 안에 아무 값도 넣어 주지 않으면
# 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 준다
>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
# 괄호 안에 특정 값이 있을 경우에는
# 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']
>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]
# del은 모든 객체에 사용 가능하다
>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]
# 슬라이싱 기법을 이용해 여러개 삭제도 가능하다
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
# 순서대로 정렬
>>> a = ['a', 'c', 'b']
>>> a.sort()
>>> a
['a', 'b', 'c']
# 역순으로 정렬
>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']
>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0
>>> a.index(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 0 is not in list
>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]
>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]
# pop()은 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]
# pop(x)는 리스트의 x번째 요소를 돌려주고 그 요소는 삭제한다
>>> a = [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]
# count(x)는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려준다
>>> a = [1,2,3,1]
>>> a.count(1)
2
# extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.
>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
딕셔너리이름[key] = value
del 딕셔너리이름[key]
>>> a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
keys를 이용하면 dict_keys를 반환한다.
>>> list(a.keys())
['name', 'phone', 'birth']
리스트 형식으로 반환하려면 위와 같이 해주면 된다.
>>> a.values()
dict_values(['pey', '0119993323', '1118'])
>>> a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
>>> a.clear()
>>> a
{}
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'0119993323'
존재하지 않는 키를 호출할 때 get함수는 None을 반환하고, 키로 직접 호출하는 방식은 오류를 발생시킨다.
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nokey'
get함수는 default값을 설정할 수 있다. 키가 존재하지 않으면 default를 반환한다.
# get(x, '디폴트 값')
>>> a.get('foo', 'bar')
'bar'
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
존재하면 True, 존재하지 않으면 False를 반환한다.
>>> s1 = set([1,2,3])
>>> s1
{1, 2, 3}
>>> s2 = set("Hello")
>>> s2
{'e', 'H', 'l', 'o'}
>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])
>>> s1 & s2
{4, 5, 6}
>>> s1.intersection(s2)
{4, 5, 6}
# 중복된 값은 하나만 표시된다.
>>> s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s1 - s2
{1, 2, 3}
>>> s2 - s1
{8, 9, 7}
>>> s1.difference(s2)
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}
>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}
True와 False 두 가지 값으로 존재하는 것으로 참 거짓의 유무를 판별할 때 쓰인다.
문자열, 리스트, 튜플, 딕셔너리의 빈 객체나, 숫자형의 0, None은 거짓이다.
>>> a = [1, 2, 3, 4]
>>> while a:
... print(a.pop())
...
4
3
2
1
자료형이 빌 때까지 pop을 이용해 안에 있는 값을 반환한다.
>>> a = [1, 2, 3]
>>> b = a[:]
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3]
>>> from copy import copy
>>> a = [1, 2, 3]
>>> b = copy(a)
>>> a, b = ('python', 'life')
>>> (a, b) = 'python', 'life'
>>> [a,b] = ['python', 'life']