最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)智能語(yǔ)音天氣預(yù)報(bào)

 更新時(shí)間:2019年12月02日 16:44:12   作者:飛奔的帥帥  
今天小編就為大家分享一篇python實(shí)現(xiàn)智能語(yǔ)音天氣預(yù)報(bào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

python編寫的語(yǔ)音天氣預(yù)報(bào)

本系統(tǒng)主要包括四個(gè)函數(shù):

1、獲取天氣數(shù)據(jù)

1、輸入要查詢天氣的城市

2、利用urllib模塊向中華萬(wàn)年歷天氣api接口請(qǐng)求天氣數(shù)據(jù)

3、利用gzip解壓獲取到的數(shù)據(jù),并編碼utf-8

4、利用json轉(zhuǎn)化成python識(shí)別的數(shù)據(jù),返回為天氣預(yù)報(bào)數(shù)據(jù)復(fù)雜形式的字典(字典中的字典)

2、輸出當(dāng)天天氣數(shù)據(jù)

1、格式化輸出當(dāng)天天氣,包括:天氣狀況,此時(shí)溫度,最高溫度、最低溫度,風(fēng)級(jí),風(fēng)向等。

3,語(yǔ)音播報(bào)當(dāng)天天氣

1、創(chuàng)建要輸出的語(yǔ)音文本(weather_forecast_txt)

2、利用百度的語(yǔ)音合成模塊AipSpeech,合成語(yǔ)音文件

3,利用playsound模塊播放語(yǔ)音

4、未來(lái)幾天溫度變化趨勢(shì)

1、創(chuàng)建未來(lái)幾天高低溫?cái)?shù)據(jù)的字典

2,利用matplotlib模塊,圖形化溫度變化趨勢(shì)

5、代碼

#導(dǎo)入必要模塊
import urllib.parse
import urllib.request
import gzip
import json
import playsound
from aip import AipSpeech
import matplotlib.pyplot as plt
import re
#設(shè)置參數(shù),圖片顯示中文字符,否則亂碼
plt.rcParams['font.sans-serif']=['SimHei']
#定義獲取天氣數(shù)據(jù)函數(shù)
def Get_weather_data():
  print('------天氣查詢------')
  city_name = input('請(qǐng)輸入要查詢的城市名稱:')
  url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)
  weather_data = urllib.request.urlopen(url).read()
  # 讀取網(wǎng)頁(yè)數(shù)據(jù)
  weather_data = gzip.decompress(weather_data).decode('utf-8')
  # #解壓網(wǎng)頁(yè)數(shù)據(jù)
  weather_dict = json.loads(weather_data)
  return weather_dict
#定義當(dāng)天天氣輸出格式
def Show_weather(weather_data):
  weather_dict = weather_data
  if weather_dict.get('desc') == 'invilad-citykey':
    print('你輸入的城市有誤或未收錄天氣,請(qǐng)重新輸入...')
  elif weather_dict.get('desc') == 'OK':
    forecast = weather_dict.get('data').get('forecast')
    print('日期:', forecast[0].get('date'))
    print('城市:', weather_dict.get('data').get('city'))
    print('天氣:', forecast[0].get('type'))
    print('溫度:', weather_dict.get('data').get('wendu') + '℃ ')
    print('高溫:', forecast[0].get('high'))
    print('低溫:', forecast[0].get('low'))
    print('風(fēng)級(jí):', forecast[0].get('fengli').split('<')[2].split(']')[0])
    print('風(fēng)向:', forecast[0].get('fengxiang'))
    weather_forecast_txt = '您好,您所在的城市%s,' \
                '天氣%s,' \
                '當(dāng)前溫度%s,' \
                '今天最高溫度%s,' \
                '最低溫度%s,' \
                '風(fēng)級(jí)%s,' \
                '溫馨提示:%s' % \
                (
                  weather_dict.get('data').get('city'),
                  forecast[0].get('type'),
                  weather_dict.get('data').get('wendu'),
                  forecast[0].get('high'),
                  forecast[0].get('low'),
                  forecast[0].get('fengli').split('<')[2].split(']')[0],
                  weather_dict.get('data').get('ganmao')
                )
    return weather_forecast_txt,forecast
#定義語(yǔ)音播報(bào)今天天氣狀況
def Voice_broadcast(weather_forcast_txt):
  weather_forecast_txt = weather_forcast_txt
  APP_ID = 你的百度語(yǔ)音APP_ID
  API_KEY = 你的百度語(yǔ)音API_KEY
  SECRET_KEY = 你的百度語(yǔ)音SECRET_KEY
  client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
  print('語(yǔ)音提醒:', weather_forecast_txt)
  #百度語(yǔ)音合成
  result = client.synthesis(weather_forecast_txt, 'zh', 1, {'vol': 5})
  if not isinstance(result, dict):
    with open('sound2.mp3', 'wb') as f:
      f.write(result)
      f.close()
  #playsound模塊播放語(yǔ)音
  playsound.playsound(r'C:\Users\ban\Desktop\bsy\sound2.mp3')
#未來(lái)四天天氣變化圖
def Future_weather_states(forecast):
  future_forecast = forecast
  dict={}
  #獲取未來(lái)四天天氣狀況
  for i in range(5):
    data = []
    date=future_forecast[i]['date']
    date = int(re.findall('\d+',date)[0])
    data.append(int(re.findall('\d+',future_forecast[i]['high'])[0]))
    data.append(int(re.findall('\d+', future_forecast[i]['low'])[0]))
    data.append(future_forecast[i]['type'])
    dict[date] = data
  data_list = sorted(dict.items())
  date=[]
  high_temperature = []
  low_temperature = []
  for each in data_list:
    date.append(each[0])
    high_temperature.append(each[1][0])
    low_temperature.append(each[1][1])
  fig = plt.plot(date,high_temperature,'r',date,low_temperature,'b')
  plt.xlabel('日期')
  plt.ylabel('℃')
  plt.legend(['高溫','低溫'])
  plt.xticks(date)
  plt.title('最近幾天溫度變化趨勢(shì)')
  plt.show()
#主函數(shù)
if __name__=='__main__':
  weather_data = Get_weather_data()
  weather_forecast_txt, forecast = Show_weather(weather_data)
  Future_weather_states(forecast)
  Voice_broadcast(weather_forecast_txt)

6、最終效果

以上這篇python實(shí)現(xiàn)智能語(yǔ)音天氣預(yù)報(bào)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python簡(jiǎn)單實(shí)例訓(xùn)練(21~30)

    python簡(jiǎn)單實(shí)例訓(xùn)練(21~30)

    上篇文章給大家介紹了python簡(jiǎn)單實(shí)例訓(xùn)練的1-10,這里繼續(xù)為大家介紹python的一些用法,希望大家每個(gè)例子都打出來(lái)測(cè)試一下
    2017-11-11
  • Python的Twisted框架上手前所必須了解的異步編程思想

    Python的Twisted框架上手前所必須了解的異步編程思想

    Twisted是Python世界中人氣最高的framework之一,異步的工作模式使其名揚(yáng)天下,這里為大家總結(jié)了Python的Twisted框架上手前所必須了解的異步編程思想,需要的朋友可以參考下
    2016-05-05
  • Python使用Beautiful Soup爬取豆瓣音樂(lè)排行榜過(guò)程解析

    Python使用Beautiful Soup爬取豆瓣音樂(lè)排行榜過(guò)程解析

    這篇文章主要介紹了Python使用Beautiful Soup爬取網(wǎng)頁(yè)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • PyTorch筆記之scatter()函數(shù)的使用

    PyTorch筆記之scatter()函數(shù)的使用

    這篇文章主要介紹了PyTorch筆記之scatter()函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python實(shí)現(xiàn)定時(shí)發(fā)送qq消息

    python實(shí)現(xiàn)定時(shí)發(fā)送qq消息

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)發(fā)送qq消息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python實(shí)現(xiàn)解析ini配置文件的示例詳解

    Python實(shí)現(xiàn)解析ini配置文件的示例詳解

    在開發(fā)過(guò)程中,配置文件是少不了的,而且配置文件是有專門的格式的,比如:ini,?yaml,?toml?等等。而對(duì)于?Python?而言,也都有相應(yīng)的庫(kù)來(lái)解析相應(yīng)格式的文件,下面我們來(lái)看看?ini?文件要如何解析
    2022-09-09
  • Python使用configparser讀取ini配置文件

    Python使用configparser讀取ini配置文件

    這篇文章主要介紹了Python使用configparser讀取ini配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Tensorflow加載與預(yù)處理數(shù)據(jù)詳解實(shí)現(xiàn)方法

    Tensorflow加載與預(yù)處理數(shù)據(jù)詳解實(shí)現(xiàn)方法

    讀取大型數(shù)據(jù)集并對(duì)其進(jìn)行有效預(yù)處理可能對(duì)其他深度學(xué)習(xí)庫(kù)來(lái)說(shuō)很難實(shí)現(xiàn),但是TensorFlow借助Data API很容易實(shí)現(xiàn):只需創(chuàng)建一個(gè)數(shù)據(jù)集對(duì)象,并告訴它如何從何處獲取數(shù)據(jù)以及如何對(duì)其進(jìn)行轉(zhuǎn)換
    2022-11-11
  • Python ini文件常用操作方法解析

    Python ini文件常用操作方法解析

    這篇文章主要介紹了Python ini文件常用操作方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • python 非遞歸解決n皇后問(wèn)題的方法

    python 非遞歸解決n皇后問(wèn)題的方法

    這篇文章主要介紹了python 非遞歸解決n皇后問(wèn)題的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論

叙永县| 恭城| 格尔木市| 武宁县| 南投县| 齐河县| 屯昌县| 新竹市| 滕州市| 平舆县| 淅川县| 卫辉市| 利辛县| 上蔡县| 阿鲁科尔沁旗| 梁平县| 鹤山市| 克东县| 油尖旺区| 玉树县| 蒲江县| 武宁县| 鹿泉市| 岳阳市| 鄂托克旗| 波密县| 沁阳市| 两当县| 仙居县| 合阳县| 额济纳旗| 冷水江市| 鄂伦春自治旗| 西安市| 房产| 宁海县| 施甸县| 开原市| 龙游县| 长岛县| 江西省|