<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 Python 寫了一個(gè)不起床讓你后悔的鬧鐘(文末贈(zèng)書)

          共 11791字,需瀏覽 24分鐘

           ·

          2022-08-08 17:52

          以下內(nèi)容來(lái)自公眾號(hào)逆鋒起筆,關(guān)注每日干貨及時(shí)送達(dá)

          導(dǎo)讀
          哎 ?? ,別提了自從回到家整個(gè)人都懶散了,總被人嫌棄不說(shuō)還覺(jué)得生活沒(méi)有了盼頭,還好在社區(qū)認(rèn)識(shí)了一些大佬讓我想重新來(lái)過(guò)做回自己,不在做小丑,于是乎我就想用個(gè)東西來(lái)提醒我別睡懶覺(jué),然后這篇文章就誕生了。
          來(lái)吧看看今天的故事。
          鬧鐘
          有人說(shuō)程序員的日常就是反復(fù)造輪子,我覺(jué)得能在原來(lái)的基礎(chǔ)上玩出新花樣來(lái)幫到一些人,做這些事還是挺有趣的。
          沒(méi)有什么高深的學(xué)問(wèn)就是給大家在枯燥的夏日帶來(lái)一點(diǎn)歡愉。
          使用的模塊
          import time
          from datetime import datetime
          from playsound import playsound#
          ```用來(lái)播放鈴聲的
          import pyttsx3
          如果你對(duì)import pyttsx3不太熟悉的話可以學(xué)習(xí)一下,就是一個(gè)文字朗讀模塊,一會(huì)我們將要用到。
          首先我們先來(lái)設(shè)置鬧鐘的的預(yù)定時(shí)間
          alarm_time = input("輸入要設(shè)置的鬧鐘時(shí)間:HH:MM:SS\n")
              alarm_period=input("請(qǐng)輸入要設(shè)置的時(shí)期(AM或PM):\n")
              alarm_hour=alarm_time[0:2]#獲取小時(shí)
              alarm_minute=alarm_time[3:5]#獲取分鐘
              alarm_seconds=alarm_time[6:8]#多少秒
              alarm_period = alarm_period.upper()
               print("設(shè)置成功正在運(yùn)行,祝您休息愉快....zzZZ..")
          設(shè)置成功后鬧鐘就在運(yùn)行了下面給大家展示一下效果片段
          音頻:
          一個(gè)能幫你分手或辭職的鬧鐘
              while flag:
                  now = datetime.now()
                  current_hour = now.strftime("%I")
                  current_minute = now.strftime("%M")
                  current_seconds = now.strftime("%S")
                  current_period = now.strftime("%p")
                  if(alarm_period==current_period):
                      if(alarm_hour==current_hour):
                          if(alarm_minute==current_minute):
                              if(alarm_seconds==current_seconds):
                                  print("Wake Up!!!")
                                  playsound('1.mp3'## 鈴聲名字最好不要帶中文,會(huì)節(jié)碼失敗
                                  if(int(now.strftime("%M"))-int(alarm_minute)==10):#延遲十分鐘在叫一次
                                      playsound('1.mp3')
                                      time.sleep(60)
                                      pp.say('還不醒?那你可別怪我了都是為你好呀。這就去幫你辭職!哈哈哈哈')
                                      pp.runAndWait()
          原理很簡(jiǎn)單,就是一堆判斷大概是這樣的

          ??
          ?? 
          ??
          辭職或分手(肯定用的著,建議記錄一下)
          這里我們用到Python SMTP發(fā)送郵件 簡(jiǎn)單介紹一下
          import smtplib

          smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
          參數(shù)說(shuō)明:

          host: SMTP 服務(wù)器主機(jī)。你可以指定主機(jī)的ip地址或者域名如: runoob.com,這個(gè)是可選參數(shù)。
          port: 如果你提供了 host 參數(shù), 你需要指定 SMTP 服務(wù)使用的端口號(hào),一般情況下 SMTP 端口號(hào)為25。
          local_hostname: 如果 SMTP 在你的本機(jī)上,你只需要指定服務(wù)器地址為 localhost 即可。

          Python SMTP 對(duì)象使用 sendmail 方法發(fā)送郵件,語(yǔ)法如下:

          SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
          參數(shù)說(shuō)明:

          from_addr: 郵件發(fā)送者地址。
          to_addrs: 字符串列表,郵件發(fā)送地址。
          msg: 發(fā)送消息
          這里要注意一下第三個(gè)參數(shù),msg 是字符串,表示郵件。我們知道郵件一般由標(biāo)題,發(fā)信人,收件人,郵件內(nèi)容,附件等構(gòu)成,發(fā)送郵件的時(shí)候,要注意 msg 的格式。這個(gè)格式就是 smtp 協(xié)議中定義的格式
          因?yàn)槲覀円玫絈Q郵箱smtp服務(wù)發(fā)送郵件下面我們也簡(jiǎn)單介紹一下獲取授權(quán)碼的方法
          1·這里找到QQ郵箱
          2· 3· 
          下面進(jìn)行代碼展示
          my_sender = '[email protected]'  # 發(fā)件人郵箱賬號(hào)
              my_pass = '***'  # 授權(quán)碼
              my_user = '[email protected]'  # 收件人郵箱賬號(hào),我這邊發(fā)送給自己

              def mail():
                  ret = True
                  try:
                      msg = MIMEText('想睡覺(jué),不干了''plain''utf-8')  # 填寫內(nèi)容
                      msg['From'] = formataddr(["我是肥學(xué),老子干了", my_sender])  # 括號(hào)里的對(duì)應(yīng)發(fā)件人郵箱昵稱、發(fā)件人郵箱賬號(hào)
                      msg['To'] = formataddr(["肥學(xué)", my_user])  # 括號(hào)里的對(duì)應(yīng)收件人郵箱昵稱、收件人郵箱賬號(hào)
                      msg['Subject'] = "辭職報(bào)告"  # 郵件的主題,也可以說(shuō)是標(biāo)題你也可以寫成分手報(bào)告

                      server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 發(fā)件人郵箱中的SMTP服務(wù)器
                      server.login(my_sender, my_pass)  # 括號(hào)中對(duì)應(yīng)的是發(fā)件人郵箱賬號(hào)、郵箱密碼
                      server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括號(hào)中對(duì)應(yīng)的是發(fā)件人郵箱賬號(hào)、收件人郵箱賬號(hào)、發(fā)送郵件
                      server.quit()  # 關(guān)閉連接
                  except Exception:  # 如果 try 中的語(yǔ)句沒(méi)有執(zhí)行,則會(huì)執(zhí)行下面的 ret=False
                      ret = False
                  return ret

              ret = mail()
              if ret:
                  print("郵件發(fā)送成功")
              else:
                  print("郵件發(fā)送失敗")
          結(jié)果:我這個(gè)是自己給自己發(fā)了一個(gè)的測(cè)試暫時(shí)還沒(méi)有工作的同學(xué)可以同樣的方法把郵箱改成你對(duì)象的郵箱,嘻嘻嘻。這不就可以治治你的懶床了嗎。
          好了下面貼出全部代碼:
          import time
          from datetime import datetime
          from playsound import playsound
          import pyttsx3

          import smtplib
          from email.mime.text import MIMEText
          from email.utils import formataddr

          def alarm():
              pp = pyttsx3.init()
              alarm_time = input("輸入要設(shè)置的鬧鐘時(shí)間:HH:MM:SS\n")
              alarm_period=input("請(qǐng)輸入要設(shè)置的時(shí)期(AM或PM):\n")
              alarm_hour=alarm_time[0:2]#獲取小時(shí)
              alarm_minute=alarm_time[3:5]#獲取分鐘
              alarm_seconds=alarm_time[6:8]#多少秒
              alarm_period = alarm_period.upper()

              print("設(shè)置成功正在運(yùn)行,祝您休息愉快....zzZZ..")
              flag=True
              while flag:
                  now = datetime.now()
                  current_hour = now.strftime("%I")
                  current_minute = now.strftime("%M")
                  current_seconds = now.strftime("%S")
                  current_period = now.strftime("%p")
                  if(alarm_period==current_period):
                      if(alarm_hour==current_hour):
                          if(alarm_minute==current_minute):
                              if(alarm_seconds==current_seconds):
                                  print("Wake Up!!!")
                                  playsound('1.mp3'## 鈴聲名字最好不要帶中文,會(huì)節(jié)碼失敗
                                  if(int(now.strftime("%M"))-int(alarm_minute)==10):#延遲十分鐘在叫一次
                                      playsound('1.mp3')
                                      time.sleep(60)
                                      pp.say('還不醒?那你可別怪我了都是為你好呀。這就去幫你辭職!哈哈哈哈')
                                      pp.runAndWait()
              return 1

          def mail_qq():
              my_sender = '[email protected]'  # 發(fā)件人郵箱賬號(hào)
              my_pass = '***'  # 授權(quán)碼
              my_user = '[email protected]'  # 收件人郵箱賬號(hào),我這邊發(fā)送給自己

              def mail():
                  ret = True
                  try:
                      msg = MIMEText('想睡覺(jué),不干了''plain''utf-8')  # 填寫內(nèi)容
                      msg['From'] = formataddr(["我是肥學(xué),老子干了", my_sender])  # 括號(hào)里的對(duì)應(yīng)發(fā)件人郵箱昵稱、發(fā)件人郵箱賬號(hào)
                      msg['To'] = formataddr(["肥學(xué)", my_user])  # 括號(hào)里的對(duì)應(yīng)收件人郵箱昵稱、收件人郵箱賬號(hào)
                      msg['Subject'] = "辭職報(bào)告"  # 郵件的主題,也可以說(shuō)是標(biāo)題你也可以寫成分手報(bào)告

                      server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 發(fā)件人郵箱中的SMTP服務(wù)器
                      server.login(my_sender, my_pass)  # 括號(hào)中對(duì)應(yīng)的是發(fā)件人郵箱賬號(hào)、郵箱密碼
                      server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括號(hào)中對(duì)應(yīng)的是發(fā)件人郵箱賬號(hào)、收件人郵箱賬號(hào)、發(fā)送郵件
                      server.quit()  # 關(guān)閉連接
                  except Exception:  # 如果 try 中的語(yǔ)句沒(méi)有執(zhí)行,則會(huì)執(zhí)行下面的 ret=False
                      ret = False
                  return ret

              ret = mail()
              if ret:
                  print("郵件發(fā)送成功")
              else:
                  print("郵件發(fā)送失敗")

          if __name__ == '__main__':
              a=alarm()
              if a==1:#如果鬧鐘沒(méi)關(guān)閉就發(fā)郵件

          轉(zhuǎn)自:Python專欄

          推薦閱讀:
          為什么國(guó)內(nèi)做不出 JetBrains 那樣的產(chǎn)品?
          將鴻蒙上的 Python 進(jìn)行到底!
          8 個(gè)無(wú)需編寫代碼即可使用 Python 內(nèi)置庫(kù)的方法



          今日福利

          贈(zèng)送如下圖書籍:


          贈(zèng)送規(guī)則:

          1、給本文點(diǎn)贊在看

          2、給本文留言(留言內(nèi)容與本書有關(guān)

          3、中獎(jiǎng)后我會(huì)回復(fù)你的留言,請(qǐng)注意公眾號(hào)消息。



          上次中獎(jiǎng)?wù)撸?/span>

          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品无码久久久久久久久爆乳 | 大香蕉中文在线 | 亚洲五月丁香婷婷 | 免费亚洲视频 | 又色又爽的网站 |