下に示したコードのelifとelseの部分にinvalid syntax とエラーが表示されるのですが,なぜでしょうか.
メールアドレスやパスワードの部分はプライバシー保護のためaaaと表記しています
python
1# ---------------------------------- 2# BTC急上昇・急降下お知らせツール 3# ---------------------------------- 4# 必要パッケージ 5# pip install python-dateutil 6# pip install email 7# ---------------------------------- 8import sys 9import requests 10import time 11import dateutil.parser 12import smtplib 13import email 14from email.mime.text import MIMEText 15from email.utils import formatdate 16from email.header import Header 17 18API="https://api.bitflyer.jp/v1/ticker" 19 20 21#暴騰・暴落の価格差(円) 22chk_yen=50 23 24#スリープ時間(秒) 25sleep_time=60 26 27#★送信元メール 28MY_ADDRESS='aaa' 29 30#★送信元メールパスワード 31MY_PASSWORD='aaa' 32 33#★送信元メールSMTPサーバー 34SMTP_SERVER='aaa' 35 36#★送信先アドレス 37TO_ADDRESS='aaa' 38 39#メール件名 40subject_header="【Bitcoin価格チェック】" 41 42 43# 44#関数:メール送信 45# 46def org_send_mail(from_address,to_address,subject,body): 47 msg=MIMEText(body.encode(charset),"plain",charset) 48msg["Subject"]=Header(subject,charset) 49msg["From"] =MY_ADDRESS 50msg["To"] =TO_ADDRESS 51msg["Date"] =formatdate(localtime=True) 52smtp=smtplib.SMTP(SMTP_SERVER,587) 53smtp.ehlo() 54smtp.starttls() 55smtp.login(MY_ADDRESS,MY_PASSWORD) 56smtp.sendmail(from_address,to_address,msg.as_string()) 57smtp.quit() 58 59 60 61if __name__=='__main__': 62 i=0 63bid_btc=[] 64 65charset="ISO-2022-JP" 66 67#ループ 68while True: 69 updown="" 70 71#APIリクエスト 72res=requests.get(API) 73 74#JSON取得 75json=res.json() 76 77#リストに追加 78bid_btc.append(int(json["best_bid"])) 79 80#タイムスタンプ 81tstr=json["timestamp"] 82 83#JSON形式では直接パース出来ないのでdeteutil使用 84tdatetime=dateutil.parser.parse(tstr) 85 86tdatetime_str=tdatetime.strftime('%Y/%m/%d %H:%M:%S') 87 88if i!=0: 89#価格差取得 90 kakakusa=int (bid_btc[i])-int (bid_btc[i-1]) 91 if kakakusa>0 and kakakusa>=chk_yen: 92 updown=" ↑+"+str (kakakusa)+"円" 93 94#メールタイトル 95subject=subject_header+"急上昇通知 "+tdatetime_str 96 97message_text=tdatetime_str+"\n\nBid:"+"{:,d}".format(bid_btc[i])+"円\n"+str(sleep_time)+"秒前の価格と比較して、"+str(kakakusa)+"円上昇しています。\n\n▼coinmarketcapでBTCチャート確認\nhttps://coinmarketcap.com/currencies/bitcoin/#charts\n\n▼bitFlyerへ\nhttps://bitflyer.jp/ja/\n\n以上" 98 99#メール本文 100body=message_text 101 102#メール送信 103org_send_mail(MY_ADDRESS,TO_ADDRESS,subject,message_text) 104 105 106elif kakakusa < 0 and kakakusa <= chk_yen * -1: 107 updown=" ↓"+str(kakakusa)+"円" 108 109#メールタイトル 110subject=subject_header+"急降下通知 "+tdatetime_str 111 112message_text=tdatetime_str+"\n\nBid:"+"{:,d}".format(bid_btc[i])+"円\n"+str(sleep_time)+"秒前の価格と比較して、"+str(kakakusa)+"円下落しています。\n\n▼coinmarketcapでBTCチャート確認\nhttps://coinmarketcap.com/currencies/bitcoin/#charts\n\n▼bitFlyerへ\nhttps://bitflyer.jp/ja/\n\n以上" 113 114#メール本文 115body=message_text 116 117#メール送信 118org_send_mail(MY_ADDRESS,TO_ADDRESS,subject,message_text) 119 120else: 121updown="" 122kakakusa=0 123pass 124 else: 125updown=""; 126pass 127 128print("["+tdatetime_str+"] BTC_JP Bid: "+"{:,d}".format(bid_btc[i])+"円"+updown) 129 130#スリープ 131time.sleep(int(sleep_time)) 132 133i=i+1
インデントがなくコードが読めません(実行できません)。以下を参考に修正ください。
https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif