반응형
객체, 메서드
정수, 소수, 문자열, 행렬 등 파이썬의 모든 데이터는 특정 타입의 객체이다.
객체의 타입은 객체를 생성한 클래스에 따라 다르다.
예시로 int, float, complex, bool 등이 있다.
각 객체는 타입과 별개로, 이름을 가질 수 있다.
또한 새로운 객체를 지정하면 기존에 지정 되어있던 객체는 사라진다.
메서드는 "객체이름.메서드이름()" 형태로 사용한다.
특정 행위를 포함하고 있다.
실습 문제
1번
정답 코드 :
from cs1robots import*
import time
load_world("./worlds/harvest4.wld")
hubo = Robot()
hubo.move()
cnt=0
number=0
def turn_right():
hubo.turn_left()
hubo.turn_left()
hubo.turn_left()
def Move(cnt):
while(1):
if(hubo.on_beeper()):
hubo.pick_beeper()
else:
if(not hubo.front_is_clear()):
cnt+=1
if cnt==7:
break
elif cnt%2==0:
turn_right()
hubo.move()
turn_right()
else:
hubo.turn_left()
hubo.move()
hubo.turn_left()
if(hubo.on_beeper()):
hubo.pick_beeper()
hubo.move()
time.sleep(0.1)
Move(cnt)
while(1):
try:
hubo.drop_beeper()
time.sleep(0.1)
number+=1
except:
break
print(number)
2번
정답 코드 :
from cs1robots import*
import time
create_world(avenues=10, streets=10)
hubo=Robot(orientation='S', avenue=2, street=1)
def turn_right():
hubo.turn_left()
hubo.turn_left()
hubo.turn_left()
def north():
cnt=0
while(1):
if hubo.facing_north():
break
else:
hubo.turn_left()
cnt+=1
if cnt==0:
return cnt,"N"
elif cnt==1:
return cnt,"E"
elif cnt==2:
return cnt,"S"
elif cnt==3:
return cnt,"W"
def Street():
cnt=0
while(1):
if not hubo.front_is_clear():
break
else:
hubo.move()
cnt+=1
hubo.turn_left()
hubo.turn_left()
for _ in range(cnt):
hubo.move()
hubo.turn_left()
return 10-cnt
def Avenue():
cnt=0
while(1):
if not hubo.front_is_clear():
break
else:
hubo.move()
cnt+=1
hubo.turn_left()
hubo.turn_left()
for _ in range(cnt):
hubo.move()
turn_right()
return 10-cnt
cnt,dire=north()
stre=Street()
aven=Avenue()
for _ in range(cnt):
turn_right()
print(dire,aven,stre)
'대학교' 카테고리의 다른 글
마이크로프로세서 - (6) UART 시리얼 통신 (2) | 2023.10.07 |
---|---|
마이크로프로세서 - (5) 데이터 입력 (2) | 2023.10.07 |
자바 - (5) 참조 타입 (1) | 2023.10.06 |
자바 -(4) 조건문과 반복문 (2) | 2023.10.06 |
데이터 구조 - (4) 연결 리스트 (2) | 2023.10.06 |