🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Python

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

Q&A

解決済

2回答

413閲覧

if 構文を使っていたのですがうまく機能しません。

chiho

総合スコア1

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Python

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

0グッド

0クリップ

投稿2021/03/13 03:56

値段の合計を出したい

宿題でif 構文を作っています。わかる方ご教授お願いいたします。
イメージ説明

if...else

試したこと

price1 = int(input('Enter the first item’s sale price:')) question1 = input('Do you have another item? (y/n)') #question1 の答えがyかn意外がったらerror1を表示させたい! if question1 != 'y' or question1 != 'n': error1 = input('Invalid entry, please enter (y/n)') elif error1 == 'y' or error1 == 'Y': price2 = int(input('Sale price: ')) elif price2 < 0 or price is range(a,z): error2 = input('Invalid entry, please enter a positive sale price:') elif error2 < 0 or error2 is range(a,z): error3 = input('Invalid entry, please enter a positive sale price:') elif error > 0 : item1 = input('Do you have another item? (y/n)' ) elif item1 == 'n': print('Your total is ', price1 + price2) else: print('\n')

補足情報

question1 = input('Do you have another item? (y/n)')にnやy以外を入れたらerror1 = input('Invalid entry, please enter (y/n)')を表示させたい。しかし、nやyを入れても表示されてしまう。
また、error1 = input('Invalid entry, please enter (y/n)')にyやYを入れてもprice2 = int(input('Sale price: '))が表示されない。

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

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

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

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

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

guest

回答2

0

しかし、nやyを入れても表示されてしまう

'n'であれば、question1 != 'y' なので表示されます。
'y'であれば、question1 != 'n' なので表示されます。

if question1 != 'y' and question1 != 'n':
に変更しましょう。

投稿2021/03/13 04:12

ppaul

総合スコア24670

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

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

chiho

2021/03/13 05:26

ご丁寧にありがとうございます!
guest

0

ベストアンサー

elif の意味が理解できていないものと思われます。

python

1if (条件1): 2 処理1 3elif (条件2): 4 処理2

上記のコードを次のような動作と想定していると思われますが
「条件1が成立する場合は処理1、更に条件2が成立する場合は処理2」

動作は次になります。
「条件1が成立する場合は処理1,条件1が成立しない場合かつ条件2が成立する場合は処理2」


(追記)「複数条件を書かなくてはいけない時はどうしたら良いのでしょうか」
「条件1が成立する場合は処理1、更に条件2が成立する場合は処理2」であれば

python

1if (条件1): 2 処理1 3 if (条件2): 4 処理2

投稿2021/03/13 04:05

編集2021/03/13 05:05
xail2222

総合スコア1508

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

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

chiho

2021/03/13 04:46

なるほど!ありがとうございます。 今回のように複数条件を書かなくてはいけない時はどうしたら良いのでしょうか
xail2222

2021/03/13 05:06

追記しました。少し私のミスも修正しました。 あとppaulさんの指摘もその通りですので、参考に。
xail2222

2021/03/13 05:27

if a != 'y' or a != 'n': 処理1 は「aが'y'でない、又はaが'n'でない」なのでaがどんな文字列でも常に成立します。 「「aが'y'または aが'n'」ではない」であれば直訳すれば if not (a = 'y' or a = 'n'): 処理1 になりますし、意味は同じですが 「「aが'y'でなく、そしてaが'n'でもない」であれば直訳すれば if a != 'y' and a != 'n': 処理1 となります。
chiho

2021/03/13 05:27

素晴らしいです。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問