• 締切済み

Python:ifについて

Python初心者です。 ある変数(a,b,c)で条件A(a<b+c and b<a+c and c<b+a)があるとする。 ・条件Aを満たさない場合:0 ・条件Aを満たしたうち、  条件Bを満たす:1  条件Cを満たす:2  条件Dを満たす:3 このように「Aがtrueの中で、別の条件を満たす場合~」とういうのはどのように書けばいいでしょうか。

  • Python
  • 回答数1
  • ありがとう数0

みんなの回答

  • f272
  • ベストアンサー率46% (8010/17118)
回答No.1

こんな感じ。 if A: ____if B: ________print('1') ____if C: ________print('2') ____if D ________print('3') else: ____print('0')

関連するQ&A

  • Pythonのreadlineについて

    最近Pythonのプログラミングを始めたのですが、Pythonのプログラミングについて以下のことを行いたいのですが、やり方が分からず困っております。 Pythonで行いこと 1.textファイルに例えば以下のようにいくつかの係数を入力しておきます。 a:0.5, b:0.8, c:0.9 2.上記のテキストファイルを読み込み、pythonの変数a、b、cに値を格納したいと考えています。 色々検索している中でテキストファイルの読み込みはf=open(xxx.txt)で読み込み、各行の読み込みはreadline()というコマンドでできることは分かったのですが、lines=f.readline()とした後、その"line"の中からaが0.5、bが0.8という数字部分だけを切り出してプログラム中の変数に渡す方法が分からない状態です。 皆様のお知恵を拝借いたしたく、宜しくお願いいたします。

  • 【ExcelVBA】IF条件を満たしているのに、IF条件のところで止まってしまう

    Sub test1() 変数1 = IsEmpty(Range("C1")) If Range("A1") > 0 And Range("B1") = 0 And 変数1 = True Then   test2 End If End Sub 止まったときのデバッグでの表示は Range("A1")は「100」(セルの中身) Range("B1")は「0」(セルの中身) 変数1はRange("C1")がエラー表示なので「True」 すべての条件を満たしているのですが、 IF条件のところで止まってしまいます。 (IF条件のところの1行が黄色くハイライトになっている状態) 止まったデバッグの後に、F5を押して実行させると、 IF条件の続きから実行されて、test2が実行されて処理が終了します。 何で、IF文のところで一度止まってしまうのかわかりません。

  • pythonのメゾッドの整合性について

    こんばんは。 pythonを勉強し始めましたが理解できない部分があって質問させて頂きます。 プログラム、特にオブジェクト指向をまだよく理解していないのである程度初心者向けの回答をお願いします。 pythonにおいて文字列はオブジェクトであり、 >>> strA = "python" >>> print (strA) python >>> print (strA.upper()) PYTHON >>> print (strA) python のように使われるメゾッドが存在しています。 これはオブジェクト自体を変化させるのではなく、今回の場合ではオブジェクトがupper()されたオブジェクトを返しています(まちがっていませんよね?)。 そのため、strA自体を変化させるには >>> strA = strA.upper() >>> print (strA) PYTHON のようにする必要があると理解していました。 ここで新しいオブジェクトlistを用いた時 >>> tl = ['A','B','C','D','E','F'] >>> print (tl) ['A', 'B', 'C', 'D', 'E', 'F'] >>> print(tl.reverse()) None >>> print(tl) ['F', 'E', 'D', 'C', 'B', 'A'] >>> listA.reverse() となります。文字列から類推すると >>>tl = ['A','B','C','D','E','F'] >>>print (tl.reserve()) ['F', 'E', 'D', 'C', 'B', 'A'] >>>print(tl) ['A','B','C','D','E','F'] >>>tl =tl.reserve() >>>print (tl) ['F', 'E', 'D', 'C', 'B', 'A'] のような振る舞い方を行うのが"正しい"と思うのですがなぜ違うのでしょうか?

  • IF関数についておしえてください。

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

  • 条件に寄って、ifの中身が変わる時の書き方。

    条件に寄って、ifの中身が変わる時の書き方。 条件として3つのチェックボックスがあります。 □ 10<A □ 5>B □ 1<C チェックが入っている条件に合ったデータのみを抽出します。 例えば、 ■ 10<A □ 5>B □ 1<C で有れば、Aの値が10以上の条件に合ったものを抽出 ■ 10<A ■ 5>B ■ 1<C であれば、「Aが10以上」かつ「Bが5以下」かつ「Cが1以上」の条件にあったデータを抽出する。 というのを作りたいのですが… チェックボックスの付け方として、8パターンありますが、どうしても複雑になってしまいます。もっとシンプルに書けないのでしょうか?アドバイスお願いします。 for ($n=1; $n<=100; $n++){ if ($_POST[A]==true){ if($_POST[B]==true){ if($_POST[C]==true){ if(${data.$n}[A]>10 and ${data.$n}[B]<5 and ${data.$n}[C]>1){ print_r(${data.$n}); }//すべてにチェックが入っている場合 } else { if(${data.$n}[A]>10 and ${data.$n}[B]<5){ print_r(${data.$n}); }//AとBにチェックが入っている } } else { if($_POST[C]==true){ if(${data.$n}[A]>10 and ${data.$n}[C]>1){ print_r(${data.$n}); }//AとCにチェックが入ってる } else { if(${data.$n}[A]>10){ print_r(${data.$n}); }//Aにチェックが入っている } } } else { if($_POST[B]==true){ if($_POST[C]==true){ if(${data.$n}[B]<5 and ${data.$n}[C]>1){ print_r(${data.$n}); }//BとCにチェックが入っている } else { if(${data.$n}[B]<5){ print_r(${data.$n}); }//Bにチェックが入っている } } else { if($_POST[C]==true){ if(${data.$n}[C]>10){ print_r(${data.$n}); }//Cにチェックが入っている } else { print_r(${data.$n});//チェックなし } } } }

    • ベストアンサー
    • PHP
  • エクセルのIF関数の使い方

    エクセル初心者で、多分基本的なことかと思いますが、教えてください セルAとBには、それぞれ1から10まの数字が入っています セルCとDに数字があります この場合、A>=5及びB>=8なら、セルC+D、そうでなければC-Dという式を作りたいのですが、条件が二つになると、どのように書いたらいいのか、良くわかりません     

  • IF構文で行き詰りました

    ・・A・・B・・C・・D・・E 1・○・・・・・・・・・・・○ 2・×・・・・・・・・○・・○ Q1 A1またはB1またはC1に「○」がある場合にE1に○を表示する。 Q2 A2,B2,C2が「×」または空白の場合(○でない場合)で、Dが○の場合にE2に○を表示する。 IFとANDを駆使してみたのですが、頭の中がこんがらがってしまいました。 あまり難しい関数を使わずによろしくお願いします。

  • pythonにCでのexternはありますか

    python初心者です。 a.py, b.pyがあります。 <a.py> import b bar=123 b.foo() <b.py> def foo  global bar  print bar 実行すると"123"が表示されず失敗します。 Cだとexternすれば外部参照で希望通りに成功します。 CとPythonは違うことは知っていますが、Pythonで実現できないでしょうか。 又は類似の手段はありますか。

  • ifについて

    今日始めた初心者です。 変数Aと変数Bが真のときAを出力したいのですが、 下記のように書いた場合、(自分の中では)偽のはずなのにAが出力されてしまいます。 なぜでしょうか。 $A = abc; $B = abcd; if ($A == $B){ print "$A" ; }

    • ベストアンサー
    • Perl
  • EXCEL IF文で最大値を出す

    最大値はMAXで出せ!といわれると元も子もないですが(^^;) IF文でなんとかならないの?という・・・はい、変わり者のAB型です まあそれはさておきA1,A2,B1,B2の4つを比較したいと思います (4項は全て違う値です) とりあえず =IF(AND(A1>B1),A1,B1) =IF(AND(A2>B2),A2,B2) これをC1,C2に代入し =IF(AND(C1>C2),C1,C2) ただこれでは項目が増えるごとに膨大な代入するセルが必要です ここで変数をn、mとし =IF(AND(n=(AND(A1>B1),A1,B1))>(m=(IF(AND(A2>B2),A2,B2)),n,m) とすれば大丈夫そうなのですが変数を宣言する方法が ネットを探索してもうまく見つけれません。 もしくは別の方法がありそうですが詳しい方助言を いただけないでしょうか?

専門家に質問してみよう