정보보안 스터디 - 34주차 5일 - 파이썬 기초 2 (완강)
메모장에 편집하고, 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) ?? 키우기 -> 인벤토리, 사냥터, 뽑기, 잡화상점 등 구현