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

*함수
반복되는 코드를 사용할 때가 있는데. 이를 좀 더 효율적으로 만들기 위해 사용된다.

def 함수_이름(매개변수):
    수행할_문장
    ...
    return 리턴값

*키워드 매개변수,kwargs
>>> print_kwargs(a=1)
{'a': 1}
>>> print_kwargs(name='foo', age=3)
{'age': 3, 'name': 'foo'}

*lambda
lambda는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 함수를 간결하게 만들 때 사용된다.

lambda 매개변수1, 매개변수2.... : 매개변수를 이용한 표현식

add = lambda a,b : a + b
result = add(3, 4)
print(result)

*input()
사용자 입력 값

*print()
출력 값

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

연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-제어문  (2) 2024.03.15
파이썬-자료형  (2) 2024.03.15

*제어문

프로그램을 만드는 것도 집 짓기와 매우 비슷한 면이 있다. 나무, 돌, 시멘트와 같은 재료는 자료형이 되고 집의 뼈대를 이루는 철근은 제어문에 해당한다. 

조건문 다음에 콜론(:)을 잊지 말자!

1.if(조건문)

#if -들여쓰기/조건문 :
money=True
if money:
    print("taxi")
else:
    print("walk")

비교연산자
x < y : x가 y보다 작다.
x > y : x가 y보다 크다.
x == y : x와 y가 같다.
x != y : x와 y가 같지 않다.
x >= y : x가 y보다 크거나 같다.
x <= y : x가 y보다 작거나 같다.

x or y : x와 y 둘 중 하나만 참이어도 참이다.
x and y : x와 y 모두 참이어야 참이다.
not x : x가 거짓이면 참이다.

in/not in
x in 리스트 /x not in 리스트
x in 튜플 /x not in 튜플
x in 문자열 /x not in 문자열

*pass 조건 넣지 않고 넘어가려면
pocket=['paper','money','cellphone']
if'money' in pocket:
    pass
else:
    print("walk")

*elif 다중 조건판단: 다양한 조건을 넣을 수 있다
pocket=['card','cellphone']
if'money' in pocket:
    print("taxi")
elif 'card':
    print("bus")
else:
    print("walk")

2.while(반복문)


#while
TreeHit=0
while TreeHit<10:
    TreeHit=TreeHit+1
    print("나무를 %d번 찍으셨습니다"%TreeHit)
    if TreeHit==10:
        print("나무가 넘어갑니다")

*break
while문 강제로 멈추게 하기
# coffee.py
coffee = 10
while True:
    money = int(input("돈을 넣어 주세요: "))
    if money == 300:
        print("커피를 줍니다.")
        coffee = coffee -1
    elif money > 300:
        print("거스름돈 %d를 주고 커피를 줍니다." % (money -300))
        coffee = coffee -1
    else:
        print("돈을 다시 돌려주고 커피를 주지 않습니다.")
        print("남은 커피의 양은 %d개 입니다." % coffee)
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지 합니다.")
        break

*continue
while문 처음으로 돌아가기
a = 0
while a < 10:
    a = a + 1
    if a % 2 == 0: continue #a가 짝수라면 continue를 만나 while문의 맨 처음으로 돌아가게 된다.
    print(a) #홀수는 출력이 됨

3.for

for 변수 in 리스트(또는 튜플, 문자열):
    수행할_문장1
    수행할_문장2
    ...

# marks1.py
marks = [90, 25, 67, 45, 80]   # 학생들의 시험 점수 리스트

number = 0   # 학생에게 붙여 줄 번호
for mark in marks:   # 90, 25, 67, 45, 80을 순서대로 mark에 대입
    number = number +1 
    if mark >= 60: 
        print("%d번 학생은 합격입니다." % number)
    else: 
        print("%d번 학생은 불합격입니다." % number)

1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 불합격입니다.
5번 학생은 합격입니다.

#range함수의 예시
add = 0 
for i in range(1, 11): 
    add = add + i 
    print(add)
#1부터 10까지 i에 차례로 대입한 뒤 add에 총합이 구해진다.

*리스트 컴프리헨션
리스트 안에 for 문을 포함하는 리스트 컴프리헨션(list comprehension)을 사용하면 좀 더 편리하고 직관적인 프로그램을 만들 수 있다.
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a]
>>> print(result)
[3, 6, 9, 12]

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

연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-함수  (1) 2024.03.15
파이썬-자료형  (2) 2024.03.15

*자료형

자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등과 같이 자료 형태로 사용하는 모든 것을 뜻한다. 프로그램의 기본이자 핵심 단위가 바로 자료형이다.

1.숫자형
*정수
*실수(4.27e10=4.27*10의10승)
*8진수(0o177=1*8의2승+7*8+7=127)
816진수(0xABC10*16의2승+11*16+12=2748)(A:10, B:11, C:12)


*숫자형 연산자
+-/*
**-제곱
%-나머지
//-몫
(a+=1)=(a=a+1)-복합연산자

2.문자열
*사용법: ""로'' 둘러 쌈
*문자열도 더하고 곱할 수 있다.
head="seo"
body="chan"
print((head+body)*2)
->seochanseochan

*문자 길이 사용: len()
*문자열 인덱싱: a[3]-"life"-->4번째인 e이다 /a[-2]는 뒤에서 2번째인 f가 나옴
*문자열 슬라이싱: a[0:3]은life가아닌 lif ([0],[1],[2])만 나와 [3]은 제외 됨=(0 <= a < 3)
*** 
a = "Pithon"
>>> a[1]
'i'
>>> a[1] = 'y'->>>오류
문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문이다(그래서 문자열을 ‘변경 불 가능한(immutable) 자료형’이라고도 부른다).

*문자열 포매팅: %d=%1 / %s=%"문자"
"%10s" % "hi"
->'        hi'
*format함수 사용한 포매팅
#format으로 숫자 대입하기
print("I eat {0} apples".format(3))
나머지는 덜 중요하다 생각하여 그때 그때 다시 공부하기

3.리스트 

*사용법: 리스트를 만들 때는 위에서 보는 것과 같이 대괄호([])로 감싸 주고 각 요솟값은 쉼표(,)로 구분해 준다

*리스트 인덱싱
>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
>>> a[2][2][0]
'Life'

*리스트 슬라이싱
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
[3, ['a', 'b', 'c'], 4]
>>> a[3][:2]
['a', 'b']

*리스트 연산=문자열 연산이랑 비슷함
*리스트 요소 수정
del
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]
리스트 관련 함수-apppend/sort/reverse/insert/remove/pop/count/extend....이 함수도 차차 알아가기로

4.튜플
*리스트는 []/튜플은()
t1 = ()
t2 = (1,) # 1개의 요소를 가질때는 반드시 뒤에 콤마,를 붙여줘야한다.
t2= (1, 2, 3)
t4 = 1, 2, 3 # 괄호를 생략해도 사용할 수 있다

*리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.
*튜플도 인덱싱, 슬라이싱, 더하기(요솟값이 바뀌는 게 아니다), 곱하기, 길이 구하기 다 가능(함수는 안됨)

5.딕셔너리(key:value)
*딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
*딕셔너리 추가 삭제

#딕셔너리 쌍 추가
a = {1: 'a'}
a[2] = {'b'} #a = {1:'a', 2:'b'} 값을 가지게 된다.
a['e'] = {'d'} #a = {1:'a', 2:'b', 'e':'d'} 를 추가하게 된다.
#앞서배운 인덱스가 딕셔너리에선 항상 정수만이 아닌 문자로도 들어 갈 수 있게 된다.


#딕셔너리 삭제하기
a = {1:'a', 2:'b', 'e':'d'}
del a[1] #1:'a'가 삭제되어 a = {2:'b', 'e':'d'}가 된다.
#del과 함께 a[key]값을 넣어주면 삭제가 이루어진다.

*딕셔너리 함수
key,value,item,clear,get, name in a(true or false)
a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
a.keys()
dict_keys(['name', 'phone', 'birth'])

6.집합 자료형
*set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
*특징:중복x 순서x
s2 = set("Hello")
s2
->{'e', 'H', 'l', 'o'}
*if. 집합에서 인덱싱을 사용하고 싶다면 list(), tuple()를 이용해서 변환 후 사용 해야한다.

s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
*교집합 구하기
s1 & s2 #{4,5,6}을 반환
s1.intersection(s2) #이런식으로도 {4,5,6} 교집합을 구할 수 있음

*합집합
s1 | s2 #{1,2,3,4,5,6,7,8,9}를 반환한다.
s1.union(s2) #{1,2,3,4,5,6,7,8,9}를 반환 할 수 있다.

*차집합
s1 - s2 #{1,2,3}을 반환
s1.difference(s2)# s1 - s2를 difference 함수로 표현할수있음
s2 - s1 #{7,8,9}를 반환 
s2.difference(s1)# s2 - s1를 difference 함수로 표현할수있음

*집합함수
#1개 값만 추가(.add)
s1 = set([1,2,3])
s1.add(4) #s1 = {1,2,3,4}로 4가 추가된다.

#여러 개 추가하기(.update)
s1 = set([1,2,3])
s1.update([4,5,6]) #s1 = {1,2,3,4,5,6}으로 추가됨

#특정 값 제거(remove)
s1 = set([1,2,3])
s1.remove(2) #s1 = {1,3}으로 2가 제거됨

-리스트, 튜플, 딕셔너리, 집합 특징 비교요약


7. 불 자료형
*불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다.
*문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면("", [], (), {}) 거짓이 되고 비어 있지 않으면 참이 된다.
>>> bool([1, 2, 3])
True
>>> bool([])
False
>>> bool(0)
False
>>> bool(3)
True

8.변수란?
변수=변수에 저장할 값
*다른 프로그래밍 언어인 C나 JAVA에서는 변수를 만들 때 자료형의 타입을 직접 지정해야 한다. 하지만 파이썬은 변수에 저장된 값을 스스로 판단하여 자료형의 타입을 지정하기 때문에 더 편리하다.
 
 
리스트/튜플/딕셔너리/세트 구분

- List

1. [ ]를 사용한다.

2. 추가,수정,삭제가 가능하다.(mutable하다.)

3. 순서가 있어서 인덱싱, 슬라이싱을 사용 할 수 있다.



- Tuple

1. ( )를 사용한다.

2. 추가,수정,삭제가 불가능하다.(immutable하다.)

3. 순서가 있어서 인덱싱, 슬라이싱을 사용 할 수 있다.



- Dictionary

1. { }를 사용하고, ':'를 통해 key와 value값을 정해준다.

2. 추가,수정,삭제가 가능하다

3. 순서가 중요하지 않다. 튜플 리스트와 달리 인덱싱으로 접근하지 않고 key로 접근을 해서 value의 값을 얻어낸다.



- Set

1. .set([ ])를 사용해서 집합을 만든다.

2. 함수로 추가, 제거가 가능하다.

3. 중복을 허용하지 않는다

4. 순서가 없기 때문에 인덱싱을 통해 값을 얻을 수 없다.

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

연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-함수  (1) 2024.03.15
파이썬-제어문  (2) 2024.03.15

+ Recent posts