| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- Systemhacking #Pwnable #CTF #Write-up #WolvCTF
- amd64 #x86-64 #x64 #레지스터 #컴퓨터 구조
- dreamhack #rev-basic #reversing
- Webhacking #CTF #Write-up #WolvCTF
- 이너
- 포인터_보고서
- pointer
- Layer7 #해킹 #동아리 #시연회 #부엉이
- Today
- Total
stxxp
python 문법 본문
#문자열 자료형 특징
>> 인덱싱
모든 문자열은 한 글자 단위의 요소로 구성되어 있는데 이 요소들의 순서를 바탕으로 특정한 문자를 검색하는 것은 인덱싱이라고 합니다.
str = "python coding"
print(str[1])
print(str[7])

str[1]은 첫 번째 요소를 말하는 것이므로 y가 출력되고 str[7]은 일곱 번째 요소를 말하는 것이므로 c가 출력됩니다.
공백도 문자열에 포함됩니다.
>> 슬라이싱
단일 문자 이외에 다수의 문자(문자열)를 뽑아낼 때 사용하는 방법을 슬라이싱이라고 합니다.
str = "20190325"
print("년도 :", str[:4])
print("월 :", str[4:6])
print("일 :", str[6:])

[숫자:숫자]의 형태로 사용할 수 있고 [4:6}을 하면 4번 요소와 5번 요소가 출력됩니다.
또한 0번째 요소부터 출력을 시작하거나 마지막 요소까지 출력할 때에는 생략이 가능합니다.
>> 대소문자
문자열 전체를 대문자나 소문자로 바꾸기 위해서는 lower함수와 upper함수를 사용해야 합니다.
str1 = "python"
str2 = "KOREA"
print(str1.upper())
print(str2.lower())

>> count 함수, index 함수
문자열에서 포함되어있는 특정한 글자의 개수를 세기 위해서는 count 함수를 사용하고 그 특정 글자가 나타난 위치를 알려주는 함수가 바로 index 함수입니다.
여기서 index 함수는 모든 위치를 출력하지 않고 글자가 처음으로 나타난 위치만 알려줍니다.
str = "I love apple pie and apple cake"
print("1-1. ", str.count("p"))
print("1-2. ", str.index("p"))
print("2-1. ", str.count("apple"))
print("2-2. ", str.index("apple"))

>> replace 함수
문자열 안에 있는 특정한 문자를 다른 문자로 바꾸고 싶을 때 replace 함수를 사용합니다.
replace 함수로 특수기호(!,? 등)도 바꿀 수 있습니다.
str = "I am very sad"
print(str.replace("sad", "happy"))

#튜플 자료형 특징
튜플 자료형은 리스트 자료형과 매우 비슷하지만 요소를 대괄호가 아닌 소괄호로 둘러싸고 값의 생성 및 삭제와 수정이 불가능하다는 점에서 큰 차이가 있습니다.
요소 값을 추가, 삭제, 변경이 불가능해도 인덱싱, 슬라이싱과 연산은 가능합니다.
>> 슬라이싱
튜플 자료형에서 슬라이싱을 하면 출력된 값이 () 소괄호로 감싸지고 문자는 ''작은따옴표가 붙습니다.
subject = (("english1", "english2"), "math", "social", "music")
number = (1,2,3,4,5)
print(subject[:3])
print(number[:3])

>> 연산
튜플에서는 주로 여러 개의 튜플을 합치거나 (더하기 연산자 '+' 사용) 여러 번 나타내기 (곱하기 연산자 '*' 사용) 위한 연산을 합니다.
튜플끼리 합치는 연산을 하면 합치는 순서대로 연결되어 출력되며 튜플끼리 곱하는 연산을 하면 해당 튜플이 곱한 만큼 연속되어 출력됩니다.
튜플에서는 요소 값을 추가할 수 없기 때문에 만약 tup1 = (1, 2, 3)에 요소 4, 5를 더해서 출력하려면 tup2 = (4, 5)를 tup1에 더해야 합니다.
tup1 = (10, 20, 30)
tup2 = (40, 50, 60)
tup3 = ("a", "b", "c", "d", "e", " ")
print(tup1 + tup2)
print(tup3 * 10)

#딕셔너리 자료형 특징
딕셔너리 자료형은 다른 자료형과 다르게 key값을 가집니다. 딕셔너리는 요소의 순서가 아닌 이 key값을 통해서 요소에 접근하여 바꾸거나 지우거나 추가할 수 있게 됩니다.
딕셔너리 자료형을 사용할 때는 key값에 ""큰따옴표를 붙여줘야 합니다.
또한, 문자열 자료형, 튜플 자료형과 마찬가지로 인덱싱을 사용할 수 있습니다.
| 자료형 | 튜플 자료형 | 딕셔너리 자료형 | ||
| 선언 형태 | fruit = ("apple", "grape", "banana") | fruit = {"Red":"apple", "Purple":"grape", "Yellow":"banana"} | ||
| 내용 | 요소 번호 | 요소의 값 | key값 | 요소의 값 |
| 0 | apple | Red | apple | |
| 1 | grape | Purple | grape | |
| 2 | banana | Yellow | banana | |
그렇기 때문에 딕셔너리에서 요소의 값을 변경, 삭제, 추가하기 위해서는 요소의 순서가 아닌 key값을 사용해야 합니다.
fruit = {"Red":"apple", "Purple":"grape", "Yellow":"banana"}
fruit["Yellow"] = "mango"
print(fruit)

#조건문 if, else, elif
조건문의 형태는
if (변수)(비교 연산자)(비교하는 값):
(if문 안에 들어왔을 때 실행될 코드)
입니다.
만약 if문이 참이 아닌 경우에도 무언가를 실행하고 싶은 경우에 else를 이용합니다.
(else는 if문이 거짓일 때 실행됨)
그리고 두 가지 이상의 조건에 대해 코드를 실행시키려면 elif를 사용하는데 이는 c언어에서의 else if와 동일한 의미로 쓰입니다.
age = int(input("나이를 입력해주세요 : "))
if age < 20:
print("미성년자입니다.")
elif age < 30:
print("20대입니다.")
elif age < 40:
print("30대입니다.")
else:
print("40대 이상입니다.")

#반복문 for, while
>> for문
for문은 반복 조건, 반복 내용, 반복으로 구성되어 있습니다. 반복 횟수를 조정해주기 위해서는 range 함수를 사용하는데 이 함수는 변수의 범위를 지정해줍니다. for문의 형태는
for (변수) in range((반복 조건)):
(반복 내용)
입니다.
sum=0
for a in range(1, 101):
sum += a
print("1부터 100까지의 합 : ", sum)

위 코드에서 range 안에 (1, 101) 은 반복문을 1부터 100까지 반복한다는 뜻입니다.
>> while문
while문 역시 반복 조건, 반복 내용, 반복으로 구성되어 있습니다. 주의해야 할 점이 있다면 while문은 초기 식이 없으면 실행되지 않는다는 것입니다. 형태는
(변수) = (변수의 시작 값)
while (변수) (비교 연산자) (비교하는 값):
(반복 내용)
(변수 증감식)
입니다.
a = 1
while a <= 10:
print(a)
a += 1
