code08-01.py

ss = "파이썬최고"
print(ss[0])
print(ss[1:3])
print(ss[3:])

ss= "파이썬"+"최고"
print(ss)
ss = "파이썬"*3
print(ss)

ss = "파이썬짱!"

sslen = len(ss)
for i in range(sslen):
    print(ss[i]+"$", end = "")

ss="파이썬은완전재미있어요"
sslen = len(ss)
for i in range(sslen):
    if len(ss[i])%2==0:
        print(ss[i], end = "")
    else:
        print("#")

 

code08-02.py

##변수 선언 부분##
inStr,outStr = "",""
count, i =0,0

##메인 코드 부분 ##
inStr = input("문자열을 입력하세요 : ")
count = len(inStr)

for i in range(0,count):
    outStr +=inStr[count - (i+1)]

print("내용을 거꾸로 출력 -> %s" % outStr)

 

code08-03.py

# ss = "Pyhon is Easy. 그래서 programming이 재미있습니다"
# print(ss.upper())
# print(ss.lower())
# print(ss.swapcase())
# print(ss.title())

#결과값
# PYHON IS EASY. 그래서 PROGRAMMING이 재미있습니다
# pyhon is easy. 그래서 programming이 재미있습니다
# pYHON IS eASY. 그래서 PROGRAMMING이 재미있습니다
# Pyhon Is Easy. 그래서 Programming이 재미있습니다

# ss = "파이썬 공부는 즐겁습니다. 물론 모든 공부가 다 재미있지는 않죠. ^^"
# print(ss.count("공부"))
# print(ss.find("공부"), ss.rfind("공부"), ss.find("공부", 5), ss.find("없다"))
# print(ss.index("공부"), ss.rfind("공부"), ss.index("공부", 5))
# print(ss.startswith("파이썬"), ss.startswith("파이썬", 10), ss.endswith("^^"))

# 2
# 4 21 21 -1 
# 4 21 21 #번째가 아니라 몇 번이다
# True False True

ss= input("입력 문자열 ==> ")
print("출력 문자열==> ", end = " ")

if ss.startswith("(") == False :
    print("(", end = " ")

print(ss, end = " ")

if ss.endswith(")") == False :
    print(")", end = " ")

 

code08-04.py

ss = "   파 이 썬   "
print(ss.strip())
print(ss.rstrip())
print(ss.lstrip())

ss="----파---이---썬----"
print(ss.strip("-"))
ss="<<파<<이>>썬>>"
print(ss.strip("<>"))

inStr = "  한글 Python 프로그래밍  "
outStr = ""

for i in range(0, len(inStr)) :
    if inStr[i] != " ":
        outStr += inStr[i]
print("원래 문자열 ==> "+ "[" + inStr + "]")
print("공백 삭제 문자열 ==> "+ "[" + outStr + "]")

 

code08-05.py

ss = input("입력 문자열 ==> ")

print("출력 문자열 ==> ", end = " ")
for i in range(0, len(ss)):
    if ss[i] != "o" :
        print(ss[i], end = " ")
    else:
        print("$", end = " ")

 

code08-06.py

ss = input("날짜(연/월/일) 입력 ==> ")

ssList= ss.split("/")

print("입력한 날짜의 10년 후 ==> ", end = " ")
print(str(int(ssList[0])+10)+ "년", end = " ")
print(ssList[1] + "월", end= " ")
print(ssList[2] + "일")

ss = "파이썬"
ss.center(10)
ss.center(10, "-")
ss.ljust(10)
ss.rjust(10)
ss.zfill(10)

"1234".isdigit()
"abcd".isalpha()
"abc123".isalnum()
"abcd".islower()
"ABCD".isupper()
"  ".isspace()

 

code08-07.py

import turtle
import random
from tkinter.simpledialog import *

##전역 변수 선언 부분
inStr = ""
swidth, sheight= 300,300
tx, ty, txtSize = [0]*3

#메인 코드 부분
turtle.title("거북이 글자쓰기")
turtle.shape("turtle")
turtle.setup(width = swidth + 50, height = sheight +50)
turtle.screensize(swidth,sheight)
turtle.penup()

inStr = askstring("문자열 입력", "거북이 쓸 문자열을 입력")

for ch in inStr :
    tx = random.randrange(int(-swidth / 2), int(swidth /2))
    ty = random.randrange(int(-sheight / 2), int(sheight /2))
    r= random.random(); g= random.random(); b= random.random()
    txtSize =random.randrange(10, 50)

    turtle.goto(tx,ty)

    turtle.pencolor((r,g,b))
    turtle.write(ch, font=("맑은 고딕", txtSize, "bold"))



turtle.done()

 

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

윈도 프로그래밍  (2) 2024.12.05
함수와 모듈  (0) 2024.12.05
리스트, 튜플, 딕셔너리  (0) 2024.10.24
반복문  (0) 2024.10.24
조건문  (0) 2024.10.24

Code07-01.py

a,b,c,d, = 0,0,0,0
hap = 0

a = int(input("1번째 숫자 : "))
b = int(input("2번째 숫자 : "))
c = int(input("3번째 숫자 : "))
d = int(input("4번째 숫자 : "))

hap = a+b+c+d

print("합계 ==> %d" % hap)

 

Code07-02.py

aa = [0,0,0,0]
hap = 0

aa[0] = int(input("1번째 숫자 : "))
aa[1] = int(input("2번째 숫자 : "))
aa[2] = int(input("3번째 숫자 : "))
aa[3] = int(input("4번째 숫자 : "))

hap = aa[0]+aa[1]+aa[2]+aa[3]

print("합계 ==> %d" % hap)

 

Code07-03.py

aa = []
for i in range(0, 4) :
    aa.append(0)
hap = 0


for i in range(0,4) :
    aa[i] = int(input(str(i + 1) + "번째 숫자 : "))

# hap = aa[0] + aa[1] + aa[2] + aa[3]

#반복문 처리
for i in range(0,4) :
    hap = hap + aa[i]
print("합계 ==> %d" % hap)

 

Code07-04.py

aa = []
bb = []
value = 0

for i in range(0, 100):
    aa.append(value)
    value += 2

for i in range(0, 100):
    bb.append(aa[99 - i])

print("bb[0]에는 %d이, bb[99]에는 %d이 입력됩니다." % (bb[0], bb[99]))

#-1은 마지막 값
# [0:3:1] 0,1,2,3 [start : stop : step]
#[2:] 끝까지
#[:2] 처음부터

# aa = [10, 20, 30, 40]
# print("aa[-1]은 %d, aa[-2]는 %d" % (aa[-1], aa[-2]))

# aa = [10, 20, 30, 40]
# print(aa[0:3])
# print(aa[2:4])

# aa = [10, 20, 30, 40]
# print(aa[2:])
# print(aa[:2])

# bb = [10, 20, 30]
# print(aa + bb)
# print(aa*3)

# aa = [10, 20, 30, 40]

# print(aa[::-1])
# print(aa[::1])


# aa = [10, 20, 30] ; aa = []; print(aa)
# aa = [10, 20, 30] ; aa = None ; print(aa)
# aa = [10, 20, 30] ; del(aa) ; print(aa)

 

Code07-05.py

myList = [30, 20, 10]
print("현재 리스트 : %s" % myList)

myList.append(40)
print("append(40) 후의 리스트 : %s" % myList)

print("pop()으로 추출한 값 : %s" % myList.pop())
print("pop() 후의 리스트 : %s" % myList)

myList.sort()
print("sort() 후의 리스트 : %s" % myList)

myList.reverse()
print("reverse() 후의 리스트 : %s" % myList)

print("20값의 위치 : %d" % myList.index(20))

myList.insert(2,222)
print("insert(2,222) 후의 리스트 : %s" % myList)

myList.remove(222)
print("remove(222) 후의 리스트 : %s" % myList)

myList.extend([77, 88, 77])
print("extend([77, 88, 77]) 후의 리스트 : %s" % myList)

print("77값의 개수 : %d" % myList.count(77))

 

Code07-06.py

list1 = []
list2 = []
value = 1
for i in range(0,3):
    for k in range(0,4):
        list1.append(value)
        value +=1

        print(list1)

    list2.append(list1)

    print(list2)

    list1 = []

for i in range(0,3):
    for k in range(0,4):
        print("%3d" % list2[i][k], end = "")
    print("")

 

Code07-07.py

import turtle
import random

## 전역 변수 선언 부분 ##
myTurtle, tX, tY, tColor, tSize, tShape = [None]*6
shapeList = []
playerTurtles = []
swidth, sheight = 500,500

##메인코드부분##
if __name__ =="__main__" :
    turtle.title("거북 리스트 활용")
    turtle.setup(width = swidth + 50, height= sheight + 50)
    turtle.screensize(swidth, sheight)

    shapeList = turtle.getshapes()
    for i in range(0,100) :
        random.shuffle(shapeList)
        myTurtle = turtle.Turtle(shapeList[0])
        tX = random.randrange(int(-swidth/2), int(swidth/2))  # 정수로 변환
        tY = random.randrange(int(-sheight/2), int(sheight/2))  # 정수로 변환
        r = random.random(); g = random.random(); b = random.random()
        tSize = random.randrange(1,3)
        playerTurtles.append([myTurtle, tX, tY, tSize, r, g, b])

    for tList in playerTurtles :
        myTurtle = tList[0]
        myTurtle.color((tList[4],tList[5],tList[6]))
        myTurtle.pencolor((tList[4],tList[5],tList[6]))
        myTurtle.turtlesize((tList[3]))
        myTurtle.goto(tList[1], tList[2])

    
    turtle.done

 

Code07-08.py

#튜플은 만들면 수정 할 수가 없다

tt1 = (10,20,30); print(tt1)
tt2 = 10,20,30; print(tt2)
tt3 = (10); print(tt3)
tt4 = 10; print(tt4)
tt5 = (10, ); print(tt5)
tt6 = 10, ; print(tt6)

#오류
# tt1.append(40)
# tt1[0] = 40
# del(tt1[0])

del(tt1)
del(tt2)

tt1 = (10, 20, 30, 40)
print(tt1[0])
print(tt1[0] + tt1[1] + tt1[2])

myTuple = (10, 20, 30)
myList = list(myTuple)
myList.append(40)
myTuple = tuple(myList)
print(myTuple)



#딕셔너리
#순서가 없다
student1 = {"학번" : 1000, "이름" : "홍길동", "학과" : "컴퓨터공학과"}
print(student1)

student1["연락처"] = "010-1111-1111"
print(student1)

student1["학과"] = "파이썬"
print(student1)

del(student1["학과"])
print(student1)

student1 = {"학번" : 1000, "이름" : "홍길동", "학과" : "컴퓨터공학과", "학번" : 2000} #겹치면 동일한 딕셔너리 생성이 아닌 마지막에 있는 키가 적용된다
print(student1)



print(student1["학번"])

# print(student1["주소"]) #없는 딕셔너리는 가져오지 못해 오류가 난다
print(student1.get("주소")) #없으면 없다고 답이 온다

print(student1.keys())

print(list(student1.keys()))

print(student1.values())

print(student1.items())

print("이름" in student1)
print("주소" in student1)



singer = {}

singer["이름"] = "트와이스"
singer["구성원 수"] = 9
singer["데뷔"] = "서바이벌 식스틴"
singer["대표곡"] = "SIGNAL"

for k in singer.keys() :
    print("%s --> %s" % (k, singer[k]))

 

Code07-09.py

import operator

trainDic, trainList = {}, []

# trainDic = {"Thomas" : }

 

Code07-10.py

## 변수 선언 부분
foods = {"떡볶이":"오뎅",
        "짜장면" : "단무지",
        "라면" : "김치",
        "피자" : "피클",
        "맥주" : "땅콩",
        "치킨" : "치킨무",
        "삼겹살" : "상추"}

#메인코드부분
while (True) : 
    myfood = input(str(list(foods.keys())) + " 중 좋아하는 음식은?")
    if myfood in foods :
        print("<%s> 궁합 음식은 <%s>입니다." % (myfood, foods.get(myfood)))
    elif myfood == "끝" :
        break
    else :
        print("그런 음식이 없습니다. 확인해 보세요")

 

Code07-11.py

# #세트연습

# mySet1 = {1,2,3,3,3,4}
# print(mySet1)

# salesList = ["a", "b", "c", "d", "e", "a", "b", "c", "a"]
# print(set(salesList))

# # 값
# # {1, 2, 3, 4}
# # {'a', 'd', 'c', 'e', 'b'}

# mySet1 = {1, 2, 3, 4, 5}
# mySet2 = {4, 5, 6, 7}
# print(mySet1 & mySet2)
# print(mySet1 | mySet2)
# print(mySet1 - mySet2)
# print(mySet1 ^ mySet2)

# print(mySet1.intersection(mySet2))#교집합
# print(mySet1.union(mySet2))#합집합
# print(mySet1.difference(mySet2))#차집합
# print(mySet1.symmetric_difference(mySet2))#대칭 차집합

#컴프리헨션
#리스트 = [수식 for 항목 in ranger() if 조건식]
# numList = []
# for num in range(1,6) :
#     numList.append(num)
# print(numList)

# numList = [num for num in range(1, 6)]
# print(numList)

# numList = [num*num for num in range(1, 6)]
# print(numList)

# numList = [num for num in range(1, 21) if num % 3 ==0]
# print(numList)

#값
# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]
# [1, 4, 9, 16, 25]
# [3, 6, 9, 12, 15, 18]

# foods = ["떡볶이", "짜장면", "라면", "피자", "맥주", "치킨", "삼겹살"]
# sides = ["오뎅", "단무지", "김치"]
# tupList = list(zip(foods, sides))
# dic =dict(zip(foods, sides))
# print(tupList)
# print(dic)

#얕은복사
oldList = ["짜장명", "탕수육", "군만두"]
newList = oldList
print(newList)
oldList[0] = "짬뽕"
oldList.append("깐풍기")
print(newList)

#깊은복사
oldList = ["짜장명", "탕수육", "군만두"]
newList = oldList[:]
print(newList)
oldList[0] = "짬뽕"
oldList.append("깐풍기")
print(newList)

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

함수와 모듈  (0) 2024.12.05
문자열  (2) 2024.10.24
반복문  (0) 2024.10.24
조건문  (0) 2024.10.24
연산자  (2) 2024.10.24

Code06-01(1).py

print("안녕하세요? for문을 공부 중입니다. ^^")
print("안녕하세요? for문을 공부 중입니다. ^^")
print("안녕하세요? for문을 공부 중입니다. ^^")

 

Code06-01(2).py

#for -> 횟수가 정해져 있을 때 사용
#while->조건에 따라 실행 할 때 사용


for i in range(2, -1, -1) :
    print("%d 안녕하세요? for문을 공부 중입니다. ^^" %i)

for i in range(1, 6, 1) :
    print("%d " %i, end=" ")

 

*for  변수 in range(시작값, 끝값+1, 증가값):
    반복
for i in[0,1,2]: = for i in range(0, 3, 1) : 

for i in range(2, -1, -2) : 

 

 

Code06-02(1).py

# i=0

# for i in range(1, 11, 1) :
#      hap = hap + i

# print("1에서 10까지의 합계 : %d" %hap)

i, hap=0, 0

for i in range(1, 11, 1) :
     hap = hap + i

print("1에서 10까지의 합계 : %d" %hap)

#hap을 변수 선언하지 않아서 오류가 나왔다
#그러나 파이썬은 변수 선언 없이 되지 않나?->그러나 hap이 누적이 되려면 hap이라는 존재가 있어야 하는데 없으므로 오류가 나온것

 

Code06-02(2).py

i, hap=0, 0

for i in range(1, 11, 1) :
     hap = hap + i

print("1에서 10까지의 합계 : %d" %hap)

 

Code06-03.py

i, hap = 0,0

for i in range(501, 1001, 2) :
    hap = hap + i

print("500과 1000 사이에 있는 홀수의 합계 : %d" %hap)

 

Code06-04.py

i, hap =0,0

a=0

a=int(input("숫자를 입력하시오 : "))

for i in range(1, a+1, 1):
    hap=hap + i

print("1과 %d 사이에 있는 합계 : %d" %(a, hap))

 

Code06-05.py

i, hap = 0,0
num1, num2, num3 = 0,0,0

num1 = int(input("시작값을 입력하세요 : "))
num2 = int(input("끝값을 입력하세요 : "))
num3 = int(input("증가값을 입력하세요 : "))

for i in range(num1, num2+1, num3):
    hap = hap + i

print("%d에서 %d까지 %d씩 증가시킨 값의 합계 : %d" % (num1, num2, num3, hap))

 

Code06-06.py

i, dan =0,0

dan = int(input("단을 입력하세요 : "))
          
for i in range(1, 10, 1) :
    print("%d X %d = %2d" %(dan,i, dan*i))

 

Code06-07.py

i, j =0, 0

          
for i in range(2, 10, 1) :
    for j in range(1, 10, 1) :
        print("%d X %d = %2d" %(i,j, i*j))
    print("")

 

Code06-08.py

# a=1

# while a<4:
#     print("%d : 안녕하세요? while문을 공부 중입니다. ^^" %a)
#     a = a+ 1


##전역 변수 선언 부분
i, k, guguLine = 0,0, ""

#메인 코드 부분
for i in range(2, 10) :
    guguLine = guguLine + ("# %d단 #" %i)
    # #2단# #3단#...이렇게 한줄로 문자열을 완성시켜  바로 밑에 프린트 한다

print(guguLine)

for i in range(1, 10) :
    guguLine = ""
    for k in range(2, 10) :
        guguLine = guguLine + str("%2dX %2d= %2d" %(k, i, k*i))
    print(guguLine)
    #구구단 또한 각 k단에 i을 곱한 걸 문자열로 모아서 한줄 프린트하고 i+1로 더해줘 똑같이 또 한 줄씩 프린트 해준다

 

Code06-09.py

i, hap = 0,0

i =1
while i < 11:
    hap = hap + 1
    i= i+1

print("1에서 10까지의 합계 : %d" %hap)

# i, hap=0, 0

# for i in range(1, 11, 1) :
#      hap = hap + i

# print("1에서 10까지의 합계 : %d" %hap)

 

Code06-10.py

hap=0
a, b, =0, 0

while True :
    a = int(input("더할 첫 번째 수를 입력하세요 : "))
    b = int(input("더할 두 번째 수를 입력하세요 : "))
    hap = a+b
    print("%d + %d = %d" %(a, b, hap))
    #컨트롤c를 눌러주면 깜빡이는곳에서 나가진다

 

*while
변수=시작값
while 변수<끝값 :
    반복
    변수 = 변수 + 증가값


while문이 무한정 출력될때 중지하려면 컨트롤+c를 눌러주면 된다. 

 

 

Code06-11.py

ch = ""
a,b = 0,0

while True:
    a = int(input("계산할 첫 번째 수를 입력하세요 : "))
    b = int(input("계산할 두 번째 수를 입력하세요 : "))
    ch = input("계산할 연산자를 입력하세요 : ")

    if(ch == "+") :
        print("%d + %d = %d" % (a,b,a+b))
    elif(ch == "-") :
        print("%d - %d = %d" % (a,b,a-b))
    elif(ch == "*") :
        print("%d * %d = %d" % (a,b,a*b))
    elif(ch == "/") :
        print("%d / %d = %5.2f" %(a, b, a/b))
    elif(ch == "%") :
        print("%d %% %d = %5.2f" %(a, b, a%b))
    elif(ch == "//") :
        print("%d // %d = %5.2f" %(a, b, a//b))
    elif(ch == "**") :
        print("%d ** %d = %5.2f" %(a, b, a**b))
    else :
        print("연산자를 잘못 입력했습니다.")

 

Code06-12.py

hap = 0 
a, b, =0,0

while True :
    a = int(input("더할 첫 번째 수를 입력하세요 : "))
    if a ==0 :
        break
    b = int(input("더할 두 번째 수를 입력하세요 : "))
    hap = a+b
    print("%d + %d = %d" % (a,b,hap))

print("0을 입력해 반복문을 탈출했습니다.")

#a=0이면 브레이크고 반복문을 탈출하여 11행으로 나오게 된다.

 

*break
컨트롤 c로 반복문을 탈출도 가능하지만 브레이크도 있다.
브레이크를 만나면 반복문을 나가 버린다

 

 

Code06-13.py

hap, i = 0, 0

for i in range(1, 101) :
    hap += i

    if hap >= 1000:
        break
print("1~100의 합계를 최초로 1000이 넘게 하는 숫자 : %d" %i)

 

Code06-14.py

hap, i = 0, 0

for i in range(1, 101) :
    if i % 3 == 0:
        continue

    hap +=i
print("1~100의 합계(3의 배수 제외) :  %d" %hap)
#컨티뉴로 나머지가 0이면 아래 명령으로 나가는게 아닌(남은 부분을 무조건 건너뛰고) 다시 반복문 처음으로 올라가게 된다.

 

*continue
continue를 만나면 남은 부분을 무조건 건너뛰고 반복문의 처음으로 돌아간다

 

Code06-15.py

i, k = 0,0

i=0
while i < 9 :
    if i< 5:
        k=0
        while k < 4 - i:
            print(" ", end= " ")
            k += 1
        k=0
        while k < i*2+1 :
            print("\u2605", end= " ")
            k += 1
    else:
        k = 0
        while k < i-4:
            print(" ", end= " ")
            k += 1
        k=0
        while k < (9-i)*2-1:
            print("\u2605", end= " ")
            k += 1
    print()
    i += 1

 

selfstudy6-1.py

i, hap = 0,0

for i in range(0, 101, 7) :
    hap = hap + i

print("0과 100 사이에 있는 7의 배수 합계 : %d" %hap)

 

selfstudy6-2.py

i, dan =0,0

dan = int(input("단을 입력하세요 : "))
          
for i in range(9, 0, -1) :
    print("%d X %d = %2d" %(i, dan,dan*i))

 

selfstudy6-3.py

i, j =0, 0

          
for i in range(2, 10, 1) :
    print("## %d단 ##" %i)
    for j in range(1, 10, 1) :
        print("%d X %d = %2d" %(i,j, i*j))
    print("")

 

selfstudy6-4.py

## 전역 변수 선언 부분 ##
i, k, guguLine = 0, 0, ""

# 9단부터 2단까지 제목 출력
for i in range(9, 1, -1):
    guguLine = guguLine + ("# %d단 #" % i)

print(guguLine)

# 9단부터 2단까지 구구단 출력
for i in range(9, 0, -1):
    guguLine = ""
    for k in range(9, 1, -1):
        guguLine = guguLine + str("%2d X %2d = %2d  " % (k, i, k * i))
    print(guguLine)

 

selfstudy6-5.py

i, hap = 0,0
num1, num2, num3 = 0,0,0

num1 = int(input("시작값을 입력하세요 : "))
num2 = int(input("끝값을 입력하세요 : "))
num3 = int(input("증가값을 입력하세요 : "))

while i <= num2 :
    hap = hap + i
    i = i + num3

print("%d에서 %d까지 %d씩 증가시킨 값의 합계 : %d" % (num1, num2, num3, hap))

 

selfstudy6-6.py

hap = 0 
a, b = 0, 0

while True:
    a = input("더할 첫 번째 수를 입력하세요 (종료: $) : ")
    
    # 종료 조건 확인
    if a == "$":
        break
        
    a = int(a)  # 문자열을 정수로 변환
    
    b = int(input("더할 두 번째 수를 입력하세요 : "))
    hap = a + b
    print("%d + %d = %d" % (a, b, hap))

print("종료 조건인 '$'를 입력해 반복문을 탈출했습니다.")

 

selfstudy6-7.py

hap, i = 0, 1 

while i <= 100:
    hap += i

    if hap >= 1000:
        break
    
    i += 1

print("1~100의 합계를 최초로 1000이 넘게 하는 숫자 : %d" % i)

 

selfstudy6-8.py

for i in range(9):
    if i < 5:
        k = 0
        for k in range(4 - i):
            print(" ", end=" ")
        for k in range(i * 2 + 1):
            print("\u2665", end=" ")
    else:
        k = 0
        for k in range(i - 4):
            print(" ", end=" ")
        for k in range((9 - i) * 2 - 1):
            print("\u2665", end=" ")
    print()

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

문자열  (2) 2024.10.24
리스트, 튜플, 딕셔너리  (0) 2024.10.24
조건문  (0) 2024.10.24
연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21

Code05-01.py

# : 이 뒤에 코드 블록(하나의 덩어리)이 따라온다
#덩어리는 들여쓰기로 구분한다////다른 언어에서는 중괄호로 

a = 200

if a < 100 :
    print("100보다 작군요.")
print("거짓이므로 이 문장은 안 보이겠죠?")

print("프로그램 끝")

 

Code05-02.py

a = 200

if a < 100 :
    print("100보다 작군요.")
    print("거짓이므로 이 문장은 안 보이겠죠?")

print("프로그램 끝")

 

Code05-03.py

a = int(input("a= "))

if a < 100 :
    print("100보다 작군요.")
else :
    print("100보다 크군요.")

 

Code05-04.py

a = 200

if a< 100 :
        print("100보다 작군요.")
        print("참이면 이 문장도 보이겠죠?")
else :
        print("100보다 크군요.")
        print("거짓이면 이 문장도 보이겠죠?")

print("프로그램 끝")

 

Code05-05.py

a = int(input("정수를 입력하세요= "))

if a % 2 ==0 :
    print("짝수를 입력했군요.")
else :
    print("홀수를 입력했군요.")

 

Code05-06.py

# a = int(input("입력하세요: "))

a =  75

if a>50:
    if a<100:
        print("50보다 크고 100보다 작군요.")
    else:
        print("와~~ 100보다 크군요.")
else:
    print("에고~ 50보다 작군요.")

 

Code05-07.py

a = int(input("입력하세요: "))

if a>=90:
   print("A")
else:
    if a>=80:
        print("B")
    else:
         if a>=70:
            print("C")
         else:
            if a>=60:
                print("D")
            else:
                print("F")
print("학점입니다. ^^")

 

Code05-08.py

score = int(input("점수를 입력하세요 : "))

if score >=90 :
    print("A")
elif score >=80 :
    print("B")
elif score >=70 :
    print("C")
elif score >=60 :
    print("D")
else :
    print("F")

print("학점입니다. ^^")

 

Code05-09.py

import turtle
##전역 변수 선언 부분 ##
swidth, sheight = 500, 500
##메인 코드 부분##
turtle.title = ('무지개색 원그리기')
turtle.shape('turtle')
turtle.setup(width=swidth + 50, height=sheight +50)
turtle.screensize(swidth, sheight)
turtle.penup()
turtle.goto(0, - sheight/2)
turtle.pendown()
turtle.speed(10)

for radius in range(1, 250):
    if radius % 6 ==0 :
        turtle.pencolor('red')
    elif radius % 5 ==0 :
        turtle.pencolor('orange')
    elif radius % 4 ==0 :
        turtle.pencolor('yellow')
    elif radius % 3 ==0 :
        turtle.pencolor('green')
    elif radius % 2 ==0 :
        turtle.pencolor('blue')
    elif radius % 1 ==0 :
        turtle.pencolor('navyblue')
    else :
        turtle.pencolor('purple')
    
    turtle.circle(radius)

turtle.done

 

Code05-10.py

import random

numbers = []
for num in range(0, 10) :
    numbers.append(random.randrange(0, 10))

print("생성된 리스트", numbers)

for num in range(0,10) :
    if num not in numbers:
        print("숫자 %d는(은) 리스트에 없네요." %num)

 

Code05-11.py

##변수 선언 부분 ##
select, answer, numStr, num1, num2 = 0,0, "", 0, 0

##메인 코드 부분 ##
select = int(input("1. 입력한 수식 계산 2. 두수 사이의 합계 :"))

if select == 1:
    numStr = input(" *** 수식을 입력하세요 : ")
    answer = eval(numStr)
    print(" $s 결과는 %5.1f입니다. " %(numStr, answer))
elif select == 2:
    num1 = int(input(" *** 첫 번째 숫자를 입력하세요 : "))
    num2 = int(input(" *** 두 번째 숫자를 입력하세요 : "))
    for i in range(num1, num2 + 1):
        answer= answer + i
    print("%d+...+%d는 %d입니다. " %(num1,num2, answer))
else :
    print("1 또는 2만 입력해야 합니다.")

 

selfstudy5-1.py

score = int(input("점수를 입력하세요 : "))

if score >=95 :
    print("A+")
elif score >=90 :
    print("A0")
elif score >=85 :
    print("B+")
elif score >=80 :
    print("B")
elif score >=75 :
    print("C+")
elif score >=70 :
    print("C0")
elif score >=65 :
    print("D0")
elif score >=60 :
    print("D0")
else :
    print("F")

print("학점입니다. ^^")

 

selfstudy5-2.py

## 변수 선언 부분 ##
select, answer, numStr, num1, num2, step = 0, 0, "", 0, 0, 1


num1 = int(input(" *** 첫 번째 숫자를 입력하세요 : "))
num2 = int(input(" *** 두 번째 숫자를 입력하세요 : "))
step = int(input(" *** 증가할 값을 입력하세요 : "))

for i in range(num1, num2 + 1, step):
    answer += i
    
print("%d + %d+...+%d는 %d입니다." % (num1, num1 + step, num2,answer))

 

selfstudy5-3.py

## 변수 선언 부분 ##
num = 0  
a = True 

## 메인 코드 부분 ##
num = int(input("숫자를 입력하세요: "))

# 소수는 2 이상
if num < 2:
    a = False
else:
    # 2부터 자기 자신 - 1까지 나누어 떨어지는지 체크
    for i in range(2, num):
        if num % i == 0:  # 나누어 떨어진다면 소수가 아님
            a = False
            break

# 결과 출력
if a:
    print("%d는 소수입니다." % num) 
else:
    print("%d는 소수가 아닙니다." % num)

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

리스트, 튜플, 딕셔너리  (0) 2024.10.24
반복문  (0) 2024.10.24
연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18

Code-04-01.py

#산술연산자
# a=5
# b=3
# print(a+b, a-b, a*b, a/b, a//b, a%b, a**b)

# a,b,c=2,3,4
# print(a+b-c, a+b*c, a*b/c)

# s1 ,s2, s3 = "100", "100.123", "999999999999999999"
# print(int(s1)+1, float(s2)+1, int(s3)+1)

# a= 100
# b=100.123
# print(str(a) + "1",str(b) + "1")



# a=10
# a+=5
# print(a)
# a-=5
# print(a)
# a*=5
# print(a)
# a/=5
# print(a)
# a//=5
# print(a)
# a%=5
# print(a)
# a**=5
# print(a)


#변수 선언 부분
money , c500, c100, c50, c10 = 0,0,0,0,0

#메인코드부분
money = int(input("교환할 돈은 얼마?"))

c500 = money // 500
money %= 500

c100 = money // 100
money %= 100

c50 = money // 50
money %= 50

c10 = money // 10
money %=10

print("\n 500원짜리 => %d개" % c500)
print(" 100원짜리 => %d개" % c100)
print(" 50원짜리 => %d개" % c50)
print(" 10원짜리 => %d개" % c10)
print(" 바꾸지 못한 잔돈 => %d원\n" % money)

Code-04-02.py

#논리 연산자
#and or not

import turtle
import random

##전역 변수 선언 부분
swidth, sheight, pSize, exitCount = 300,300,3,0
r, g, b, angle, dist, curX, curY =[0]*7

#메인 코드 부분
turtle.title("거북이가 맘대로 다니기")
turtle.shape("turtle")
turtle.pensize(pSize)
turtle.setup(width = swidth + 30, height = sheight +30)
turtle.screensize(swidth,sheight)

while True :
    r = random.random()
    g = random.random()
    b = random.random()
    turtle.pencolor((r,g,b))

    angle = random.randrange(0,360)
    dist = random.randrange(1,100)
    turtle.left(angle)
    turtle.forward(dist)
    curX=turtle.xcor()
    curY=turtle.ycor()

    if(-swidth/2 <= curX and curX <= swidth/2) and (-sheight/2 <= curY and curY <=sheight/2) :
        pass
    else :
        turtle.penup()
        turtle.goto(0,0)
        turtle.pendown()

        exitCount +=1
        if exitCount >=5 :
            break

turtle.done

Code-04-03.py

a = ord("A")
mask = 0x0F

print("%x & %x = %x" %(a, mask, a&mask))
print("%x | %x = %x" %(a, mask, a|mask)) #교과서 수정 필요

mask = ord("a") - ord("A")

b = a^mask
print("%c^%d = %c" %(a, mask,b))
a=b^mask
print("%c ^ %d = %c" %(b, mask,a))

Code-04-04.py

a =100
result = 0
i =0

for i in range(1,5):
    result = a<< i
    print("%d << %d = %d" % (a, i ,result))

for i in range(1,5):
    result = a>>i
    print("%d >> %d = %d" % (a, i ,result))

    #a는 그대로 100
    #result만 자릿수를 옮겨진다

 

practice04.py

a,b=100,200
print(a==b, a!=b, a>b, a<b, a>=b, a<=b)

a=99
print((a>100) and (a<200))
print((a>100) or (a<200))
print(not(a == 100))

if(1223454) : print("참이면 보여요") #0과 공백 빼고는 다 참이다
if(0) : print("거짓이면 안 보여요")

selfstudy4-1.py

#변수 선언 부분
money , c500, c100, c50, c10 = 0,0,0,0,0

#메인코드부분
money = int(input("지폐로 교환할 돈은 얼마?"))

c500 = money // 50000
money %= 50000

c100 = money // 10000
money %= 10000

c50 = money // 5000
money %= 5000

c10 = money // 1000
money %=1000

print("\n 50000원짜리 => %d장" % c500)
print(" 10000원짜리 => %d장" % c100)
print(" 5000원짜리 => %d장" % c50)
print(" 1000원짜리 => %d장" % c10)
print(" 지폐로 바꾸지 못한 잔돈 => %d원\n" % money)

 

selfstudy4-2.py

a = int(input("시프트할 숫자는? "))
shift_count = int(input("출력할 횟수는? "))

for i in range(1, shift_count + 1):
    result = a << i
    print("%d << %d = %d" % (a, i, result))

for i in range(1, shift_count + 1):
    result = a >> i
    print("%d >> %d = %d" % (a, i, result))

 

추가

4.연산자
대입연산(=가 뒤쪽으로)
+=
/= 

관계연산(true false)
==
!= 

논리연산(true false)
and
or
not
숫자 0는 false
아무 숫자는 true 

비트연산자
&(and)
|(shift + \누르면 된다->or)
^(xor)
~(1->0/ 0->1)
<<(비트를 시프트)
>> 

a = 12345
~a + 1
a= -12345
~는 반전된 값인 1의 보수로 만들어주고 거기에 +1을 해주면 2의 보수가 되어 음수값을 얻게 된다 

<<시프트는 <<1이면 오른쪽 한칸 이동시켜줘서 숫자가 2배 커진다
>>로 하면 시프트는 정수만 연산하므로 2로 나눠지는데 몫만 남게 된다 

연산자 우선순위
괄->지수->단항 연산자->산술->비트->관계->동등->대입->논리->비교(if) 

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

반복문  (0) 2024.10.24
조건문  (0) 2024.10.24
변수와 데이터형  (0) 2024.10.21
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-함수  (1) 2024.03.15

Code03-01.py

#cpu와 가까이 있는 메모리- 저장장치에서 가장 빠르다
#변수를 사용하면 메모리에 저장된다

#문자 "1" vs 숫자 1

# %d 10진수 정수
# print("100")
# print("%d" %100)
# print("100+100")
# print("%d" %(100+100))
# print("%d" %(100, 200))
# print("%d %d" %(100))
# %5d 다섯자리를 사용할 거다
# %0.5d 00123- 다섯자리 확보에 빈칸 영

# %f 실수
#print("%7.1f" %123.45)   123.5

print("%d" % 123) #숫자 그대로
print("%5d" % 123) #5칸 사용하고 오른쪽부터 입력
print("%0.5d" % 123) #5칸 사용하는데 오른쪽부터 입력 후 나머지는 0으로 채우기

print("%f" % 123.45) #소수점 아래 6자리까지 무조건 출력한다
print("%7.1f" % 123.45) #7자리 숫자 소수1까지(.도 한칸 차지한다)
print("%7.3f" % 123.45) #7자리 숫자 소수 3까지

print("%s" % "Python")
print("%10s" % "Python")


#결과값
# 123
#   123
# 00123

# 123.450000
#   123.5
# 123.450

# Python
#     Python

print("%d %5d %05d" % (123, 123, 123))
print("{0:d} {0:5d} {2:05d}".format(123,123,123)) #{순서: 형식}
#\n은 줄 넘기기

 

 

Code03-02.py

print("\n줄바꿈\n연습")
print("\t탭키\t연습")
print("글자가 \"강조\"되는 효과1")
print("글자가 \'강조\'되는 효과2")
print("\\\\\\ 역슬래시 세 개 출력")
print(r"\n\t\"\\를 그대로 출력") #print(r"")은 이스케이프 그대로 출력



#변수 = 그릇
#변수 가장 많이 사용하는 4가지 불/정수/실수/문자열
boolVar = True
intVar = 0
floatVar = 0.0
strVar = ""
print(type(boolVar), type(intVar), type(floatVar), type(strVar))
#<class 'bool'> <class 'int'> <class 'float'> <class 'str'>


var2 = 200
var1 = 100+ var2
print(var1)

print(bin(11), bin(0o11), bin(0x11))
print(oct(11), oct(0o11), oct(0x11))
print(hex(11), hex(0o11), hex(0x11))

# 0b1011 0b1001 0b10001
# 0o13 0o11 0o21
# 0xb 0x9 0x11

print() 함수에서 사용할 수 있는 서식
%d %x %o(정수-10,16,8진수)
%f(실수)
%c(한 글자)
%s(두 글자 이상인 문자열) 

 

Code03-03.py

print("    *    ")
print("   ***   ")
print("  *****  ")
print(" ******* ")
print("*********")
print(" ******* ")
print("  *****  ")
print("   ***   ")
print("    *    ")

 

 

Code03-04

sel = int(input("입력 진수 결정(16/10/8/2) : "))
num = input("값 입력 : ")

if sel == 16 :
    num10 = int(num, 16)#int(num, 16진수)
if sel == 10 :
    num10 = int(num, 10)
if sel == 8 :
    num10 = int(num, 8)
if sel == 2 :
    num10 = int(num, 2)


print("16진수 ==> ", hex(num10))
print("10진수 ==> ", num10)
print("8진수 ==> ", oct(num10))
print("2진수 ==> ", bin(num10))

 

 

Code03-05.py

## 함수 선언 부분##
def myFunc():
    print('함수를 호출함.')

## 전역 변수 선언 부분 ##
gVar = 100

## 메인 코드 부분 ##
if __name__ == '__main__':
    print('메인 함수 부분이 실행됩니다.')
    myFunc()
    print('전역 변수 값:', gVar)

 

 

practice03.py

a = 123
print(type(a))

a = 100 ** 100
print(a)

a = 0xFF
b = 0o77
c = 0b1111
print(a, b, c)

a = 3.14
b = 3.14e5
print(a, b)

a =10
b=20
print(a+b, a-b, a*b, a/b)

a, b = 9, 2
print(a ** b, a % b, a//b)

a =True
print(type(a))

a = (100 == 100)
b= (10> 100)
print(a,b)

a = "파이썬 만세"
print(a)
print(type(a))

print("작은따옴표는 ' 모양이다")
print('큰따옴표는 " 모양이다')

a = "이건 큰따옴표 \" 모양"
b = '이건 작은따옴표 \' 모양'
print(a)
print(b)

a = '파이썬 \n 만세'
print(a)

a = """파이썬
만세"""
#파이썬 \n 만세 로 비주얼스튜디오는 출력이 안된다
print(a)

 

 

selfstudy3-1.py

print("*********")
print(" ******* ")
print("  *****  ")
print("   ***   ")
print("    *    ")
print("   ***   ")
print("  *****  ")
print(" ******* ")
print("*********")

 

 

selfstudy3-2.py

sel = int(input("입력 진수 결정(16/10/8/2) : "))

# sel이 16, 10, 8, 2 중 하나가 아닐 경우 처리
if sel != 16 and sel != 10 and sel != 8 and sel != 2:
    print("16, 10, 8, 2 숫자 중 하나만 입력하세요.")
    exit()  # 프로그램을 종료함

# sel이 16, 10, 8, 2 중 하나일 때만 값을 입력받고 변환
num = input("값 입력 : ")

if sel == 16:
    num10 = int(num, 16)
elif sel == 10:
    num10 = int(num, 10)
elif sel == 8:
    num10 = int(num, 8)
elif sel == 2:
    num10 = int(num, 2)

print("16진수 ==> ", hex(num10))
print("10진수 ==> ", num10)
print("8진수 ==> ", oct(num10))
print("2진수 ==> ", bin(num10))

 

추가

 

변수명 규칙
-대 소문자 구분
-문자, 숫자, 언더바(_)를 시작하거나 포함할 수 있다/ 그러나 숫자로 시작은 안된다
-예약어는 변수명으로 쓰면 안된다(ex return) 

파이썬에서 변수의 데이터 형식은 값을 넣는 순간마다 변경될 수 있는 유연한 구조이다. 

비트
진수 표 넣기


바이트(8비트)
비트수-바이트수-표현개수-2진수-10진수-16진수
8비트=1바이트=2^8(256)=0~11111111=0~255=0~ff 

숫자형은 정수형과 실수형
16진수-0x
8진수-0o
2진수-0b
e15=10^5
**제곱
%나머지
//소수점을 버리는 

문자열은 양쪾에 "" or ''을 사용해줘야 하고
" ' " or ' " '을 사용하면 ' "이 출력된다
또는 "₩'" or "₩""을 사용하면 출력이 된다
""" """을 사용해도 나온다

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

조건문  (0) 2024.10.24
연산자  (2) 2024.10.24
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-함수  (1) 2024.03.15
파이썬-제어문  (2) 2024.03.15


-대화형
-한줄 한줄 바로 실행 

idle-저장가능 

변수는 메모리에 저장이 된다. 그러나 메모리에 저장된 것은 idle을 종료하면 모두 사라진다 

 

 

code02-01.py

a = 100
b =50
result = a + b
print(a,"+", b, "=", result)
result = a - b
print(a,"-", b, "=", result)
result = a * b
print(a,"*", b, "=", result)
result = a / b
print(a,"/", b, "=", result)

첫 줄이 100+50은 150이 아닌 10050으로 나온다
<-input()함수는 값을 입력받지만 모두 문자열로 취급하기 때문이

 

code02-02.py

a = input()
b = input()
result = a + b
print(a,"+", b, "=", result)
result = a - b
print(a,"-", b, "=", result)
result = a * b
print(a,"*", b, "=", result)
result = a / b
print(a,"/", b, "=", result)

# input("") -> ""에 문자를 넣어주면 print하고 input 받을 준비를 한다.
# input은 문자열로 받기 때문에 int를 넣어줘야 한다

 

 

code02-03.py

a = int(input())
b = int(input())

이를 해결하기 위해서는 int(input())을 하여
1단계로 input에 100을 입력 받고
2단계로 100을 숫자로 변경하여 a에 대입한다 

 

code02-04.py

a = int(input("첫 번째 숫자를 입력하세요 : ")) #a에 input(키보드의 입력값)의 값을 집어 넣는다.
b = int(input("두 번째 숫자를 입력하세요 : ")) #int가 input의 문자열을 숫자로 바꿔준다(ex. 1+2=12 -> 1+2=3)
result = a + b
print(a,"+", b, "=", result)
result = a - b
print(a,"-", b, "=", result)
result = a * b
print(a,"*", b, "=", result)
result = a / b
print(a,"/", b, "=", result)

input("adfa")에 들어간 ""말은 먼저 출력이 되고 input에 들어갈 입력값이 기다려진다

 

code02-05.py

import turtle

turtle.shape('turtle')

turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)

turtle.done()

 

 

code02-06.py

import turtle

#함수 선언 부분

#변수 선언 부분
myT = None

#메인 코드 부분
myT = turtle.Turtle()
myT.shape('turtle')

for i in range(0,8) : #0이상 8미만 0<= i <8
    myT.forward(200)
    myT.right(45)

turtle.done()

 

 

code02-07.py

import turtle
import random

#함수 선언 부분
def screenLeftClick(x, y):
    global r, g, b
    turtle.pencolor((r,g,b))
    turtle.pendown()
    turtle.goto(x, y)

def screenRightClick(x, y):
    turtle.penup()
    turtle.goto(x, y)

def screenMidClick(x, y):
    global r, g, b
    tSize = random.randrange(1, 10)
    turtle.shapesize(tSize)
    r = random.random()
    g = random.random()
    b = random.random()


#변수 선언 부분
pSize = 10
r, g, b = 0.0, 0.0, 0.0

#메인 코드 부분
turtle.title('거북이로 그림 그리기')
turtle.shape('turtle')
turtle.pensize(pSize)

turtle.onscreenclick(screenLeftClick, 1) #윈두오 창을 마우스로 클릭하면 함수명 함수가 작동한다. 1은 마우스 왼쪽 2는 가운데 3은 오른쪽을 지정한다
turtle.onscreenclick(screenMidClick, 2)
turtle.onscreenclick(screenRightClick, 3)

turtle.done()

 

 

selfstudy2-1.py

import turtle
import random

# 함수 선언 부분
def screenLeftClick(x, y):
    global r, g, b
    turtle.pencolor((r, g, b))
    turtle.pendown()
    turtle.goto(x, y)

    #midclick을 합쳐준다.
    tSize = random.randrange(1, 10)  
    turtle.shapesize(tSize)
    r = random.random()
    g = random.random()
    b = random.random()
   
   

def screenRightClick(x, y):
    turtle.penup()
    turtle.goto(x, y)

# 변수 선언 부분
pSize = 10
r, g, b = 0.0, 0.0, 0.0

# 메인 코드 부분
turtle.title('거북이로 그림 그리기')
turtle.shape('turtle')
turtle.pensize(pSize)

# 왼쪽 버튼과 가운데 버튼 기능 통합-> eft+mid -> left
turtle.onscreenclick(screenLeftClick, 1)  
turtle.onscreenclick(screenRightClick, 3)

turtle.done()

 

*추가

data = "안녕" + \
		"하세요?" +\
        "파이썬"
print(data)

#안녕하세요?파이썬

맨뒤에 /를 붙이면 다음과 같이 줄을 바꾸어 써도 한줄로 인식한다. 

함수 선언부분
-함수를 미리 만들어 필요할 때 사용하면 된다 

def 함수명(매개변수):
    global 사용할 전역 변수 

변수 선언부분
-사용될 전역 변수를 미리 선언해 놓는 곳이다
int a,b
a =0
b=0 

*보통 언어에서 변수를 사용하려면 선언부터 해야 하는데 자바스크립트나 파이썬 등 인터프리터 언어에서는 변수를 선언하지 않고도 사용해도 된다
*파이썬은 변수 선언이 필요하지는 않지만 ,가급적 변수에 초깃 값을 미리 대입시켜 놓는 게 바람직하다

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

연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21
파이썬-함수  (1) 2024.03.15
파이썬-제어문  (2) 2024.03.15
파이썬-자료형  (2) 2024.03.15

VMware 설치

VMware workstation pro 17 설치를 한다.

(pro는 유료판인데 30일 무료체험이 가능하고 기간이 지나도 snapshot 같은 유용한 기능은 사용 가능하다)

쭉 next나 install 눌러준다

아래 버튼으로 무료판 써주고

하게 되면 VMware을 설치했을 때의 화면이 나온다.

가상 운영체제 환경을 생성을 해주기 위해 create a new virtual machie을 클릭

 

가상환경 설치

 

개인적으로 너무 힘들었던 구간이다

 

뻘짓했던 기록

1) 맨 처음 윈도우 7 버전으로 설치하고 VMware tools 설치를 하기 위해 microsoft update catalog에 접속해서 보안 업데이트를 해야 하는데 인터넷이 접속은 되는데  microsoft update catalog에 접속이 안되고 크롬도 설치가 안 되는 상황이 발생했다...

 

2)윈도우8로 시도해봤는데 이번에는 인터넷이 접속이 안된다..

 

3)윈도우10을 공식 사이트에서 다운받아 설치를 했는데

계속된 블루스크린 현상...

 

->워크스테이션을 17 프로 말고 15로 설정시키고 실행하니 다행히 윈도우10이 설치가 되었다.

*2024/11/27 계속된 오류 끝에 진짜 이유를 찾아냈다.

기본으로 선택되어 있던 NVme를 해제하고 SCSI나 SATA로 선택해서 하길 추천한다.

 

(같이 사는 형이 다행히 보안 회사에 다니셔서 형님의 도움으로 결국 해결)

 

->시도는 안해봐서 그러는데 다른 버전들이 인터넷이 안되거나 한 이유는 네트워크 브릿지로 안 해서 그럴까라는 의심도 든다

 

*참고한 블로그

VMware에 윈도우 10 설치하기(feat. 가상머신 만들기) (tistory.com)

 

VMware에 윈도우 10 설치하기(feat.가상머신 만들기)

전문적인 프로그래밍 지식이나 학술적 목적을 가진 게 아니라 단순히 멀티클라이언트를 위해서 가상머신을 이용하려고 합니다. 그중에서도 윈도우 10이 설치된 VMware를 이용할 겁니다. 왜 VMware?

sgame.tistory.com

윈도우 10 ISO파일 만들기 (tistory.com)

 

윈도우 10 ISO파일 만들기

윈도우 10 ISO파일을 만들어서 여러곳에 쓰겠지만 저는 VMware에서 윈도우10을 설치할 목적으로 만들겠습니다. Windows 10 다운로드 Windows 10용 ISO 파일을 다운로드한 경우, 해당 파일은 선택한 위치에

sgame.tistory.com

https://hummingbird.tistory.com/6938

 

VMware 가상 환경에서 Windows 10 설치 중 "KMODE EXCEPTION NOT HANDLED" 블루스크린 해결 방법

VMware Workstation Pro 가상 프로그램을 이용하여 Windows 10 22H2 x86 운영 체제를 사용하던 중 예전부터 매월 제공되는 Windows 10 누적 업데이트 중 "SYSTEM THREAD EXCEPTION NOT HANDLED" 블루스크린(BSoD)이 발생하여

hummingbird.tistory.com

 

 

 

이것만 주의해 주고 나머지는 다 넥스트 누르면 된다.

중간에 네트워크 설정은 브릿지

 

그리고 내 드라이브에 용량이 부족해서 20gb로 설정

 

*2024/11/27 계속된 오류 끝에 진짜 이유를 찾아냈다.

기본으로 선택되어 있던 NVme를 해제하고 SCSI나 SATA로 선택해서 하길 추천한다.

 

 

마지막 finish 눌러주면 이런 화면이 뜨는데 다음 누르면서 설치해 주기

 

home 누르고 다운 받아주면 된다.

그러면 이렇게 가상환경 윈도우 10이 설치가 된다.

 

네트워크 확인

다른 사람들은 nat으로 하는 거 같던데 나는 하도 안돼서 bridge로 가니까 바로 인터넷 접속이 가능해졌다.

 

VMware Tools 설치

설치하는 이유는 

-훨씬 빠른 그래픽 성능

-개선된 마우스 성능

-Drag&Drop 기능 - host pc 에서 가상 pc로 파일을 바로 드래그하여 전달이 가능하다.

 

VM -> Manage -> Install VMware Tools를 선택해 주면 가상머신 D드라이브에 VMware Tools CD가 마운팅 된다.

나는 한번 설치해서 reinstall로 뜨긴한다.

 

윈도우 로고키 + R을 눌러 실행메뉴를 켜서 D:\setup.exe를 입력해 준다.

 

이런 화면이 뜬다. 계속 다음 눌러준다.

 

그러면 설치 완료!

 

재부팅하고 나면 속도도 빨라지고 호스트 pc에서 드래그로 파일을 가져올 수 있다.

필요한 악성 코드 분석 도구들을 호스트 pc에서 드래그로 가져와줬다.

 

Snapshot 기능

스냅샷 기능: 특정 시점의 데이터를 저장하고, 사용자가 원할 때 다시 저자왼 시점의 데이터로 복원할 수 있는 기능

 

스냅샷 기능의 사용 이유

악성코드 분석에서 악성코드 실행 후가상환경이 동작불능 상태가 되었을 때, 스냅샷 기능을 활용해 악성코드 실행 전 시점으로 복구하기 위해 주로 사용된다.(게임으로 치면 리폿? 이런 느낌인 듯)

 

 

첫 번째 버튼: Snapshot 추가

두 번째 버튼: 바로 전 Snapshot 했던 곳으로 이동

세 번째 버튼: Snapshot을 전체적으로 관리(삭제, 생성 등)

 

 

첫 번째 버튼을 클릭했을 때 나오는 이미지이다.

현재 스냅샷을 저장하고 싶으면 Take Snapshot 클릭을 하면 된다.

 

VM-Snapshot을 보면 Snapshot 1 상태로 특정 시점의 스냅샷이 저장된 걸 볼 수 있다.

 

종료

종료는 두 가지 방법이 있다.

1. 평소대로 윈도우 버튼으로 시스템 종료

2. 파일 exit 버튼

 

악성 샘플을 수집할 수 있는 사이트

 

    • Malware Bazaar
      • 악성 코드 샘플을 공유하는 플랫폼으로, 웹을 통해 업로드 및 다운로드할 수 있으며 API도 제공한다. 다양한 샘플들이 지속적으로 업데이트되어 연구 및 분석에 유용하다.
    • Malshare
      • 악성코드 샘플을 저장한 공용 디렉터리다. 누구나 접근할 수 있으며, 연구 목적으로 악성코드 샘플을 다운로드할 수 있다. 다양한 형태의 악성코드를 분석할 수 있는 자료들이 제공된다.
    • VirusShare
      • 방대한 악성코드 샘플을 제공하는 커뮤니티 기반의 웹사이트로, 연구자 및 분석가들이 샘플을 공유하고 분석하는 데 도움을 준다. 다만 등록된 사용자만 접근할 수 있는 구조다.
    • Malware Traffic Analysis
      • 악성코드 트래픽 및 샘플 분석을 위한 자료를 제공하는 사이트다. 다양한 트래픽 데이터와 함께 악성코드 샘플을 분석할 수 있어, 네트워크 보안 관점에서 유용하다.

참고 블로그

11. 샘플 분석 환경 구성 (velog.io)

 

11. 샘플 분석 환경 구성

VMware 설치 VMware Workstaion Pro 17 설치 (Pro는 유료판이지만 30일 무료체험이 가능하고 기간이 지나도 Snapshot 같은 유용한 기능은 여전히 사용 가능) Install 버튼을 누르고 쭉쭉 진행해주면... VMware 설치

velog.io

VMware에 윈도우 10 설치하기(feat.가상머신 만들기) (tistory.com)

 

VMware에 윈도우 10 설치하기(feat.가상머신 만들기)

전문적인 프로그래밍 지식이나 학술적 목적을 가진 게 아니라 단순히 멀티클라이언트를 위해서 가상머신을 이용하려고 합니다. 그중에서도 윈도우 10이 설치된 VMware를 이용할 겁니다. 왜 VMware?

sgame.tistory.com

 

 

ppt

[13주차]샘플 분석 환경 구성.pptx
4.82MB

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석  (0) 2024.11.03
정적, 동적 Tool 실습  (4) 2024.10.26
악성코드 정적, 동적분석  (0) 2024.09.27
Virustotal  (0) 2024.09.19
보안관제란?  (3) 2024.09.05

+ Recent posts