yfc1613
@yfc1613

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

関数を作成したいのですが、やり方がわからず質問です。

解決したいこと

下記のような関数を作成したい場合、if分の中の処理がわかりません。
『関数は引数として与えられたリスト内の整数について「3 では割り切れるが、5 では割り切れない整数」の個数をカウントする』

勉強始めたてながらに考えたものが下記にになります

該当するソースコード

ソースコードを入力
```def calc(numnbers):
  for number in numbers:
    if number % 3 == 0 & number % 5 != 0:
      print(number)

  return numbers

上記だと条件に合う整数を表示するのみになる?というのは把握しているのですが、
「個数をカウントする」という場合にどのような処理を行うのが適切なのかを教えていただけないでしょうか?

0

2Answer

2通りの方法を提示します。

関数内にカウンターを置く方法

  1. 関数の中にカウンターを作成。
    例:counter = 0
  2. if文がTrueの時にカウンターを+1する。
  3. カウンターをreturn

関数内に空のリストを作成し、そのlen()をとる方法

  1. 関数内に空のリストを作成。
    例:counter = []
  2. if文がTrueの時にその数値をリストに追加する。
  3. リストをreturnする。
  4. returnされたリストのlen() をとる。
    こうすることで後でリストの中身を確認できるようになり、正しい動作をしているかがわかるようにもなります。さらに、これはリスト内包表記を使うことで簡略化されたコードで書けるのでチャレンジしてみてください!

また、コード内で&を使用されていますが、おそらくは期待した動作をしません。
詳しくは調べていただけるといいと思いますが&ビット演算子で、今回使いたいのは論理演算子andではないでしょうか?もちろん&でもできないことはないんですが、書き方をちょっと工夫しないといけません。

2Like

Comments

  1. @yfc1613

    Questioner

    できました!
    ご丁寧にありあとうございます!

if文で条件分岐せずに、その条件式の結果をリストに溜め込んで、最後にsum()によってTrueの数を数えるという方法でも良いと思います。

0Like

Your answer might help someone💌