今天教大家用python實現天氣查詢系統,小白也可以實現,快跟著試試吧。
整體**:
import urllib.request
import gzip
import json
print(』------天氣查詢------』)
def get_weather_data() :
city_name = input(『請輸入要查詢的城市名稱:』)
url1 = 『
url2 = 『
#**1只需要輸入城市名,**2需要輸入城市**
#print(url1)
weather_data = urllib.request.urlopen(url1).read()
#讀取網頁資料
weather_data = gzip.decompress(weather_data).decode(『utf-8』)
#解壓網頁資料
weather_dict = json.loads(weather_data)
#將json資料轉換為dict資料
return weather_dict
def show_weather(weather_data):
weather_dict = weather_data
#將json資料轉換為dict資料
if weather_dict.get(『desc』) = = 『invilad-citykey』:
print(『你輸入的城市名有誤,或者天氣中心未收錄你所在城市』)
elif weather_dict.get(『desc』) = =『ok』:
forecast = weather_dict.get(『data』).get(『forecast』)
print(『城市:』,weather_dict.get(『data』).get(『city』))
print(『溫度:』,weather_dict.get(『data』).get(『wendu』)+『℃ 『)
print(『感冒:』,weather_dict.get(『data』).get(『ganmao』))
print(『風向:』,forecast[0].get(『fengxiang』))
print(『風級:』,forecast[0].get(『fengli』))
print(『高溫:』,forecast[0].get(『high』))
print(『低溫:』,forecast[0].get(『low』))
print(『天氣:』,forecast[0].get(『type』))
print(『日期:』,forecast[0].get(『date』))
print(』*******************************』)
four_day_forecast =input(『是否要顯示未來四天天氣,是/否:』)
if four_day_forecast == 『是』 or 『y』 or 『y』:
for i in range(1,5):
print(『日期:』,forecast[i].get(『date』))
print(『風向:』,forecast[i].get(『fengxiang』))
print(『風級:』,forecast[i].get(『fengli』))
print(『高溫:』,forecast[i].get(『high』))
print(『低溫:』,forecast[i].get(『low』))
print(『天氣:』,forecast[i].get(『type』))
print(』--------------------------』)
print(』***********************************』)
show_weather(get_weather_data())
小白收藏 Python命名空間查詢順序
當一行 要使用變數 x 的值時,python 會到所有可用的名字空間去查詢變數,按照如下順序 1 區域性命名空間 特指當前函式或類的方法。如果函式定義了乙個區域性變數 x,或乙個引數 x,python 將使用它,然後停止搜尋。2 全域性命名空間 特指當前的模組。如果模組定義了乙個名為 x 的變數,函...
小白收藏 用Python做個計算器
計算器大家都不陌生,我們做數學題啊,記賬本啊都會用到,今天教大家用python做個簡單的計算器,學會了很實用哦,步驟也很簡單。開發乙個簡單的python計算器 實現加減乘除及拓號優先順序解析 使用者輸入 1 2 60 30 40 5 9 25 3 7 399 42998 10 568 14 43 1...
python實現自主查詢實時天氣
用到了urllib2 json 很簡單的乙個應用 如下 獲取城市編號 coding utf 8 import urllib2 url1 content1 urllib2.urlopen url1 read provinces content1.split print content1 輸出conte...