前提・実現したいこと
ある数字列の各くらいの数を2乗した数を求める関数を作っているのですが、自分の書いたコードのどこが具体的に問題なのかわかりません。
(例)もし9119と入れた場合、各くらいの数の2乗なので出てくる数は811181です。
色々間違っていると思うのでご指摘お願いします。
発生している問題・エラーメッセージ
エラーメッセージ Traceback (most recent call last): File "main.py", line 1, in <module> from solution import * File "/home/codewarrior/solution.py", line 5 for numbers in num ^ SyntaxError: invalid syntax`` ### 該当のソースコード numbers=[] def square_digits(num): num=input(n) num=str(n) #数字を文字列に変え、1文字ずつと捉える for numbers in num #1文字ずつリストに入れていく l=int(numbers) #文字列を数字と考える l= numbers**2 print numbers ```ここに言語名を入力 python ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
また、リストに文字列を入れて、その数を2乗した後、どうやって例で挙げたような、まとまった数として出力できるのかわからないです。
リストに入れた後、そのリスト内の数を操作するやり方もわからないです。
まず、SyntaxError は、 末尾にコロンがないことなので、それを修正しましょう。
for numbers in num:
その後は、
num = input(n)
num = str(n) のように、なぜか一度代入したものを上書きしているので、そのあたりが問題になりそうです。
(丸投げになりつつあるので一旦このくらいであとは頑張ってみてください)
ご回答ありがとうございます。非常に参考になりました。
このサイトを始めるのもパイソンも始めたばかりで、レベルの低い質問になってしまい恐縮です。
丸投げにしたつもりはないのですが、どのように質問をしたら良いでしょうか?
今後も使わせてもらうつもりなのでアドバイトよろしくお願いします。
https://teratail.com/help/question-tips
こちらを十分読んでいただいたということが前提とはなりますが、
今回の質問そのものは、「自分でかいたコードはこれで、エラーがこうだった。どう解決していいかわからない」ここまではOKだと思います。
そっから先は、
> 色々間違っていると思うのでご指摘お願いします。
何が間違っているのかを探させてしまっているのでちょっと丸投げに近づいています。自分はこう考えてこうしたのだけど、こういう結果になってしまったから何が間違えているのか?という書き方になっていれば良いと思います。
SyntaxErrorのせいで結果もくそもなくなってしまっていたので、次の段階へは進めそうなので、そこから先はご自身で考えて試したこととうまくいかない内容を記載すれば良いと思います。
なるほど。よくわかりました。何が間違っているかを探せてしまっている点で行けなかったのですね。もっと質問の際に自分で試したことを次回からは記載させてもらいます!
ご指摘ありがとうございました。
ちなみに、インデント、全半角を整えて、次にハマりそうな気がするのは
print numbers の表記ですが、Pythonのバージョンが3だとエラーになります。
次は「n」ってなんだ?ってなるので...
- エラーメッセージを読んで対応する力
- そもそも自分で関数を定義して引数を使う方法
あたりを復習しないとやりたいことまで到達しないかもしれませんね。
その2点、今後自分で対応していけるように頑張ります。
1つ質問なのですが、参考程度にどのようにパイソンを学習したのか教えてもらうことは出来ますでしょうか?
どのくらいの年数をやっていらっしゃるのか。学び始めはどのようにしていたかなど。差し支えなければ大まかで良いので少し教えてくださると嬉しいです。または、今後学習していく上で、参考になるアドバイスなど。
自身がPythonを勉強したのはもう10年位前で、かつ職業エンジニアとして7年くらいたったときなので、そういう意味では参考になりませんが、基礎的な本を一通り読んでから、できるだけ今まで別の言語で書いていた(当時はPerlを書いていた)ツールをPythonで書くようにして、つまづきながら覚えました!
何らかのプログラミング言語を勉強する際は入門書をまず書いてあるとおりに打ち込んでみて、それぞれが何をしているか自分でも同じことを空で書けるようにする、のが基本かなとは思います。初学者の学習法は検索するといくつか出てくるし、今この課題?をやろうとしているからにはなにかしらの入門向けコンテンツを順次やっているのだと思うので、理解して自分でできるようになる、という方向はあまり変わらないかも。
質問への回答からサイトの高い、ご自身の体験談など色々ありがとうございました!これからも頑張るのでよろしくお願いします!
回答1件
あなたの回答
tips
プレビュー