質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

501閲覧

入力した数の各位の数字の2乗を導出する関数

Hayato0513

総合スコア27

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/05/20 03:03

前提・実現したいこと

ある数字列の各くらいの数を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乗した後、どうやって例で挙げたような、まとまった数として出力できるのかわからないです。
リストに入れた後、そのリスト内の数を操作するやり方もわからないです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tetsunosuke

2019/05/20 03:08 編集

まず、SyntaxError は、 末尾にコロンがないことなので、それを修正しましょう。 for numbers in num: その後は、 num = input(n) num = str(n) のように、なぜか一度代入したものを上書きしているので、そのあたりが問題になりそうです。 (丸投げになりつつあるので一旦このくらいであとは頑張ってみてください)
Hayato0513

2019/05/20 05:10

ご回答ありがとうございます。非常に参考になりました。 このサイトを始めるのもパイソンも始めたばかりで、レベルの低い質問になってしまい恐縮です。 丸投げにしたつもりはないのですが、どのように質問をしたら良いでしょうか? 今後も使わせてもらうつもりなのでアドバイトよろしくお願いします。
tetsunosuke

2019/05/20 06:06

https://teratail.com/help/question-tips こちらを十分読んでいただいたということが前提とはなりますが、 今回の質問そのものは、「自分でかいたコードはこれで、エラーがこうだった。どう解決していいかわからない」ここまではOKだと思います。 そっから先は、 > 色々間違っていると思うのでご指摘お願いします。 何が間違っているのかを探させてしまっているのでちょっと丸投げに近づいています。自分はこう考えてこうしたのだけど、こういう結果になってしまったから何が間違えているのか?という書き方になっていれば良いと思います。 SyntaxErrorのせいで結果もくそもなくなってしまっていたので、次の段階へは進めそうなので、そこから先はご自身で考えて試したこととうまくいかない内容を記載すれば良いと思います。
Hayato0513

2019/05/20 06:17

なるほど。よくわかりました。何が間違っているかを探せてしまっている点で行けなかったのですね。もっと質問の際に自分で試したことを次回からは記載させてもらいます! ご指摘ありがとうございました。
tetsunosuke

2019/05/20 06:29

ちなみに、インデント、全半角を整えて、次にハマりそうな気がするのは print numbers の表記ですが、Pythonのバージョンが3だとエラーになります。 次は「n」ってなんだ?ってなるので... - エラーメッセージを読んで対応する力 - そもそも自分で関数を定義して引数を使う方法 あたりを復習しないとやりたいことまで到達しないかもしれませんね。
Hayato0513

2019/05/20 06:38

その2点、今後自分で対応していけるように頑張ります。 1つ質問なのですが、参考程度にどのようにパイソンを学習したのか教えてもらうことは出来ますでしょうか? どのくらいの年数をやっていらっしゃるのか。学び始めはどのようにしていたかなど。差し支えなければ大まかで良いので少し教えてくださると嬉しいです。または、今後学習していく上で、参考になるアドバイスなど。
tetsunosuke

2019/05/20 06:55

自身がPythonを勉強したのはもう10年位前で、かつ職業エンジニアとして7年くらいたったときなので、そういう意味では参考になりませんが、基礎的な本を一通り読んでから、できるだけ今まで別の言語で書いていた(当時はPerlを書いていた)ツールをPythonで書くようにして、つまづきながら覚えました! 何らかのプログラミング言語を勉強する際は入門書をまず書いてあるとおりに打ち込んでみて、それぞれが何をしているか自分でも同じことを空で書けるようにする、のが基本かなとは思います。初学者の学習法は検索するといくつか出てくるし、今この課題?をやろうとしているからにはなにかしらの入門向けコンテンツを順次やっているのだと思うので、理解して自分でできるようになる、という方向はあまり変わらないかも。
Hayato0513

2019/05/20 10:28

質問への回答からサイトの高い、ご自身の体験談など色々ありがとうございました!これからも頑張るのでよろしくお願いします!
guest

回答1

0

ベストアンサー

とりあえずfor numbers in numの最後にコロン:が抜けているのがエラーの原因です。

リストに入れた後、そのリスト内の数を操作するやり方もわからないです。

これはfor numbers in num:のループでできています。

投稿2019/05/20 03:07

編集2019/05/20 05:00
can110

総合スコア38234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hayato0513

2019/05/20 10:29

ご回答ありがとうございます!! 非常に参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問