前提・実現したいこと
「独学プログラマーPython」で勉強しているものです。p172の下記のコードを打ったのですが、「SyntaxError: invalid syntax」という構文エラーが出てしまいました。空白やタイプミスなどを念入りに調べたのですが、一向に解決しないのでお力をお貸しいただきたいです。
発生している問題・エラーメッセージ
Python3
1class Rectangle: 2 recs = [] 3 4 def __init__(self, w, l): 5 self.width = w 6 self.len = l 7 self.recs.append((self.width, self.len)) 8 9 def print_size(self): 10 print("""{} by {}""".format(self.width, self.len)) 11 12 13r1 = Rectangle(10, 24) 14r2 = Rectangle(20, 40) 15r3 = Rectangle(100, 200) 16 17print(Rectangle.recs)
SyntaxError: invalid syntax
該当のソースコード
ソースコード
試したこと
空白やタイプミスをしっかり探し、教科書通りになるようにしました。エラーが出る時にr1のところが赤くなりますが、ネットでいろいろ調べてもその原因が何なのかわかりませんでした。何が悪かったのか、また、どうすればよいのか教えていただけると幸いです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
IDLEをお使いなのでは? (どう実行しているかを質問に追記してください)
どの行でそのエラーが出ているんでしょうか
特に構文エラーがあるようには見受けられないですね
オンラインの実行環境でもコピペで動いています
https://onlinegdb.com/Sk2yUlCvE
print("""{} by {}""" これは実際のこの通りにしているのでしょうか?
なぜ3つ重ねているのでしょう?
追記です。
Windows10にて、IDLE(Python 3.7 32-bit)を使用しています。エラーが出ている行は、「r1 = Rectangle(10, 24)」です。「print("""{} by {}"""」は著者が同頁の参考としてネットにあげているものを引用しましたが、一つだけの場合でも全く同じ行でエラーが起きます。なぜ三つなのかは、すいません、私自身まだ勉強不足で分かっておりません。
質問に追記してください と書いたはずですが。
IDLE は数行のちょっとしたコードを実行するだけならいいですが、クラス作ったりと少し長めのコードを書くなら、やめたほうがいいと思いますが。
回答2件
あなたの回答
tips
プレビュー