[if문의 구조]

if 조건식:

수행문

elif 조건식:

수행문

elif 조건식:

수행문

else:

수행문


1. 조건식

참이나 거짓의 결과가 나오는 식이 있어야 한다.

끝에는 클론(:)을 붙인다. 클론 뒤버터 수행문으로 간주된다.


2. 수행문 

조건식이 만족할 때 수행하고 싶은 코드들

수행문이 되려면 들여쓰기를 해줘야 한다.


3. elif 조건식:

위 조건식이 만족하지 않을 때 검사하는 조건문

if문에 종속되어 혼자 사용 불가능하며 원하는 만큼 여러개가 사용 가능하다.


4. else:

위 조건식들이 모두 만족하지 않으면 수행

if문에 종속되며 하나만 사용 가능하다.

'Language > Python' 카테고리의 다른 글

반복문(for)  (0) 2019.03.07
반복문(while)  (0) 2019.02.09
입력 함수(input)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07
집합(Set)  (0) 2019.02.03

@ 입력

1
input("입력 : ")
cs


@ 입력값을 변수에 대입

1
input_data = input("입력 : ")
cs

입력된 문자열이 변수에 대입되어 저장된다.


@ 숫자를 입력

1
int(input("입력 : "))
cs

입력을 받으면 문자열로 인식하기 때문에 숫자로 형변환을 한다.


@ 한 번에 여러 값을 입력(1)

1
a,b,c = input("입력 : ").split( )
cs

공백을 기준으로 문자열을 나누어서 저장. 기준이 되는 값은 ".", ","등 다양하게 사용 가능


@ 한 번에 여러 값을 입력(2)

1
num1, num2, num3 = map(int, input("숫자 3개 입력 : ").split())
cs

map(함수, 반복 가능한 자료)

반복 가능한 자료의 요소 마다 함수를 수행한다.

여러개의 변수들을 한번에 int형으로 형변환이 가능해진다.

'Language > Python' 카테고리의 다른 글

반복문(while)  (0) 2019.02.09
조건문(if)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07
집합(Set)  (0) 2019.02.03
딕셔너리(Dictionary)  (0) 2019.02.03

참(True)과 거짓(False)를 판별 해주는 자료형. 값은 두개만 있다.

[참과 거짓을 따졌을 때 거짓인 경우]

1. 요소가 없다.

2. 숫자가 0이다.

3. None : 값이 없다는 것을 표현


1
2
3
4
5
6
print(bool(1))
# 출력값 : True
print(bool(0))
# 출력값 : False
print(bool(-59))
# 출력값 : True


bool 자료형은 0이 아니면 모두 True이다. 1은 True를 의미하는 대표적인 숫자


'Language > Python' 카테고리의 다른 글

조건문(if)  (0) 2019.02.08
입력 함수(input)  (0) 2019.02.08
집합(Set)  (0) 2019.02.03
딕셔너리(Dictionary)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31

집합 자료형은 순서가 없어 인덱싱이 불가능 하다.

요소의 중복이 허용되지 않는다.

> 요소의 중복 제거 용도로 쓰일 수 있다.


1
2
3
set1 = {1,2,1,2,4,5,2,1,4}
print(set1)
# 출력값 : {1, 2, 4, 5}
cs

중복된 값들은 제거되고 출력된다.


집합을 인덱싱하고 싶으면 리스트로 변환하여 인덱싱이 가능하다.

1
2
3
4
set1 = {1,2,1,2,4,5,2,1,4}
lis = list(set1) # {1, 2, 4, 5}
print(lis[2])
# 출력값 : 4
cs


'Language > Python' 카테고리의 다른 글

입력 함수(input)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07
딕셔너리(Dictionary)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31

형태 : {key1:value1, key2:value2, ... }

딕셔너리 자료형은 순서가 없어서 인덱싱이나 슬라이싱이 가능하지 않다.

<주의사항>

- key는 중복되면 안 된다. (value를 찾아가는 인덱스 같은 역할)

- key에는 리스트, 딕셔너리 데이터를 사용할 수 없다.

> key : 변하지 않는 값 (숫자, 문자열, 튜플)

> value : 아무거나 사용 가능 (중복도 가능)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dic = {"apple":"사과""school":"학교""book":"책"}
print(dic)
# 출력값 : {'apple': '사과', 'school': '학교', 'book': '책'}
print(dic["school"])
# 출력값 : 학교
 
# 딕셔너리 추가
dic["cat"= "고양이"
print(dic)
# 출력값 : {'apple': '사과', 'school': '학교', 'book': '책', 'cat': '고양이'}
 
# 딕셔너리 삭제
del(dic["apple"])
print(dic)
# 출력값 : {'school': '학교', 'book': '책', 'cat': '고양이'}
cs

딕셔너리는 출력할 때 key를 인덱싱 하듯이 사용하면 value 값이 반환된다.

딕셔너리에 값을 추가할 때는 [key] = value 형태로 추가한다. 

값을 삭제할 때는 지우고 싶은 key를 사용하면 value와 함께 한 쌍으로 제거된다.

'Language > Python' 카테고리의 다른 글

bool 자료형  (0) 2019.02.07
집합(Set)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30

튜플은 ( )소괄호로 생성 할 수 있다.

한 번 생성하면 값을 바꿀 수 없다.

1
2
3
tu = (1,2,3)
print(tu)
# 출력값 : (1, 2, 3)
cs


튜플을 생성할 때는 괄호를 생략할 수 있다.

1
2
3
tu = 1,2,3
print(tu)
# 출력값 : (1, 2, 3)
cs


'Language > Python' 카테고리의 다른 글

집합(Set)  (0) 2019.02.03
딕셔너리(Dictionary)  (0) 2019.02.03
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
포매팅  (0) 2019.01.30

문제를 다운 받아보면 zip파일이 다운로드 되는데, 이 zip파일에는 암호가 걸려져 있어서 압축을 해제할 수 없다.

파일의 구조를 보기 위해 HxD로 열어보면 

파일 시그니처 시작점으로 부터 offset 06, 07번의 값이 09 08 로 되어 있는데 이는 암호화 된 zip 파일을 의미한다고 한다.

이 파일의 09 08 이라는 값을 모두 기본값인 00 00 으로 바꾸고 저장을 해 준다.

저장을 하고 압축을 풀면 3개의 파일이 나오는 데 

이중 zip파일을 다시 압축 해제하여 메모장에 있는 key값을 base64로 디코딩 하면 key 값을 얻을 수 있다.

dGE1dHlfSDR6M2xudXRfY29mZmVl -> ta5ty_H4z3lnut_coffee









'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 30  (0) 2019.02.10
[SuNiNaTaS] Forensic 29  (0) 2019.02.09
[SuNiNaTaS] Forensic 26  (0) 2019.01.27
[SuNiNaTaS] Forensic 21  (0) 2019.01.24
[SuNiNaTaS] Forensic 19  (0) 2019.01.22

@ append() : 리스트 가장 뒤에 요소 추가

1
2
3
4
my_list = [1,2,3]
my_list.append(4)
print(my_list)
# 출력값 : [1,2,3,4]
cs

append는 한번에 요소 하나씩만 추가 가능하다


@ sort() : 리스트 정렬

1
2
3
4
5
6
7
my_list = [5,9,3,7]
my_list.sort()
print(my_list)
# 출력값 : [3, 5, 7, 9]
my_list.sort(reverse=True)
print(my_list)
# 출력값 : [9, 7, 5, 3]
cs

sort의 기본 값은 오름차순 정렬이다.

reverse사용 시 내림차순 정렬을 하는데, 오름차순 정렬한 후 뒤집은(reverse) 것이다.


@ reverse() : 리스트 뒤집기

1
2
3
4
my_list = [9,2,5,2]
my_list.reverse()
print(my_list)
# 출력값 : [2, 5, 2, 9]
cs


@ index(value) : 리스트에서 value를 찾고 그 인덱스를 반환

1
2
3
my_list = [9,2,5,3]
print(my_list.index(2))
# 출력값 : 1
cs

리스트에서 2의 위치의 값을 반환한다.


@ insert(index, value) : 리스트에서 원하는 위치에 값을 넣는다.

1
2
3
4
my_list = [1,2,3]
my_list.insert(1,"python")
print(my_list)
# 출력값 : [1, 'python', 2, 3]
cs


@ remove(value) : 리스트에서 value를 찾아서 제거

1
2
3
4
my_list = [5,6,7,8]
my_list.remove(7)
print(my_list)
# 출력값 : [5, 6, 8]]
cs

만약 리스트에 5라는 값이 2개 이상 있었다면 처음 찾은 값만 제거한다.


@ pop(index) : index 위치의 값을 반환하고 그 값을 리스트에서 제거한다.

1
2
3
4
5
my_list = [5,6,7,8]
print(my_list.pop(1))
# 출력값 : 6
print(my_list)
# 출력값 : [5, 7, 8]
cs

index 값을 넣지 않으면 맨 마지막 값을 뽑아낸다.


@ count(value) : 리스트 안에서 value의 개수를 확인해서 반환한다.

1
2
3
my_list = [1,3,4,1,5,1,1]
print(my_list.count(1))
# 출력값 : 4
cs


@ extend(list) : 원래의 리스트에 다른 리스트를 더한다

1
2
3
4
5
my_list = [1,2]
= [3,4]
my_list.extend(b)
print(my_list)
# 출력값 : [1, 2, 3, 4]
cs


@ len() : 요소의 개수를 구하는 함수

1
2
3
my_list = [1,2,3]
print(len(my_list))
# 출력값 : 3
cs


@ copy() : 리스트이 모든 값을 복제하여 새로운 리스트 생성한다.

1
2
3
4
my_list = [1,2,3,4]
co_list = my_list.copy()
print(co_list)
# 출력값 : [1, 2, 3, 4]
cs


@ join() : 리스트의 요소들이 문자열로만 이루어진 경우 join()을 이용하여 하나의 문자열로 만들 수 있다.

1
2
3
4
my_list = ["파","이","썬"]
my_str = "".join(my_list)
print(my_str)
# 출력값 : 파이썬
cs

리스트 각 요소 사이에 빈 문자열을 삽입하여 문자열로 반환한다.


@ clear() : 리스트의 모든 값을 제거

1
2
3
4
my_list = [5,6,7,8]
my_list.clear()
print(my_list)
# 출력값 : []
cs


'Language > Python' 카테고리의 다른 글

딕셔너리(Dictionary)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
포매팅  (0) 2019.01.30
문자열 인덱싱 / 슬라이싱  (0) 2019.01.27

리스트는 데이터를 목록화한 자료형이다.

1
2
3
4
5
6
num_list = [1,2,3]
print(num_list)
# 출력값 : [1,2,3]
 
print(num_list[1])
# 출력값 : 2
cs

리스트를 만들 때는 [ ](대괄호)를 이용하여 만든다.

인덱스 값을 지정해 줄 수도 있다.


[리스트 수정하기]

1
2
3
4
5
6
str_list = ["abc","def","ghi"]
print(str_list)
# 출력값 : ['abc', 'def', 'ghi']
str_list[0= "cba"
print(str_list)
# 출력값 : ['cba', 'def', 'ghi']
cs

수정할 리스트의 인덱스를 지정해서 수정할 수 있다.



'Language > Python' 카테고리의 다른 글

튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
포매팅  (0) 2019.01.30
문자열 인덱싱 / 슬라이싱  (0) 2019.01.27
변수끼리 값 교체  (0) 2019.01.27

문자열 포매팅 : 문자열 내에서 어떤 값을 사용하는 방법

    문자열에서 사용할 값이 변할 때(변수) 유용하다.

1
2
print("정수 : %d" %10)
# 출력값 : 정수 : 10
cs

[포맷 코드]

%s 문자열

%c 문자 1개

%d 정수

%f 실수(소수)

%o 8진수

%x 16진수


[포맷 코드를 이용한 소숫점 표현]

1
2
print("소수 : %.2f" %3.141592)
# 출력값 : 소수 : 3.14

cs

%f는 기본값으로 6자리 까지 출력한다.

%.xf (x는 소숫점 자리 수)의 형태로 자리수를 지정할 수 있다.


[포맷 함수를 이용한 포매팅]

1
2
print("{} + {} = {}".format(1,2,3))
# 출력값 : 1 + 2 = 3
cs

format()함수 안의 값을 { } 안에 순서대로 대입한다. 

'Language > Python' 카테고리의 다른 글

튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
문자열 인덱싱 / 슬라이싱  (0) 2019.01.27
변수끼리 값 교체  (0) 2019.01.27

+ Recent posts