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
'정보보안공부 > 정보보안전문과정' 카테고리의 다른 글
정보보안 과정 Day76 : Python 마지막 (0) | 2020.12.23 |
---|---|
정보보안 과정 Day 75 : Python4 (0) | 2020.12.22 |
정보보안 과정 Day 73 : Python2 (0) | 2020.12.18 |
정보보안 과정 Day72 : Python 시작 (0) | 2020.12.17 |
정보보안 과정 DAY 69~71 : 리버싱 문제 풀기 (0) | 2020.12.17 |