1. 3의 배수 출력하기

for i in range(3, 31, 3):
    print(i)

for i in range(1, 31):
    if i % 3 == 0:
        print (i)


==========================================

2. 구구단 출력

gugudan = input('구구단 :')
for i in range(1, 10):
    print("%d x %d = %d" %(int(gugudan), i, int(gugudan) * i))

구구단 :3
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12


2-1. 홀수값만 출력
gugudan = input('구구단 :')
for i in range(1, 10):
    if i % 2 ==1:
        print("%d x %d = %d" %(int(gugudan), i, int(gugudan) * i))


======================================


3. 1~10까지 값을 모두 더한 값을 출력

sum = 0
for i in range(1, 11):
    sum += i
print(sum)

*print 위치를 달리하면 더하는 과정을 볼 수 있음


==========================================================



4. 현관 비밀번호 맞추기

count = 0
while True:
    secret = (int(input("비밀번호 입력 : ")))
    if secret == 3415 :
        print("맞았음. 현관문 열림")
        count = 0
        break
    else:
        print("틀렸음. 다시 입력바람.\n")
        count += 1
        if count == 5:
            break

===========================================


5. .get() : 우유배달

milk_orders = {'101': {'milk':1, 'yogurt': 5},
               '102': {'milk':2},
               '103': {'milk': 1, 'yogurt': 10},
               '104': {'yogurt': 15}}

# order['milk'] 없으면 에러가 나온다(exception)
# order.get('milk') 없으면 없는대로 나온다


for house, order in milk_orders.items():
    if order.get('milk') :
        print(house, order['milk'])

===========================================

6. 4년마다 개최되는 월드컵 년수 구하기

for num in range(2002, 2051, 4):
    print(num)


===========================================


7. 확장자 제거하고 파일 이름만 출력하기

file_lists = ['hello.py', 'ex01.py', 'ex02.py', 'ch02.py', 'intro.hwp']

newlist = []
for file in file_lists:
    #print(file.split('.'))
    #print(file.split('.')[0])
    newlist.append(file.split('.')[0])
print(newlist)

or

newlist2 = [file.split('.')[0] for file in file_lists]
print(newlist2)


==============================================================

8. 가장 길고 짧은 이름 출력 (체크!)

citys = ['seoul', 'daejeon', 'kimpo', 'suncheon', 'pusan']

length = [len(city) for city in citys]
longestname = max(length)
shortestname = min(length)
print(longestname, shortestname)

longestname1 = []
shortestname1 = []
for city in citys:
    if len(city) == 8 :
        longestname1.append(city)
    elif len(city) == 5:
        shortestname1.append(city)
print("Long name city : ", ' '.join(longestname1))
print("Short name city : ", ' '.join(shortestname1))


====================================================

9. 함수

def sum_sub(a,b):
    return a+b, a-b
sum, sub = sum_sub(15, 5)
print(sum, sub)


===============================================

10. 함수


def test(n):
    # input : int(n)
    # output : int(n+1)
    # function : ..... 
    return n+1

a = 1
b = test(a)
print(b)



예제 2 (체크!)


def test():
    global a
    a += 1

a = 1
test()
print(a)

=========================================


11. range vs enumerate (체크!)


range() 함수 사용

mylist=['apple', 'banana', 'cherry']
for i in range(len(mylist)):
    print(i, mylist[i])
0 apple
1 banana
2 cherry


enumerate() 함수 사용

for i, name in enumerate(mylist):
    print(i, name)
0 apple
1 banana
2 cherry



예제
test_list = ['one','two', 'three']

for num in enumerate(test_list):
    print(num)

for num, list in enumerate(test_list):
    print(num, list)

==============================================

12. map 

def myfunc(n):
    return len(n)

fruit = ['apple','banana','cherry']
for f in fruit:
    print(len(f))

x = map(myfunc, fruit)
print(x)
print(list(x))


================================



 

 

13.

import time(성능테스트)

 

def k(a):

b = []

for i in a:

b.append(i * i)

 

return b

 

start_time = time.time()

a = [1, 2, 3]

b = k(a)

print(b)

end_time = time.time()

print(end_time - start_time)

import time

 

def k(a):

b = [i * i for i in a]

return b

 

 

 

 

start_time = time.time()

a = [1, 2, 3]

b = k(a)

print(b)

end_time = time.time()

print(end_time - start_time)

import time

 

def k(i):

return i*i

 

 

 

 

 

start_time = time.time()

a = [1, 2, 3]

b = map(k, a)

print(list(b))

end_time = time.time()

print(end_time - start_time)

2.288818359375e-05

7.963180541992188e-05

2.0503997802734375e-05

 

 

 

14. 파일 저장 및 불러오기

file_content = """
Hello! Welcome to myfile.txt
This file is for testing purposes.
Good Luck!
"""

fd = open('myfile.txt', 'wt')
fd.write(file_content)
fd.close()

fd = open('myfile.txt', 'rt')
print(fd.read())

========================================================

15. sort vs sorted()

a = [3, 1, 2, 4]
a.sort() # 함수 리턴값 없으면 결과값도 없다. 그냥 설정된것
print(a)

b = [3, 1, 2, 4]
result = sorted(b)
print(result)
print(b)

=======================================================

 

 

16. 통신사 알아내기
사용자로 부터 휴대전화 번호를 입력 받은 후 통신사를 출력하는 프로그램을 작성하라. 
(단, 통신사를 확인하고 출력하는 communication() 함수를 완성하시오.)

import sys


def communication(first):
    # input : first(011|016|019|010)
    # output : RET(SKT|KT|LGT|UNKNOWN)
    # function :
    #   * 011 -> STK
    #   * 016 -> KT
    #   * 019 -> LGT
    #   * 010 -> Unknown
    if first == '011':
        RET = 'SKT'
    elif first == '016':
        RET = 'KT'
    elif first == '019':
        RET = 'LGT'
    else:
        RET =  'UNKNOWN'

    return RET


phone_number = input("휴대전화번호 입력: ")
first = phone_number.split('-')[0]
comm = communication(first)
#print(comm)

if comm == 'SKT':
    print('당신은 %s 사용자입니다.' % comm)
elif comm == 'KT':
    print('당신은 %s 사용자입니다.' % comm)
elif comm == 'LGT':
    print('당신은 %s 사용자입니다.' % comm)
elif comm == 'UNKOWN':
    print('당신의 통신사는 알수 없습니다.')
else: sys.exit(1)

===================================================


17. 로또 번호 생성기

randint 사용 예
>>> import random
>>> random.randint(0,10)4
random.shuffle() 사용예 
>>> import random
>>> a = [ 1, 2, 3, 4]
>>> random.shuffle(a)
>>> print(a)
pop() method 사용예 
>>> a = [ 1, 2, 3, 4]
>>> a.pop()4
>>> a[ 1, 2, 3 ]


import random


def lotto(max_choice):
    lotto_num_list = []
    for i in range(1, 46):
        lotto_num_list.append(i)
    print(lotto_num_list)

    chosen = []
    for j in range(max_choice):
        random.shuffle(lotto_num_list)
        chosen.append(lotto_num_list.pop())
    print(chosen)

    for z in chosen:
        print(z, end=' ')

lotto(6)

===================================================


18. Lambda(함수 이름이 없는 한줄짜리 함수)

인자가 한 개인 람다
>>> x = lambda a : a + 10
>>> print(x(5))
15
------------------------
def x(a):    
    return a + 10


인자가 두 개인 람다
>>> x = lambda a, b : a * b
>>> print(x(5, 6))
30
--------------------------
def x(a, b)
    return a * b



[map + lambda]
result = map(lambda x: (x * x), [1,2,3])
print(result)

result = map(lambda x: (x * x), range(1, 4))
print(list(result))

=============================================================

19. keytable 만들기 (체크!)

#keytable =  {'A' : 0, 'B' : 1, 'C' : 2}
keytable = map(lambda x: (chr(x+65), x), range(26))
#print(list(keytable))
#print(dict(keytable))

encbook = dict(keytable)
print(encbook)

decbook = {v: k for k,v in encbook.items()}
print(decbook)

=============================================================

 

 

모듈. 인수 전달

1.
[root@kali /test]# vi argv.py
[root@kali /test]# cat argv.py
import sys

print(sys.argv)
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
print(len(sys.argv))
print(len(sys.argv[1:]))

[root@kali /test]# python3 argv.py do you want python
['argv.py', 'do', 'you', 'want', 'python']
argv.py
do
you
5
4


2.
[root@kali /test]# cat args.py 
import sys

if not len(sys.argv[1:]):
        print("Usage: %s argv1 arg2" % sys.argv[0])
        sys.exit(1)
[root@kali /test]# python args.py 
Usage: args.py argv1 arg2
[root@kali /test]# echo $?
1
[root@kali /test]# 



3. import sys


if not len(sys.argv[1:]):
    sys.exit("Usagae: %s argv1 argv2" % sys.argv[0]) # 인자에 대한 에러처리 구문
print("Hello: ", sys.argv[0], sys.argv[1], sys.argv[2])

인자 두개 주는 설정 > configuration > parameter > argv1 argv2 추가

====================================================================

4. 

728x90

+ Recent posts