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

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

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

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

Q&A

解決済

5回答

1465閲覧

偶数だが2だけ除きたい

tonta5

総合スコア16

Python

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

1グッド

0クリップ

投稿2018/09/05 15:50

偶数だけを表示したいが、2だけは除きたい。

python

1i = 0 2 3while True: 4 i = i + 1 5 6 if i > 10: 7 break 8 9 if i % 2 == 1: 10 continue 11 12 print(i) 13

上記のようなコードで実行すると2、4、6、8、10と出力されます。
できるだけこのソースを使って、2だけは出力されないようにする(つまり4、6、8、10と表示される)にはどのようなコードを
追加すればいいでしょうか?また4だけ、6だけの場合もご教示いただけると幸いです。

よろしくお願いいたします。

tachikoma👍を押しています

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

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

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

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

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

guest

回答5

0

こんな漢字で、

bash

1$ python your.py|grep -v '^2$'

投稿2018/09/05 19:50

hichon

総合スコア5737

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

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

mkgrei

2018/09/05 22:36

+1 そういう斜め上からの回答も良いと思います。
guest

0

ソースはガラッと変わるけど偶数出すだけならこんなやり方もあります。

偶数だけを表示したい

偶数なので2で割ったときの余りを考えてもよいのですか、for文でループさせるとき変数を2ずつ増やせば
その分岐は必要なくなると思います。

2だけは出力されないようにする(つまり4、6、8、10と表示される)にはどのようなコードを
追加すればいいでしょうか?また4だけ、6だけの場合もご教示いただけると幸いです。

以下のコードでできると思います。

python

1target = int(input("表示したくない偶数は何ですか?\n")) 2max = 10 3for i in range(2,max + 1,2): 4 if i != target: 5 print(i)

投稿2018/09/06 01:07

編集2018/09/06 02:01
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

fuzzball

2018/09/06 01:09

>>できるだけこのソースを使って だそうですよ。
退会済みユーザー

退会済みユーザー

2019/06/03 04:05 編集

...
fuzzball

2018/09/06 01:25

見落としじゃないならなおさらダメでしょう。 少なくとも一言添えるべき。 条件を無視するのであれば低評価を覚悟して回答しましょう。
yukihisa

2018/09/06 01:53 編集

第三者から言わせていただくと、今回のケースでは、質問者は「できるだけこのソースを使って」と提示しているので「1から10までインクリメントしてもきちんと偶数が取れる」という趣旨のプログラムであると考えられ、それに対して「見たけど偶数だから2を足していけば」というのはいささか乱暴なのではないかな、と感じます。 僕は低評価付ける程ではないとは思いますが、完全にダメかどうかは置いておいて、「きっちりしてないといやだ」という理由でも低評価はつけられてしまうので「質問者の希望にそぐわない」という理由がある限りしょうがないかなと割り切るしかないですね。 「ソースはガラッと変わるけど偶数出すだけならこんなやり方も」とか断りいれていれば低評価付かなかったりするんじゃないですかね。。。結局は受け取り手の問題なんで難しいですが。
退会済みユーザー

退会済みユーザー

2019/06/03 04:05 編集

...
tonta5

2018/09/06 17:06

すみません。 低評価って私が付けた?んでしょうか? 今一上の回答の方達の会話の内容についていけてません。 初心者ですみません。
guest

0

ベストアンサー

適当な条件を追加してやればいいんじゃないかな。

python

1i = 0 2target = 2 3while True: 4 i = i + 1 5 6 if i > 10: 7 break 8 9 if (i % 2 == 1) or (i == target): 10 continue 11 12 print(i)

投稿2018/09/05 22:34

tachikoma

総合スコア3601

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

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

0

なるべく修正箇所を少なく。

python

1i = 0 2while True: 3 i = i + 2 #偶数なので+2でいい 4 if i > 10: 5 break 6 if i == 2: #ここの数字をskip 7# if i != 2: #!=にすればここの数字だけ表示 8 continue 9 print(i)

投稿2018/09/06 00:58

fuzzball

総合スコア16731

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

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

0

できるだけこのソースを使って、2だけは出力されないようにする(つまり4、6、8、10と表示される)にはどのようなコードを

追加すればいいでしょうか?また4だけ、6だけの場合もご教示いただけると幸いです。

Python

1if i in 取り除きたい値のタプル: 2 continue

これを print(i) より先に置けば良いです。

投稿2018/09/05 15:56

LouiS0616

総合スコア35660

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

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

tonta5

2018/09/05 16:17

早速のご回答ありがとうございます! もう1つ教えていただきたいのですが、2だけを表示したい場合、何を加えればいいでしょうか? もちろんif i > 10: break の10の所を3にすればいいかと思うのですが、このソースを使った場合どうすればいいでしょうか?
LouiS0616

2018/09/05 16:49 編集

2だけを表示したい場合ですか? その場合はループを使わないのが最もシンプルだと思いますが... 下限を設けるなら i の初期値を変え、上限を設けるなら脱出条件をいじり、間を抜かすなら私の回答のように continue を仕込むのが妥当かと。
LouiS0616

2018/09/05 16:50

まあ、次のように書けないことも無いですが... なんというか、無駄な感があります。 if i not in (2,): __continue
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問