質問: ### 前提・実現したいこと for文を使って、1からnまでの和を求めたいのですが、エラーが発生してうまくできません。nの定義の仕方が知りたいです。 ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` NameError: name 'n' is not defined ``` ソースコード ``` print("n?") n=input(n) for x1 in range (1,n): x2= sum_x1 print(x2) ### 試したこと ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 下に書いたコードでうまく動くと思います。 ``` n = int(input("n?"))#n?を表示し、入力された数を整数化して変数nに入れる(これがnの定義) answer = 0#変数answerに0を入れる for i in range(n):#n回繰り返す answer += i#変数answerにiを足す(iは一回ループするごとに1ずつ増えます) print(answer)#変数answer(1からnの和)を表示 ``` 質問者さんのエラーの意味は「nが定義されていません」という意味です。 質問者さんの書いたコードの二文目は「変数nを表示し入力された結果を変数nに入れる」という意味でnを定義したことにはなっていません。 変数の定義の仕方は下のサイトに分かりやすく解説されているので、参考にしてみてください。 <アドバイス> for文以下はインデント(空白)を入れなければなりません。 変数の定義の仕方を上記サイトを見て理解しましょう。 初心者向けの参考書を使ってみるのもいいかもしれません。 何か疑問点がありましたら遠慮なくいってください。