Culture/etc 해킹지식

정보보안 스터디 - 34주차 5일 - 파이썬 기초 2 (완강)

wonder12 2023. 6. 6. 11:36

 

 

메모장에 편집하고, cmd에서 실행하는 대신

cmd랑 똑같은 역할입니다. terminal

 

 

*변수

이름 = "데이터"


로만 해주면 되고
A,B,C 만 안하면 됩니다. 헷갈리지 않게

 


name 이라는 데이터상자에 값을 넣는다고 생각하면 편합니다.

print() 에는 무조건 ' or " 있어야 됩니다.
없으면 변수라고 생각해서변수를 찾기 때문에 에러납니다.



저장한 데이터가 영원하진 않습니다.
변수를 지우면 단기기억으로 > 장기기억 외부로 빼서, import해줘야합니다.

 




*데이터유형

1+1
11


데이터 유형이 문자였습니다.
data type 지켜야됩니다.

print(type(name))


함수 쓰면 데이터 유형 확인가능

int 정수
float 소수점 


다른 유형끼리 더하면 에러납니다.

boolean 등
데이터 유형은 엄청 많습니다.

 



=
같다가 아닙니다. 데이터 넣겠다. 입니다.
== 같다

True : 1
False : 0
연산하면 숫자로 처리되서 연산됩니다.

원래 1인데 이해하기 편하라고 true로 표현 해줬습니다.



*list

DL = [1,23,4,"wonder"]
print(DL[1])


0 부터 셉니다.

AddD = input("추가할 데이터 : ")
DL.append(AddD)

리스트 추가
DL.remove("wonder")

삭제
DL[2] = "normaltic"
바꾸기

len(DL)
갯수


데이터상자에 저장합니다.


*tuple 

data = (1,2,3)

그냥 () 형식이고
list랑 같습니다.
하지만 데이터 추가 등 접근못해서 거의 안씁니다.



*dictionary
key-value

dic = {"name":"normaltic", "fruit":"grapes"}
print(data["name"])

번호 쓰는 게 아닙니다.

따라서 list보다 눈에 보기 좋은 코드로 만들 수 있습니다.

data["email"] = "test@gmail.com"
데이터 추가됨
data["name"] = "mario"
변경




*if

if(조건):
~~~



num1 = 100
if(num1 > 10):
	print("숫자가큼")
	print("숫자가큼2")
print("yeah")



참,거짓으로 되는 듯한데 참일 때는 모두 실행되는 대참사가 발생합니다. > else로
tab  = indent 구분에 따라 코드 지역이 달라집니다.
띄어쓰기도 통일해야 오류가 안생깁니다.

if(num1 > 10):
	print("숫자가큼")
	print("숫자가큼2")
else:
	print("작음.-거짓")

 



같을 때 추가하고 싶은 경우

if(num1 > 10):
	print("숫자가큼")
	print("숫자가큼2")
elif(num1 == 10):
	print("같음")
else:
	print("작음.-거짓")

 


int(score)
타입 바꿔주면 비교가능합니다.

scrore = input("점수를 입력해주세요 : ")
int(score)
if(score > 10):
	print("점수가 10점보다 높네요!")


XX 따로 뺄 수 없습니다.


int(input) 으로 해야됩니다.

scrore = int(input("점수를 입력해주세요 : "))
if(score > 10):
	print("점수가 10점보다 높네요!")




숫자 범위를 정확하게 할려면
80 ~100 이니?
80이상 and 100이하 여야 합니다.


boolean연산으로 이루어지기 때문에 

참 and 참 -> 참

구조 입니다.

0 < num and num <= 40


제대로 된 점수 입력 하라고 할 수 있습니다.

 

 

*예외처리

한글 쓸 경우 에러 or 버그 가능성 > 예외처리. 신경써서 해야됩니다.

try:
(예외가 일어날 수 있는 코드)
except:
(예외가 일어났을 떄 실행하는 코드)

--
try:
(score = int(input("현재 점수를 입력 :")))
except:
(print(" **! 점수는 숫자를 입력해야해요 "))



score쪽에서 일어나서 에러뜹니다.

> 그냥 에러가 났을 때 처리

 

try:
(score = int(input("현재 점수를 입력 :")))
except:
(print(" **! 점수는 숫자를 입력해야해요 "))
exit()


또는 

score 모든 코드 try에 넣어주는 방법이 있습니다.
이 때 indent 맞춰줘야 됩니다.

 



*반복문

condition = 0
while(condition < 10):
print
조건 끝날 때까지. 계속되기 때문에 영향을 줍니다.
condition = condition + 1



참print
거짓print


while(true)
print

if(num== 0):
break

하지만 개발자는 이렇게 많이 짭니다.
무한루프 > 계속하다가 그만
하는 이유 : 귀찮아서 반복하고 싶은 코드 있으면 때려놓고 특정 조건 탈출


continue 도 자주씁니다.
특정조건이면 밑에는 실행안하고! 다시 반복문으로 올라갑니다.


*len(data)
길이

 

 

datalist = ["치킨", "피자", "탕수육"]
i=0
while(i < len(datalist)):
	print(datalist[i])
	i= i+1

while이라면 이렇게 썻을 걸


*for문

for food in datalist:
	print(food)

2줄로 짧게할 수 있습니다.



for "치킨" in datalist:
	print("치킨")

이런식으로 첫변째 데이터를 차례로 변수에 넣어줍니다.

 

사전이라도 100개는 노가다로 할 수 없으니

range(1, 100)



굳이 변수안쓰고 가능합니다.

for num in range(1, 100):
	print(num)



for num in range(1, 100):
	print("와우")

 

이런식으로도 활용가능

 

 

% 모듈러
나머지  > 홀짝 구분가능

 


str(num) + 해줘도 되지만
문자열 포매팅을 쓰며 
+ 잘 안씁니다.

print("{} : 홀수!".format(num))

print("{} {} : 홀수!".format(num, num+1))



odd_form = "{} : 홀수!"  
문자열
odd_form.format(num)

도 가능



*function
1. 코드를 반복해서 쓰지 않기 위해
2. 가독성을 위해
3. 다른 사람 이용가능

 

print()
도 기본 함수입니다.

function(argument)
인자

 


함수 만들 때

def tellTruth():
	print("wonder 1일1포스팅")
	print("블로그는")
	print("여기에 http://tistory.com")



전달 인자 

def tellTruth(name):
	print("{} 1일1포스팅".format(name))
	print("블로그는")
	print("여기에 http://tistory.com")
    
    
   
tellTruth("노말틱")
tellTruth("mario")

 

이것도 각각만들면 안되기 때문에 편리를 위함입니다.

 

 

 


이게 약간 헷갈리는데
실제로 화면이 아니라 출력되도록

res = num1 + num2
return result
result = num_add(3,2)

 

결과가 result에 들어가게 됩니다.


* library - 함수(모듈)

import random

print(random.randrange(1,100))

 

라이브러리 구글 검색으로 쉽게 검색합니다.


import requests

 

기본 라이브러리 없을 때
pip install request 설치 해야합니다.

별명 - 가독성을 위해

import random as r
print(r.randrange(1,100))

 

 

 

 

*리뷰
업다운 게임 말고도
RPG 게임. 어렸을 때 종이에 쓰는 거 대신 만들 수 있겠습니다.
가위바위보 게임 등
코인+ 재밌는 요소 계속 추가해서 만들면 재밌겠고.+공부도 될 듯합니다.


ex) ?? 키우기 -> 인벤토리, 사냥터, 뽑기, 잡화상점 등 구현