• 締切済み

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