Language/Python
연산자
westcold
2024. 10. 24. 13:12
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)