选择六个城市或村庄,每个大陆,亚洲,非洲,北美,南美洲,欧洲和澳大利亚各一个。这些预测覆盖了8351174个地方,美国超过200万个,巴基斯坦150000个,乌干达10000个,16个个名额在瓦努阿图谢法省,所以我想你会在你身边找到一个地方。
制作一张表格,列出未来10个6小时的城市的天气情况。城市应按上述顺序列出(首先是亚洲城市,然后是非洲城市.)。
应列出的信息如下:
Name, CC
(CC
是国名的前两个字母)yyyy-mm-dd
1
Cloudy
24
输出格式有以下限制:
订单如下(时间、期间、天气、温度、天气温度、天气、温度.)。城市名称和国家代码是标题。
Kyoto, JA Addis Ababa, ET Minneapolis, US Rio de Janeiro, BR Genoa, IT Perth, AU
2015-11-05, 3, Cloudy, 15 Clear sky, 18 Heavy rain, 24 Cloudy, 12 Fair, 14 Rain, 26
2015-11-06, 0, Cloudy, 12 Fair, 14 Rain, 26 Cloudy, 12 Fair, 14 Rain, 26
2015-11-06, 1, Heavy rain, 14 Clear sky, 17 Rain, 22 Heavy rain, 14 Clear sky, 17 Rain, 22
2015-11-06, 2, Rain, 15 Clear sky, 12 Rain, 25 Heavy rain, 14 Clear sky, 17 Rain, 22
2015-11-06, 3, Partly cloudy, 9 Fair, 8 Heavy rain, 30 Clear sky, 8 Fair, 14 Partly cloudy, 25
2015-11-07, 1, Clear sky, -8 Fair, 14 Partly cloudy, 25 Clear sky, 8 Fair, -14 Partly cloudy, 25
2015-11-07, 2, Fog, 13 Partly cloudy, 15 Fair, 22 Clear sky, 8 Fair, 14 Partly cloudy, 25
天气预报可以在www.yr.no上找到。天气数据可以在urls上的xml格式上找到,例如:
http://www.yr.no/place/Australia/Western_Australia/Perth/forecast.xml
http://www.yr.no/place/Italy/Liguria/Genoa/forecast.xml
http://www.yr.no/place/Turks_and_Caicos_Islands/Other/Cockburn_Town/forecast.xml
http://www.yr.no/place/Bahamas/San_Salvador_and_Rum_Cay/Cockburn_Town/forecast.xml
是的,显然有两个地方叫“科伯恩镇”。您可以在主页(yr.no)上搜索位置,并在找到位置后简单地追加/forecast.xml
。(您可以在右上角选择语言,该网站可能以挪威语显示)。
数据的格式如下:
<time from="2015-11-05T19:00:00" to="2015-11-06T00:00:00" period="3">
<!--
Valid from 2015-11-05T19:00:00 to 2015-11-06T00:00:00
-->
<symbol number="4" numberEx="4" name="Cloudy" var="04"/>
<precipitation value="0" minvalue="0" maxvalue="0.4"/>
<!-- Valid at 2015-11-05T19:00:00 -->
<windDirection deg="131.5" code="SE" name="Southeast"/>
<windSpeed mps="3.7" name="Gentle breeze"/>
<temperature unit="celsius" value="12"/>
<pressure unit="hPa" value="1014.2"/>
</time>
<time from="2015-11-06T00:00:00" to="2015-11-06T06:00:00" period="0">...</time>
<time from="2015-11-06T06:00:00" to="2015-11-06T12:00:00" period="1">...</time>
如您所见,每6小时周期都有一个句号"0“、"1”、"2“或"3”。该表必须有日期,后面跟着句号2015-11-06, 3
(可以用逗号、制表符或任何东西隔开)。
在这种情况下,您必须为每个时间段列出天气类型和温度:Cloudy, 12
(而不是12 Cloudy
)。这些值可以用逗号、制表符或任何东西分隔。
必须将每个城市与其他城市分隔开来,使它们形成不同的“块”,如示例输出所示。输出应该在类似于格式的表上。
输出格式的细节是可选的。
这些部分:代码的Italy/Liguria/Genoa/
、Brazil/Rio_de_Janeiro/Rio_de_Janeiro/
可以从字节计数中减去(不需要选择最短的城市名称)。网址-缩写是禁止的。
必须有可能在一年后运行您的代码,所以您不能硬代码日期等。
天气数据是免费的和公开的,只要下面的属性显示出来,所以请把它包含在你的答案的底部。
这是代码高尔夫,所以最短的答案(以字节为单位)获胜。
来自yr.no的天气预报,由挪威气象研究所和NRK提供。
发布于 2015-11-07 22:51:01
这些是URL的,我们假设它们包含在变量中,因此不计算它们。
t="http://www.yr.no/place/Japan/Tokyo/Tokyo/forecast.xml“;a="http://www.yr.no/place/Algeria/Alger/Algiers/forecast.xml“;b="http://www.yr.no/place/United_各州/马萨诸塞州/波士顿/止赎案“;r="http://www.yr.no/place/Brazil/Pernambuco/Recife/forecast.xml“;p="http://www.yr.no/place/France/Île-de-France/Paris/forecast.xml“;c="http://www.yr.no/place/Australia/Australian_资本_领土/堪培拉/止赎案“;
这是使用的代码。
z@{s_,k_}:=Cases[s~Import~"XML",XMLElement["time",{"from"-> d_,b_,"period"->p_},
{XMLElement[_,{___,"name"->w_,___},{}],___,XMLElement["temperature",{___,"value"->t_},{}],
___}]:>{" "->Row[{d~StringTake~10,p},", "],k->Row[{w, t},", "]},Infinity];
w=Join@@(z/@{{t,"Tokyo, JA"},{a,"Algiers, AL"},{b,"Boston, US"},{r,"Recife, BR"},
{p,"Paris, FR"},{c,"Canberra, AU"}});
Dataset[Association/@(Prepend[Cases[w,{#,r__}:>r],#]&/@w[[All,1]])]
https://codegolf.stackexchange.com/questions/63209
复制相似问题