bp=startpos ( ) #输入起点坐标
dirt = [] #移动方向
step =[] #移动距离
readdata () #从data. csv文件中读取移动数据
pos=[bp] #从起点开始存储所有经过点的x、y坐标
for i in range (0, 1en (dirt)): #利用预置数据移动
tmp = move (pos[i], dirt[i], step[i])
pos. append (tmp)
print ("经过的位置点如下所示: ","\n", pos)
if tmp == #判断能否返回起点
print("可以直接返回起点位置!")
else:
print("不能直接返回起点位置!", end=")
stpx=gettimes (pos[0] [0], pos[-1][0])
stpy=gettimes (pos[0][1], pos[-1][1])
print("至少需要移动"+ str(stpx+stpy) +"次才能返回起点位置!")
def startpos( ):
x=int(input('输入起点的x坐标:'))
y=int(input('输入起点的y坐标:'))
return
def readdata( ):
import csv
f=open(" data. csv", "r", encoding="utf-8 ")
f_ csv = csv.reader (f)
title = next(f_csv) #标题行
for line in f_csv:
dirt. append (1ine[0])
step.appnd()
f.close( )
def move(pos, dr, lg): #位置移动
new_ pos = [0, 0]
if dr == "U":
x =0; y=1
elif dr = "D":
x=0; y=-1
elif dr = "L":
x =-1; y=0
elif dr="R":
x=1; y=0
new_ pos[0] = pos[0]+x*lg
,
return new_ pos
def gettimes(p1, p2) :
p=abs(p1-p2)//5
if abs(p1-p2)%5!=0:
return p