アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在プログラミング初心者の高校生です。
学校の授業でPythonを使って解く問題です。
a=int(input())
b=0
for a in range(1,a+1):
b = b+a
print(b)
これを実行して数字を入力するとその数字までの総和が出てくると思いますがこれを改良して入力した数までの偶数のみの総和を求めるプログラムの作り方を教えて下さい。
理由も一緒におねがいします。
おねがいします。
また将来はゲームクリエイターになりたいと思っているのでこのプログラミング言語は覚えておいたほうが良いというものも教えて下さい!

A 回答 (5件)

ここは宿題の答えを教えてくれる場所ではありません。


努力もせずに答えを教えてもらおうなどもってのほかです。
まず自分で考えたことを書き、そのどこがわからないかを聞くようにしなさい。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
確かにそうですね。
よく考えて見たいと思います。

お礼日時:2022/02/07 20:57
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なんか違う気が…

お礼日時:2022/02/07 20:58

> 将来はゲームクリエイターになりたい



なら、勉強するべきは「言語」ではありません。
「やりたいこと」をどうやればいいかの「やり方」でしょう。
既にある「やり方」を覚える、というのもありますが、それ以上に「自分で考える」「既にあるやり方をうまく組合せる」ことが重要です。


現在のプログラムを応用するなら、次の2通りが考えられます。
・ループはそのままにして、偶数のときだけ足す/奇数のときには足さない、という条件分岐で対応する
・そもそも偶数だけのループになるようにする。

また、求めるのは「階差数列の総和」だと考えられるので、「階差数列の総和の公式」を使う方法もあります。
    • good
    • 0

なんか違うなら、既に回答のある通り、求める動作を正確に人に伝えられるようにしましょう。


偶数のみの総和、という表現があいまいなんです。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
曖昧な表現ですみません。
わざわざありがとうございました。

お礼日時:2022/02/08 07:52

range(1,a+1) → range(2,a+1, 2)



とするだけだけど、range型 は python の
基本のビルトイン型だから使い方をよく
習熟した方が良いですよ。

それと、初心者は多少冗長に書いた方が勉強に
なるだろうけど

print(sum(range(2, a+1, 2)))

の1行でもいい。
range はシーケンス型の一種。
sumはシーケンスの個々の要素の総和をとる関数です。

この変に習熟するととんでもなく短くかけるのが
pythonのおもろいところです。
やり過ぎは毒だけどね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
無事できました。

お礼日時:2022/02/08 22:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!