# 사칙연산
a = 3
b = 4
print(a+b)
print(a*b)
print(a/b)
7 12 0.75
# 제곱 ** 연산자
a = 3
b = 4
print(a**b)
# 나눗셈 후 나머지를 반환하는 % 연산자
print(7%3)
print(3%7)
# 나눗셈 후 소수점 아랫자리를 버리는 // 연산자
print(7//4)
print(-7//4) # 무조건 소수점을 버리는 것이 아니라 나눗셈의 결과값보다 작은 정수 중, 가장 큰 정수를 리턴한다.
81 1 3 1 -2
파이썬에서 문자열을 만드는 4가지 방법
다음과 같이 문자열을 큰따옴표(")로 둘러싸야 한다.
>>> food = "Python's favorite food is perl"
다음과 같이 문자열을 작은따옴표(')로 둘러싸야 한다.
>>> sqy = '"Python is very easy." he says.'
>>> food = 'Python\'s favorite food is perl'
>>> say = "\"Python is very easy.\" he says."
>>> multiline = "Life is too short \n You need python"
>>> multiline = '''
Life is too short
You need python
'''
head = "Python"
tail = " is fun!"
head + tail
'Python is fun!'
a = "python"
a * 2
'pythonpython'
print("=" * 50)
print("My Program")
print("=" * 50)
================================================== My Program ==================================================
a = "Life is too short, You need Python"
a[3]
'e'
print(a[-2])
print(a[-5])
o y
b = a[0] + a[1] + a[2] + a[3]
b
'Life'
a[0:4]
'Life'
print(a[0:2])
print(a[5:7])
print(a[12:17])
Li is short
a[19:]
'You need Python'
a[:17]
'Life is too short'
a[:]
'Life is too short, You need Python'
a[19:-7]
'You need'
a = "20010331Rainy"
date = a[:8]
weather = a[8:]
print(date)
print(weather)
20010331 Rainy
year = a[:4]
day = a[4:8]
weather = a[8:]
print(year)
print(day)
print(weather)
2001 0331 Rainy
a = "Pithon"
a[1]
'i'
a[1] = 'y'
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-11-020b3dad23fa> in <module>() ----> 1 a[1] = 'y' TypeError: 'str' object does not support item assignment
a[:1] + 'y' + a[2:]
'Python'
"I eat %d apples." % 3
'I eat 3 apples.'
"I eat %s apples." % "five"
'I eat five apples.'
number = 3
"I eat %d apples." % number
'I eat 3 apples.'
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 % (문자 % 자체) |
"Error is %d%" % 98
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-18-86d2e529c9cc> in <module>() ----> 1 "Error is %d%" % 98 ValueError: incomplete format
"Error is %d%%" % 98
'Error is 98%'
# 정렬과 공백
"%10s" % "hi"
' hi'
"%-10s jane" % "hi"
'hi jane'
# 소수점 표현하기
"%0.4f" % 3.42134234
'3.4213'
"%10.4f" % 3.42134234
' 3.4213'
# 문자 개수 세기(count)
a = "hobby"
a.count('b')
2
# 위치 알려주기 1(find)
a = "Python is best choice"
print(a.find('b'))
print(a.find('k'))
10 -1
# 위치 알려주기 2(index)
a = "Life is too short"
print(a.index('t'))
print(a.index('k'))
8
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-26-f78645f0e8e2> in <module>() 4 5 print(a.index('t')) ----> 6 print(a.index('k')) ValueError: substring not found
# 문자열 삽입(join)
a = ','
a.join('abcd')
'a,b,c,d'
# 소문자를 대문자로 바꾸기(upper)
a = "hi"
print(a.upper())
# 대문자를 소문자로 바꾸기(lower)
a = "HI"
print(a.lower())
HI hi
# 왼쪽 공백 지우기(lstrip)
a = " hi "
a.lstrip()
'hi '
# 오른쪽 공백 지우기(rstrip)
a.rstrip()
' hi'
# 양쪽 공백 지우기(strip)
a.strip()
'hi'
# 문자열 바꾸기(replace)
a = "Life is too short"
a.replace("Life", "Your leg")
'Your leg is too short'
# 문자열 나누기(split)
a = "Life is too short"
a.split()
['Life', 'is', 'too', 'short']
a = "a:b:c:d"
a.split(":")
['a', 'b', 'c', 'd']
# 숫자 바로 대입하기
"I eat {0} apples".format(3)
'I eat 3 apples'
# 문자열 바로 대입하기
"I eat {0} apples".format("five")
'I eat five apples'
# 숫자 값을 가진 변수로 대입하기
number = 3
'I eat {0} apples'.format(number)
'I eat 3 apples'
# 2개 이상의 값 넣기
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!!!!!!!!'
# 소수점 표현하기
y = 3.42134234
"{0:0.4f}".format(y)
'3.4213'
"{0:10.4f}".format(y)
' 3.4213'
# { 또는 } 문자 표현하기
"{{ and }}".format()
'{ and }'
a = [1, 2, 3]
a[0]
1
a[0] + a[2]
4
a[-1]
3
a = [1, 2, 3, ['a', 'b', 'c']]
a[0]
1
a[-1]
['a', 'b', 'c']
a[3]
['a', 'b', 'c']
a[-1][0]
'a'
a[-1][1]
'b'
a = [1, 2, 3, 4, 5]
a[0:2]
[1, 2]
a[:2]
[1, 2]
a[2:]
[3, 4, 5]
a = [1, 2, 3]
b = [4, 5, 6]
a + b
[1, 2, 3, 4, 5, 6]
a = [1, 2, 3]
a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
a = [1, 2, 3]
a[2] = 4
a
[1, 2, 4]
a[1:2]
[2]
a[1:2] = ["a", "b", "c"]
a
[1, 'a', 'b', 'c', 4]
a[1] = ['a', 'b', 'c']
a
[1, ['a', 'b', 'c'], 'b', 'c', 4]
a[1:3] = []
a
[1, 'c', 4]
a
[1, 'c', 4]
del a[1]
a
[1, 4]
a = [1, 2, 3]
a.append(4)
a
[1, 2, 3, 4]
a.append([5, 6])
a
[1, 2, 3, 4, [5, 6]]
a = [1, 4, 3, 2]
a.sort()
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)
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-21-8b50e151dfc5> in <module>() ----> 1 a.index(0) ValueError: 0 is not in list
a = [1, 2, 3]
a.insert(0, 4)
a
[4, 1, 2, 3]
a.insert(3, 5)
a
[4, 1, 2, 5, 5, 3]
a = [1, 2, 3, 1, 2, 3]
a.remove(3) # 첫번째 3만 제거됨
a
[1, 2, 1, 2, 3]
a.remove(3)
a
[1, 2, 1, 2]
# pop()은 리스트의 맨 마지막 요소를 돌려주고 해당 요소는 삭제함
a = [1, 2, 3]
a.pop()
3
a
[1, 2]
a = [1, 2, 3]
a.pop(1)
2
a
[1, 3]
a = [1, 2, 3, 1]
a.count(1)
2
# extend(x)에서 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]
튜플(tuple)은 리스트와 거의 비슷하지만, 다른 점은 다음과 같다.
>>> t1 = ()
>>> t2 = (1,) # 단지 1개의 요소만을 가질 때에도 요소 뒤에 콤마(,)를 반드시 붙여야 한다.
>>> t3 = (1, 2, 3)
>>> t4 = 1, 2, 3 # 괄호()를 생략해도 무방하다.
>>> t5 = ('a', 'b', ('ab', 'cd'))
t1 = (1, 2, 'a', 'b')
del t1[0]
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-1-be8ec365afcc> in <module>() 1 t1 = (1, 2, 'a', 'b') ----> 2 del t1[0] TypeError: 'tuple' object doesn't support item deletion
t1[0] = 'c'
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-2-38040fd9966c> in <module>() ----> 1 t1[0] = 'c' TypeError: 'tuple' object does not support item assignment
# 인덱싱하기
t1 = (1, 2, 'a', 'b')
t1[0]
1
t1[3]
'b'
# 슬라이싱하기
t1[1:]
(2, 'a', 'b')
# 튜플 더하기
t2 = (3, 4)
t1 + t2
(1, 2, 'a', 'b', 3, 4)
# 튜플 곱하기
t2 * 3
(3, 4, 3, 4, 3, 4)
>>> dic = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
딕셔너리 dic의 정보
key | value |
---|---|
name | pey |
phone | 0119993323 |
birth | 1118 |
>>> a = {1: 'hi'} # key로 정수값 1, value로 'hi'라는 문자열을 사용
>>> a = {'a': [1, 2, 3]} # value에 리스트를 사용
# 딕셔너리 쌍 추가하기
a = {1: 'a'}
a[2] = 'b'
a
{1: 'a', 2: 'b'}
a['name'] = 'pey'
a
{1: 'a', 2: 'b', 'name': 'pey'}
a[3] = [1, 2, 3]
a
{1: 'a', 2: 'b', 3: [1, 2, 3], 'name': 'pey'}
# 딕셔너리 요소 삭제하기
del a[1]
a
{2: 'b', 3: [1, 2, 3], 'name': 'pey'}
grade = {'pey': 10, 'julliet': 99}
grade['pey']
10
grade['julliet']
99
dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
dic['name']
'pey'
dic['phone']
'0119993323'
dic['birth']
'1118'
a = {1: 'a', 1:'b'}
a
{1: 'b'}
a = {[1, 2]: 'hi'}
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-21-edc95a1431e0> in <module>() ----> 1 a = {[1, 2]: 'hi'} TypeError: unhashable type: 'list'
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.keys()
dict_keys(['name', 'phone', 'birth'])
# 다음과 같이 리스트처럼 사용할 수 있으나, 리스트 고유의 함수인 append, insert, pop, remove, sort 등은 사용할 수 없다.
for k in a.keys():
print(k)
name phone birth
# dict_keys 객체를 리스트로 변환
list(a.keys())
['name', 'phone', 'birth']
a.values()
dict_values(['pey', '0119993323', '1118'])
# Key, Value 쌍 얻기(items)
a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
# Key, Value 쌍 모두 지우기(clear)
a.clear()
a
{}
# Key 로 Value 얻기(get)
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.get('name')
'pey'
a.get('phone')
'0119993323'
# 찾으려는 key 값이 없을 경우 디폴트 값 반환
a.get('foo', 'bar')
'bar'
# 해당 Key 가 딕셔너리 안에 있는지 조사하기(in)
'name' in a
True
'email' in a
False
s1 = set([1, 2, 3])
s1
{1, 2, 3}
s2 = set("Hello")
s2
{'H', 'e', 'l', 'o'}
s1 = set([1, 2, 3])
l1 = list(s1)
l1
[1, 2, 3]
l1[0]
1
t1 = tuple(s1)
t1
(1, 2, 3)
t1[0]
1
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
{7, 8, 9}
s1.difference(s2)
{1, 2, 3}
s2.difference(s1)
{7, 8, 9}
# 값 1개 추가하기(add)
s1 = set([1, 2, 3])
s1.add(4)
s1
{1, 2, 3, 4}
# 값 여러 개 추가하기(update)
s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1
{1, 2, 3, 4, 5, 6}
# 특정 값 제거하기(remove)
s1 = set([1, 2, 3])
s1.remove(2)
s1
{1, 3}
값 | 참 or 거짓 |
---|---|
"python" | 참 |
"" | 거짓 |
[1, 2, 3] | 참 |
[] | 거짓 |
() | 거짓 |
{} | 거짓 |
1 | 참 |
0 | 거짓 |
None | 거짓 |
a = [1, 2, 3, 4]
while a:
print(a.pop())
4 3 2 1
변수명 = 변수에 저장할 값
>>> a = 1
>>> b = "python"
>>> c = [1, 2, 3]
>>> a = 3
type(3)
int
a = 3
b = 3
a is b
True
import sys
sys.getrefcount(3) # 파이썬 내부적으로 이미 사용되고 있다.
650
var1 = 3
sys.getrefcount(3)
731
var2 = 3
sys.getrefcount(3)
732
var3 = 3
sys.getrefcount(3)
733
>>> a, b = ('python', 'life') # 튜플로 값을 대입
>>> (a, b) = 'python', 'life' # 위 예문과 동일
>>> [a, b] = ['python', 'life'] # 리스트로
>>> a = b = 'python' # 여러 개의 변수에 같은 값을 대입
# 위의 방법을 이용하여 두 변수의 값 바꾸기
a = 3
b = 5
a, b = b, a
print(a)
print(b)
5 3
a = 3
b = 3
del(a)
del(b)
a = [1, 2, 3]
b = a
a[1] = 4
a
[1, 4, 3]
b
[1, 4, 3]
a = [1, 2, 3]
b = a[:]
a[1] = 4
a
[1, 4, 3]
b
[1, 2, 3]
from copy import copy
b = copy(a)
b is a
False