• 締切済み

python print文のエラーがでます

#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import print_function import datetime class TZ(datetime.tzinfo): def __init__(self, name, offset): self.name = name self.offset = offset def utcoffset(self, dt): return datetime.timedelta(hours=self.offset) def tzname(self, dt): return self.name def dst(self, dt): return datetime.timedelta(0) def main(): path = '/sys/bus/w1/devices/28-000*********/w1_slave' with open(path) as f: data = f.read() temp = float(data[data.index('t=')+2:])/1000 FMT = '{},{:.1f}' JST = TZ('JST', 9) now = datetime.datetime.now(JST) print(FMT.format(now.strftime("%Y/%m/%d %H:%M:%S"), temp)) if __name__ == '__main__': main()
 とうってじっこうすると print(FMT.format(now.strftime("%Y/%m/%d %H:%M:%S"), temp)) の部分に SyntaxError: invalid syntax とエラーがでます。 どういうことなのか教えていただけるとうれしいです!

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

たとえ、どこかからコピーしたものでも、全て正しいと信じ込んではいけません。 「自分で作ったプログラム」だと思って、間違いは修正しましょう。 Syntax Error とは、「文法の間違い」というものです。 エラーのなかで、一番修正しやすいエラーと言ってよいでしょう。 そう考えながら該当行を見ると、 &やら;やら /% やらと、 Pythonでは使わないような記号がでたらめに並んでいます。 文法的に間違っています。メッセージの通りです。 では、どう直すのか。 Pythonの勉強のつもりで、御自身でやってみてはどうでしょう。 strftime とはどんなメソッドか調べれば、引数には何が要求されているのかがわかります。 その要求されているものと、現状がどうちがうのか、考えれば、どう治していけばいいのかもわかるはずです。

回答No.1

うーん、ぶっちゃけ分からないですね(笑)。 まあ、HTMLの仕様上しょうがない部分もあるんですが、第1に ・貼っ付けられたPythonのコードのインデントがムチャクチャである。 Pythonはインデントが重要なプログラミング言語なんで、ここまでインデントが消えちゃうとどう言う コードを書きたかったのかサッパリ分かりません。 第2に ・path = '/sys/bus/w1/devices/28-000*********/w1_slave'ってのがどういうパスなのかサッパリわからない です。 通常、こういう場合、コードを実行してみてエラーを探すんですが、貴方のPC上でどういうパスで何のファイルを開くにせよ、他の人が同様のパス/ファイルを持ってるわけではないのです。 従って、再現性が無い以上何とも言いようがない。 極端な話、ファイルが存在しないからじゃないの?としか言いようがなくなってしまうんですね。 さて、どうしたもんだ、困ったもんだ。 ところで、これ、どっかから拾ってきたコードなんですかね。 print(FMT.format(now.strftime("%Y/%m/%d %H:%M:%S"), temp)) の部分の"ってのは通常、HTMLでの"の意味ですから、"を丸ごと"に置き換えたら動くかもしれない。あるいは動かないかもしれない。 何にせよ、再現が困難なんでどーにも言いづらい質問ですね。

関連するQ&A

  • Pythonでクエリパラメータを取得する際のエラー

    まずHTML側で href="http://root/page?ID={{id}}" として動的にクエリパラメータを含んだURLを設定します。 そのリンクにアクセスした際に、 サーバ側のmain.py内で def main(): application = webapp.WSGIApplication([('/page(.*)',PageHandler)],debug=True) util.run_wsgi_app(application) if__name__== '__main__': main() としてハンドラーを設定し、 class PageHandler(webapp.RequestHandler): def get(self): query = self.request.get('ID') parameta = {'pageID':query} fpath = os.path.join(os.path.dirname(__file__),'templates','page.html') html = template.render(fpath,parameta) self.response.headers['Content-Type'] = 'text/html' self.response.out.write(html) のquery = self.request.get('ID')でクエリパラメータを取得し、その値を渡しつつhtmlを書き出しさせています。 これを実際に動かすと TypeError: get() takes exactly 1 argument (2 given) というエラーが出て表示されないのですが、どこに問題があるんでしょうか? ちなみにGoogle App Engine上で実装しています。 

  • Arduinoでコンパイルエラーについて

    お世話になります。 Arduinoで検証すると「コンパイル時にエラーが発生しました。」と出ますがスケッチ上に黄色い帯が出ません。 なにが原因なのでしょう? 参考にしたスケッチ http://www.mauroalfieri.it/en/elettronica/data-logging-con-arduino.html これに「RTClib.h」というファイルを同じ場所に置きました。 テキストファイルに以下のスケッチをコピーし「RTClib.h」を作成します。 // Code by JeeLabs http://news.jeelabs.org/code/ // Released to the public domain! Enjoy! // Simple general-purpose date/time class (no TZ / DST / leap second handling!) class DateTime { public: DateTime (uint32_t t =0); DateTime (uint16_t year, uint8_t month, uint8_t day, uint8_t hour =0, uint8_t min =0, uint8_t sec =0); DateTime (const char* date, const char* time); uint16_t year() const { return 2000 + yOff; } uint8_t month() const { return m; } uint8_t day() const { return d; } uint8_t hour() const { return hh; } uint8_t minute() const { return mm; } uint8_t second() const { return ss; } uint8_t dayOfWeek() const; // 32-bit times as seconds since 1/1/2000 long secondstime() const; // 32-bit times as seconds since 1/1/1970 uint32_t unixtime(void) const; protected: uint8_t yOff, m, d, hh, mm, ss; }; // RTC based on the DS1307 chip connected via I2C and the Wire library class RTC_DS1307 { public: static uint8_t begin(void); static void adjust(const DateTime& dt); static void sqw(int sqw); uint8_t isrunning(void); static DateTime now(); }; // RTC using the internal millis() clock, has to be initialized before use // NOTE: this clock won't be correct once the millis() timer rolls over (>49d?) class RTC_Millis { public: static void begin(const DateTime& dt) { adjust(dt); } static void adjust(const DateTime& dt); static DateTime now(); protected: static long offset; }; みなさま、どうかよろしくお願い致します。

  • VBAからPythonを動かしたいのですが…

    いつもお世話になっております。 icevainと申します。 python超初心者です。 【質問】 『VBAでPythonを動かす』という興味のあるサイトを見つけました。 https://qiita.com/O_LUPAN/items/1ceb5c950ff40f3558ab サイトのpythonコード #ここから import sys def sum(suji1, suji2): return suji1 + suji2 if __name__ == "__main__": argv = sys.argv suji1 = str(argv[1]) suji2 = str(argv[2]) total = sum(suji1, suji2) print(total) #ここまで サイトのpythonコードを無理やり変更して、 #ここから import sys def sum(suji1, suji2): rst="OK" return rst if __name__ == "__main__": argv = sys.argv suji1 = str(argv[1]) suji2 = str(argv[2]) total = sum(suji1, suji2) print(total) #ここまで OKがかえってくると思ったのですが、 0がかえってきてしまいます。 OKをかえすにはどうすればよいのかわかりません。 お分かりの方おりましたらご協力お願い致します。

  • Rubyの問題について質問です。

    Rubyの資格試験の勉強をしています。 分からない部分がありまして質問させていただきます。 class Employee attr_reader :id attr_accessor :name def initialize id , name @id = id @name = name end def to_s return "#{@id}:#{@name}" end def <=> other return self.id <=> other.id end employees = [ ] employees <<Employee.new("3","Tanaka") employees<<Employee.new("1","Suzuki") employees<<Employee.new("2","Sato") employee.sort! (質問) 「return self.id <=> other.id」この部分のselfとotherが何をさしているのか分かりません。3つめでインスタント化している「employees<<Employee.new("2","Sato")」のは、selfに入りそれまでに入れた値はotherに入っているのでしょうか? ご回答よろしくお願いします。

    • ベストアンサー
    • Ruby
  • Pythonプログラミングでエラー

    Pythonのプログラムを教科書をみながら勉強しはじめました。 バージョンは3.0.1です。 下記の初歩的なプログラムで#の行でエラーがでて対応方法が わかりません。 アドバイスいただけませんでしょうか。 #! /python30/python # coding:shift_jis ''' 簡単な電卓です。 Usage: mycalc.py n (+-*/) m ''' import sys, operator OP={'+':operator.__add__,\ '-':operator.__sub__,\ '*':operator.__mul__,\ '/':operator.__truediv__,\ } def calc(ls): assert len(ls)==3 #ここでエラー try: op=OP(ls.pop(1)) # 真ん中の文字列をpop,数字のみ残る。 x,y=[float(u) for u in ls] # 残った文字列をfloatに変換 except: print('Err:数字 演算子(+-*/) 数字 の順に引数をセットしてください。') sys.exit() return op(x,y) if __name__=='__main__': print(calc(sys.argv[1:])) #ここでエラー (ここで質問するとTABのインデントがなくなってしまうようです。)

  • raspberry pi でブラウザ操作できない

    ブラウザからボタンを押すとraspberry pi から写真を撮影することをしたいのですが、うまくいきません。アドバイス願います。 html側のソース <html> <head> <title>retasu boy robot</title> <script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js" type="text/javascript"> </script> </head> <body> <h1>Hello world from retasu boy robot</h1> <form> <input type="button" value="On" onclick="go('w')" style="font-size:200%;"> <input type="button" value="Off" onclick="go('s')" style="font-size:200%;"> </form> <script type="text/javascript"> function go(qry) { new Ajax.Request('http://192.168.11.204/picutre3.py?q=' + qry,{method: 'GET'} ); } </script> </body> </html> py側のソース #!/usr/bin/pythonCGI import picamera import datetime import ftplib import time from flup.server.fcgi import WSGIServer now = datetime.datetime.now() dir_name = now.strftime('%Y%m%d') dir_path = '/var/www/donald' file_name = now.strftime('%H%M%S') file_name = dir_name + file_name def app(environ, start_response): start_response("200 OK",[("Content-Type", "text/html")]) i = urlparse.parse_qs(environ["QUERY_STRING"]) yield(' ') if "q" in i: if i["q"][0] == "w": picamera = picamera.PiCamera() picamera.capture(dir_path+'/'+file_name+'.jpg') print("ok") WSGIServer(app).run()

  • スレッドが正しく終了されない

    C#を勉強して1ヶ月もたたないものです。 簡易ブラウザのフレーム?に座標を表示するものを作りたくて調べながら作ったんですが”ObjectDisposedExceptionはハンドルされませんでした”とでてデバックが正しく終了できません。 コードは public partial class Form1 : Form { public Form1() { InitializeComponent(); new Thread(new ThreadStart(GetMousePosition)).Start(); } private void Form1_Load(object sender, EventArgs e) { } public void GetMousePosition() { while (true) { SetText(); Thread.Sleep(100); } } public delegate void SetTextDelegate(); public void SetText() { if (InvokeRequired) { Invoke(new SetTextDelegate(SetText)); return; } } } です。解決策のヒントでもいいのでよろしくお願いします。 また、起動時間も表示したいんですが DateTime dt1 = DateTime.Now; DateTime dt2 = DateTime.Now; dt2-dt1 で表示できるみたいに書いてあったんですが時間がずっと0のままで進みません。 こちらのほうもご教授いただけると助かりますのでよろしくお願いします。

  • Python について質問です

    私はPythonの初心者です。 今Python でCSVのファイルを読んで数値だけ(数値以外に文字列や空白などがあります)を計算処理出来なくて困っています。教えて頂けませんか? 質問は、BB.csvというファイルの数値だけの合計と平均を計算したいです。 私のコードは以下です。 # coding: utf-8 import csv import re import string DATAFILE = 'BB.csv' class UnicodeDictReader(csv.DictReader): def __init__(self, f, fieldnames=None): csv.DictReader.__init__( self, f, fieldnames) def main(): total = 0 all_sum = 0 line_num = 0 with open(DATAFILE) as csvfile: reader = UnicodeDictReader(csvfile) for record in reader: # 値を数値で取得 A = int(record['38186']) B = int(record['38181']) C = int(record['38143']) item_total = A + B + C total = item_total all_sum += item_total line_num += 1 average = all_sum / reader.line_num print(" %d + %d + %d = %d " % ( A, B, C, total)) print(u"合計 %d " % all_sum) print(u"平均 %d " % average) if __name__ == '__main__': main() BB.csvは以下です、 38186,38181,38143 1,1,4 1,1,4 ,, ,, 2020,2020,2020 1412,1412,1412 625,625,625 75,75,75 75,75,75 75,75,75 75,75,75 4,4,4 4,4,4 4,4,4 7828,7828,7828 X,, 0,0,0 0,0,0 ○,, 0,0,0 0,0,0 0,0,0 ,,AAA 0,0,0 0,0,0 0,0,0 ,BBB, 0,0,0 0,0,0 0,0,0 ,, 0,0,0 ,, 0,0,0 0,0,0 ,, 0,0,0 0,0,0 750,750,750 400,400,400 400,400,400 ,, 0,0,0 0,0,0 0,0,0 ,, 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 6,6,6 6,6,6 18,18,18 18,18,18 18,18,18 18,18,18 18,18,18 16,16,16 16,16,16 6,6,6 6,6,6 18,18,18 18,18,18 18,18,18 18,18,18 18,18,18 11,11,11 11,11,11 11,11,11 3,3,3 3,3,3 3,3,3 3,3,3 4,4,4 4,4,4 3,3,3 3,3,3 16,16,16 16,16,16 16,16,16 14,8,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 15,15,15

  • 行のカウントを2種類を1つの文で発行したい

    こんにちは質問させてください。 商品が登録されているテーブル A に以下のカラムがあるとします。 id(int),  name(varcahr),  dt(datetime) id   には 店を識別す固有の番号がふってあり、 name には 商品名、  dt   には商品を登録した日付が入っているものとします。 やりたいことは ”id が 「1」 である全商品数” と ”今月登録された商品の数” を出力したいのです。 id が 1 である商品の数は以下のSQLで取り出せます。 SELECT COUNT(*) FROM  ( SELECT * FROM A WHERE A.id='1' ) AS tbl1 id が 1 で 今月登録された商品の数は以下のSQLで取り出せます。 SELECT COUNT(*) FROM  ( SELECT * FROM A     WHERE A.dt BETWEEN DATE(       DATE_SUB( NOW(), INTERVAL DAYOFMONTH( NOW() )-1 DAY) ) AND      LAST_DAY( NOW() ) AND A.id='1' ) AS tbl1 これをひとつのSQLにまとめるにはどうしたらいいのでしょうか…。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • Ruby on Rails: メソッドの定義で「self.」をつけるケースについて

    メソッドの名前に「self.」をつけるケースというは、 どういうことがあてはまるのでしょうか. 具体的には、以下のようなname_displayメソッドを作ったのですが、 「self.」をつけないと、undifined methodエラーになってしまいます. 偶然、self.をつけたら動いたので、そういうものかとわかりました. ただ、理由がわかりません. ご存知の方、お教えください. Userモデル id,username class User < ActiveRecord::Base def self.name_display(userid) begin @username = User.find(userid) return @username.username rescue return '削除ユーザ' end end end

専門家に質問してみよう