

画像のように『７』を入力したところ、７は偶数ではないのにも関わらず偶数とでできてしまいました。解決法を教えて下さい。

どこが違っていてどこを訂正すればよいか詳しく教えてもらえると幸いです。

[![画像](https://i.stack.imgur.com/xh02h.png)](https://i.stack.imgur.com/xh02h.png)


CC BY-SA 4.0
2023-03-06T10:40:36.963
94081
2023-03-08T08:05:05.467
2023-03-06T14:10:32.923
19110
57410
question
python
奇数にも関わらず偶数として表示される。


ホントに 変数 n の型は整数ですか？  
n / 2 は 3.5 だったりしませんか？


CC BY-SA 4.0
2023-03-06T11:05:52.413
94082
2023-03-06T11:05:52.413
29929
94081
answer


プログラミングのミスですね。  
おそらくプログラムが貴方の意図するようには作られていないでしょう。  
(ただし質問のタイトル・記事には何をどうしたいかが明確には書かれていないので正しいプログラムが何かを的確に答えることは出来ません)

該当の`if`文の中では、入力された数値が格納されている`s`については何も判定していません。

調べている`n`は`a`というリストに入っている要素の数なので、8個であり偶数であるのは正しいです。`if`で判定した`n`と`print`で印刷する`s`が違う物なので合っていないように見えるだけです。

それから`s`は1回しか入力していないので、`for`ループの中で繰り返し処理する必要は無いでしょう。これは今`if`で判定している`n`についても同じです。

`for`ループの中で何かを判定するなら`i`を絡めるのが普通ですが、何を意図してこのようなプログラムにしたのかについては、タイトル・記事の中に書かれていないので、どういう風に変更すれば良いかは助言・回答出来ません。  
その辺を追記してみてください。


CC BY-SA 4.0
2023-03-06T11:08:42.837
94083
2023-03-06T11:27:58.043
2023-03-06T11:27:58.043
26370
26370
94081
answer


前提条件など、必要な情報が少なすぎるため厳密には回答しようがありませんが、あえて条件を推測して回答してみます。尚、ツッコミどころは大体kunifさんが指摘してるので今回は省略します

以下推測  
パターン１：上でわざわざリストを生成しているのでSを偶数判定するのではなくS番目の値a[s]が偶数かどうか判定したかった

[code]

    a=(range(8))
    n=len(a)
    
    print('番号　データ')
    for i in range(n):
        print(i,'    ',a[i])
    print('')
    
    s=int(input('探索値を入力'))
    if s>n:
        print('要素数を超えています')
    elif a[s]%2==0:
        print(s,'番目のデータは','偶数である')
    else:
        print(s,'番目のデータは','奇数である')
    
[/code]

パターン2：ただの授業課題で上下のコードは別々のものを纏めて書いてただけ→Sを判定する（パターン１とほぼ同じ）

[code]

    s=int(input('探索値を入力'))
    
    if s%2==0:
        print(s,'は','偶数である')
    else:
        print(s,'は','奇数である')
    
[/code]

パターン3：判定部分に不要なfor文がある→S以下の数字を全部順番に判定する課題だったのでは？

[code]

    s=int(input('探索値を入力'))
    
    for i in range(0,s+1,1):
        if i%2==0:
            print(i,'は','偶数である')
        else:
            print(i,'は','奇数である')
        
    
[/code]


CC BY-SA 4.0
2023-03-08T08:05:05.467
94103
2023-03-08T08:05:05.467
56458
94081
answer