gpt4 book ai didi

Python:带有列表列表的 cTurtle

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:47 24 4
gpt4 key购买 nike

我需要创建一个函数来执行此操作。 (顺便说一句,Python 3.3)

Write the contract, docstring, and implementation for a procedure plotEarthquakeData that takes two dates and plots all the earthquake data from USGS between the given dates with dots on the world map. You can use the procedure dot from the cTurtle library that takes the size and color. You can use the product of 4 and the magnitude for the size of dots while using the depth for the right color. The procedure bgpic is useful to put the world map image in the background while the procedure setWorldCoordinates can help you plot the dots more easily. Assume the entire map shows -180 to 180 degrees from left to right and -90 to 90 degrees from bottom to top.

plotEarthquakeData("2013/06/01", "2013/06/04") should look like this

到目前为止我已经有了这个。下面是我已经编写的函数,这些函数也将在plotEarthquakeData 函数中使用。

import cTurtle

def plotEarthquakeData(date1,date2):
""" takes two dates and plots all the earthquake data from USGS between the
given dates with dots on the world map."""
myTurtle = cTurtle.Turtle()
myTurtle.bgpic('map.gif')
myTurtle.setWorldCoordinates(-180,-90,180,90)
data = parseEarthquakeData(date1,date2)
for i in range (len(data[1])):
myTurtle.goto(data[0][i], data[1][i])
myturtle.dot(4*data[2][i],colorCode(data[3][1]))

-

def colorCode(depth):
"""takes the depth of an earthquake and returns the corresponding color for
the earthquake."""
if depth<=33:
return "orange"
elif depth<=70:
return "yellow"
elif depth <=150:
return "green"
elif depth<=300:
return "blue"
elif depth <=500:
return "purple"
else:
return "red"

-

import urllib.request
def parseEarthquakeData(date1, date2):
dataFile = urllib.request.urlopen("http://neic.usgs.gov/neis/gis/qed.asc")
latList = []
longList = []
magList = []
depthList = []
count =0
for aline in dataFile:
aline = aline.decode('ascii')
splitData = aline.split(',')
count = count+1
if count>=2:

if (betweenDates (splitData[0],date1,date2)):
latList.append(splitData[2])
longList.append(splitData[3])
magList.append(splitData[4])
depthList.append(splitData[5])
finalList=[]
finalList.append(latList)
finalList.append(longList)
finalList.append(magList)
finalList.append(depthList)
return finalList

当我尝试运行plotEarthquakeData时,我收到此错误,我不知道该怎么办。

plotEarthquakeData("2013/06/01","2013/06/04")
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
plotEarthquakeData("2013/06/01","2013/06/04")
File "C:\Python33\plotEarthquakes.py", line 89, in plotEarthquakeData
myTurtle.goto(data[0][i], data[1][i])
File "C:\Python33\lib\site-packages\cTurtle.py", line 1295, in setpos
self._goto(_Vec(pos, y))
File "C:\Python33\lib\site-packages\cTurtle.py", line 2255, in _goto
diff = end-start
File "C:\Python33\lib\site-packages\cTurtle.py", line 274, in __sub__
return _Vec(self[0]-other[0], self[1]-other[1])
TypeError: unsupported operand type(s) for -: 'str' and 'float'

因此,任何帮助我理解我哪里出错的帮助都将非常感激

最佳答案

latlistlonglist 包含一个字符串,而不是数字,因为 splitData 是一个字符串。

如果你想这样做,你必须将它们转换为 float :

if (betweenDates (splitData[0],date1,date2)):
latList.append(float(splitData[2]))
longList.append(float(splitData[3]))

我希望其他变量也是 float ,不是吗?

    magList.append(float(splitData[4]))
depthList.append(float(splitData[5]))

希望这有帮助!

关于Python:带有列表列表的 cTurtle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com