In [3]:
# 2개의 정수 중 큰 숫자 찾는 함수

def max2(a,b):
    #if a>=b:
    #    return a
    #else:
    #    return b

    if a>=b:
        b = a
    return b
print(max2(3, 7))
print(max2(7, 3))


7
7

In [9]:
# 4개일 경우

def max4(a, b, c, d):
    #return max2(max2(a, b), max2(c, d))
    return max2(max2(max2(a, b),c),d)
print(max4(1, 2, 3, 4))


4

In [ ]:
#regular expression
# 문자열의 검색과 치환

In [10]:
def sum_many(*args):   #args 임의의 변수
    sum = 0
    for i in args:
        sum = sum + i
    return sum

In [11]:
result = sum_many(1,2,3)
print result


6

In [12]:
def sum_mul(choice, *args):
    if choice == "sum":
        result = 0
        for i in args:
            result = result + i
    elif choice == "mul":
        result = 1
        for i in args:
            result = result*i
    return result

In [13]:
result = sum_mul('sum', 1,2,3,4,5)
print result


15

In [14]:
def sum_and_mul(a, b):
    return a+b, a*b

In [15]:
result = sum_and_mul(3,4)
print result


(7, 12)

In [16]:
def say_myself(name, old, man=True):
    print ("나의 이름은 %s입니다" %name)
    print ("나이는 %d살입니다" %old)
    if man:
        print("남자입니다")
    else:
        print("여자입니다")

In [17]:
say_myself("오학", 27)


나의 이름은 오학입니다
나이는 27살입니다
남자입니다

In [18]:
number = input("숫자를 입력하세요:")


숫자를 입력하세요:5

In [19]:
#피보나치 수열

def fib(n):
    if n == 0:
        return 0
    if n == 1:
        return 1
    return fib(n-2) + fib(n-1)
for i in range(10):
    print(fib(i+1))


1
1
2
3
5
8
13
21
34
55

In [ ]:
#re

In [4]:
db = '''
3412    Bob 123
3834  Jonny 333
1248   Kate 634
1423   Tony 567
2567  Peter 435
3567  Alice 535
1548  Kerry 534'''
print db


3412    Bob 123
3834  Jonny 333
1248   Kate 634
1423   Tony 567
2567  Peter 435
3567  Alice 535
1548  Kerry 534

In [5]:
import re
ns = re.findall(r'[0-9]', db)
print(ns)


['3', '4', '1', '2', '1', '2', '3', '3', '8', '3', '4', '3', '3', '3', '1', '2', '4', '8', '6', '3', '4', '1', '4', '2', '3', '5', '6', '7', '2', '5', '6', '7', '4', '3', '5', '3', '5', '6', '7', '5', '3', '5', '1', '5', '4', '8', '5', '3', '4']

In [6]:
ns = re.findall(r'[0-9]+', db)
print(ns)


['3412', '123', '3834', '333', '1248', '634', '1423', '567', '2567', '435', '3567', '535', '1548', '534']

In [7]:
#find name

ns = re.findall(r'[A-Za-z]+', db)
print ns


['Bob', 'Jonny', 'Kate', 'Tony', 'Peter', 'Alice', 'Kerry']

In [8]:
# T로 시작하는 이름만 찾기
# T로 시작하지 않는 이름

ns = re.findall(r'T[a-z]+',db)
print ns
print(re.findall(r'[A-SU-Z][a-z]+',db))


['Tony']
['Bob', 'Jonny', 'Kate', 'Peter', 'Alice', 'Kerry']

In [10]:
#match
p = re.compile('[a-z]+')
m = p.match("python")
print (m)


<_sre.SRE_Match object at 0x10f5ba440>

In [11]:
m = p.match('3python')
print m


None

In [12]:
#search

m = p.search('python')
print m


<_sre.SRE_Match object at 0x10f5ba440>

In [15]:
m = p.search('3python')
print m


<_sre.SRE_Match object at 0x10f5baac0>

In [16]:
#findall

result = p.findall('life is too short')
print result


['life', 'is', 'too', 'short']

In [17]:
#finditer

result = p.finditer('life is too short')
print result


<callable-iterator object at 0x10f529750>

In [18]:
#match 객체 method

p = re.compile('[a-z]+')
m = p.match('python')
m.group()


Out[18]:
'python'

In [19]:
m.start()


Out[19]:
0

In [20]:
m.end()


Out[20]:
6

In [21]:
m.span()


Out[21]:
(0, 6)

In [ ]:


In [23]:
p = re.compile('[a-z]+')
m = p.search("5python")
print (m.start() + m.end())


8

In [ ]:


In [26]:
# pat = re.compile("\d{3}[-]\d{4}[-]\{4}")


s = """park 010-9999-9988
kim 010-9909-7789
lee 010-8789-7768
"""

pat = re.compile("\d{3}[-]\d{4}[-]\{4}")
result = pat.sub("\g<1>-####",s)

print result

#뒷번호 ####으로 바꾸는 코드인데 잘안됨 나중에.


park 010-9999-9988
kim 010-9909-7789
lee 010-8789-7768


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]: