• ベストアンサー

python

もしも...と.t もしくは .oもしくは .nもしくは.q もしくは.sもしくは.fもしくは.jが同じ行に含まれていたらという条件分岐を書きたいのですが以下のようでは上手くいきません。どのように書いたらよいでしょうか。よろしくお願いします。 if "..."in line and ".t "or ".o"or ".n"or".q "or".s"or ".f "or ".j "in line:

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

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

とりあえず if "..." in line and (".t" in line or ".o" in line or ".n" in line or ".q" in line or ".s" in line or ".f" in line or ".j" in line): でいけるのではないかと思いますが。

dfadsfadad
質問者

お礼

ありがとうございます。 おかげさまで解決いたしました。 簡単な質問に答えていただきありがとうございました。

関連するQ&A

  • エクセルでどうしてもVALUEになります。

    宜しくお願いします。 ちょっと長いですが N18  に =IF(AND(OR(D18="",D18=0),E18="",H18="",J18=""),"",D18+E18-F18-H18-J18-K18-M18) X18 に =IF(AND(OR(N18="",N18=0),O18="",R18="",T18=""),"",N18+O18-P18-R18-T18-U18-W18) Y18 に 数値 25,000を入れると AH18 の =IF(AND(OR(X18="",X18=0),Y18="",AB18="",AD18=""),"",X18+Y18-Z18-AB18-AD18-AE18-AG18) がVALUEになります。 どうしたら、数式の意味を変えずにエラー回避できるのでしょうか?

  • ひとつのCGIファイルに複数のページの動作を管理

    CGI超初心者です。 HTMLファイルにいくつかラジオボタンを設置し、 これとこれを選んだらこのページを開く、 次のページで、 これとこれを選んだらこのページを開く・・・ というような構成でサイトを作っています。 CGIで条件分岐させていますが 書き方が良く分からないので教えてください。 第一ページ用の条件分岐CGIの下に、第二ページ用の条件分岐CGIを書きましたが うまく動いてくれません。 どちらかを削除するとうまく動きます。 ひとつのCGIファイルに、 複数のページの条件分岐をまとめて書くことは出来ないのでしょうか? ページごとに別々のCGIファイルを作成しなければならないですか? 以下具体例です。 ---第一ページ.html--- <form name="q1" action="test.cgi" method="POST" > ・・・ <input type="submit" value="送信する" /> </form> ---第二ページ.html--- <form name="q2" action="test.cgi" method="POST" > ・・・ <input type="submit" value="送信する" /> </form> ---CGI--- #====================下準備====================== if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $str, $ENV{'CONTENT_LENGTH'}); } else { $str = $ENV{'QUERY_STRING'}; } foreach $i (split('&', $str)) { $i =~ tr/+/ /; $i =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; ($t1, $t2) = split('=', $i); $FORM{"$t1"} = $t2; } #===================変数の設定=================== $q11 = $FORM{'q11'}; $q12 = $FORM{'q12'}; #=================条件分岐_質問1================= if ($q11 eq "q11_a") { print "Location: ./ba1.html\n\n"; } elsif ($q11 eq "q11_c") { print "Location: ./ba2.html\n\n"; } ・ ・ ・ else { print "Location: ./go2.html\n\n"; } #===================変数の設定=================== $q21 = $FORM{'q21'}; $q22 = $FORM{'q22'}; #=================条件分岐_質問2================== if ($q21 eq "q21_a") { print "Location: ./co3.html\n\n"; } elsif ($q22 eq "q22_a") { print "Location: ./ba4.html\n\n"; } ・ ・ ・ else { print "Location: ./go3.html\n\n"; }

    • ベストアンサー
    • CGI
  • 20名で1対1で話し合う研修を6回でやる方法

    20名で行う研修で1対1で話し合う研修を合計6回でやろうとしています。 10人が誰かと話し合い、合計59組の組み合わせを6回の間で やる方法がどうしてもわかりません。 どなたか教えてください。 ちなみに組み合わせは決まっており(以下のとおりです)その組み合わせを6回以内に効率よくやりたいと思ってます。 ちなみに3回まではアナログ的なやり方で10組ずつ話し合える組み合わせはわかったのですが、 それ以降が頭がぐちゃぐちゃになってわかりません。 組み合わせは以下のとおりです。 AさんとGさん、BさんとJさん、CさんとMさん、LさんとEさん、PさんとQさん、IさんとNさん、GさんとRさん、GさんとSさん、LさんとFさん、 MさんとOさん、TさんとNさん、DさんとEさん、EさんとSさん、AさんとTさん、BさんとHさん、CさんとFさん、JさんとTさん、HさんとMさん、 FさんとQさん、TさんとOさん、AさんとNさん、BさんとEさん、CさんとKさん、JさんとKさん、HさんとKさん、DさんとTさん、IさんとOさん、 GさんとPさん、LさんとNさん、MさんとPさん、EさんとQさん、AさんとSさん、BさんとPさん、CさんとOさん、JさんとPさん、HさんとSさん、 DさんとKさん、IさんとPさん、LさんとSさん、AさんとRさん、BさんとRさん、CさんとQさん、JさんとRさん、HさんとRさん、DさんとSさん、 IさんとQさん、LさんとOさん、BさんとQさん、DさんとOさん、LさんとRさん、JさんとMさん、HさんとIさん、DさんとGさん、IさんとKさん、 GさんとFさん、MさんとNさん、EさんとFさん、FさんとTさん、KさんとNさん の計59通りです。 お力添え何卒よろしくお願いしますm(_ _)m この回答とプラスその算出方法も合わせて教えていただけると幸いです。

  • python

    game.py class janken: def rsp(): import random count = 0 i = 0 hands = [] bk_hands=["ぐー","ちょき","ぱー"] f = open("rsp.txt","w") f.write("ぐー\nちょき\nぱー")・・・ mein.py mport game #各機能のクラスのインスタンスを作成する j = game() #無限ループで対話をしていく #ユーザーが終了コマンドを入力するまで繰り返す while True: #機能呼び出しのコマンドを表示する #じゃんけんの他にも機能があれば、2,3と増やしていくべし print('何をしますか?') print('1: じゃんけんする') print('9: 終了する') #入力されたコマンドに応じて機能を呼び出す act = int(input('整数で番号を入力:')) #1が入力されたらじゃんけんのメソッドを呼び出す if act == 1: j.rsp()・・・ この場合にmein.py", line 4, in <module> j = game() TypeError: 'module' object is not callable と出るのですが、なぜ呼び出してくれないのでしょうか

  • JavaScriptの配列について

    var old_array = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var new_array = Array('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); のような配列があり、 abcと入力するとbcd DEFと入力するとEFG 012と入力すると!23 というようなものを作りたいのですがどうすればいいでしょうか。

  • エクセルマクロについての質問です。

    エクセルマクロについての質問です。  excel2003 os=WindowsXP の環境で、下記のような条件のシートを作りたい。  1.セルの一部にデータの入力規則を "データ→入力規則" で1から999までしか入力できない様に設定している。  2.セルの入力が下記条件以外は色を付ける。   1)数字の変更がなかった場合   2)未記入欄に空白を入力した場合    2についてVBAでプログラミングしてみたのですが入力規則違反があった場合にUNDOのところで"UNDOメソッドは失敗しました。"  のエラーになってしまいます。  解決策がわからず困っています。ご教授頂ければ助かります。プログラムの一部は下記です。   icolcnt = Selection.Columns.Count irowcnt = Selection.Rows.Count icolalf = ActiveCell.Column If icolcnt = 1 And irowcnt = 1 And icolalf = 5 Then   f_target = False n_target = Target Application.EnableEvents = False Application.Undo o_target = Target If Trim(o_target) = "" And Trim(n_target) = "" Or Trim(o_target) = Trim(n_target) Then Debug.Print "n_target = ", n_target, o_target f_target = False Else Target.Value = n_target f_target = True End If ' Debug.Print "n_target = ", n_target, o_target Application.EnableEvents = True If f_target = True Then t_target.Interior.ColorIndex = xlNone For Each crng In t_target With crng With .Interior .ColorIndex = 8 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With End With Next End If End If

  • エクセルでの行のまとめ方

    エクセルで、データの塊を1行にまとめたいと思っています。 例) ┌─┬─┬─┐ │A │B │C │ ├─┼─┼─┤ │D │E │F │ ├─┼─┼─┤ │  │  │  │ ├─┼─┼─┤ │G │H │I │ ├─┼─┼─┤ │J │K │L │ ├─┼─┼─┤ │  │  │  │ ├─┼─┼─┤ │M │N │O │ ├─┼─┼─┤ │  │  │  │ ├─┼─┼─┤ │  │  │  │ ├─┼─┼─┤ │P │Q │R │ ├─┼─┼─┤ │S │T │  │ ├─┼─┼─┤ この様に並び替えたいのです。 ┌─┬─┬─┬─┬─┬─┐ │A │B │C │D │E │F │ ├─┼─┼─┼─┼─┼─┤ │G │H │I  │J │K │L │ ├─┼─┼─┼─┼─┼─┤ │M │N │O │  │  │  │ ├─┼─┼─┼─┼─┼─┤ │P │Q │R │S │T │  │ ├─┼─┼─┼─┼─┼─┤ つまり、データの1行目の後に2行目を貼り付ける。これをデータの塊分で処理を行いたいです。 データが3行あれば、データの1行目の後に2行目、2行目の後に3行目を貼り付けるみたいなイメージです。 ※1:データの塊と言うのは、上記で言うと、[A~F]、[G~L]、[M~O]、[P~T]になります。 ※2:列の数は上記では3列ですが、3列以上存在しています。 ※3:データの塊は例では2行になっていますが、データによっては2行以上存在する事があります。 ※4:但し、例えばデータの塊が2行であれば、その他のデータの固まりも2行ごとになります。 ※5:データが空白になっている場合があります。 ※6:データの塊と塊の行の間には、必ず空白行が存在しています。 下記のようにマクロ作って見ましたがうまく動きません。 解決策や、他にこのようにした方が良いよと言うのがあれば教えて下さい。 Sub TEST() '-------- x = 5 '-------- '-------- i1 = 26 '-------- o = 1 '行数チェック Do Until Cells(o, 1).Value = "" t = 1 '列数 s = i1 + 1 Do Until t = i1 + 1 Cells(o, s).Value = Cells(o + 1, t).Value Cells(o, s + i1).Value = Cells(o + 2, t).Value Cells(o + 1, t).Value = "" Cells(o + 2, t).Value = "" s = s + 1 t = t + 1 Loop o = o + x + 1 Loop

  • 行の自動カウントと複数の関数式をマクロで実行したい

    EXCELの初心者です。今後の事も考えて、 マクロで右側のセルの値($J$4~$V$4から下方へ数万行)が入っている行数を自動カウントさせて、複数の関数もマクロの中に記載して、 『値形式』の値を張り付けと、自動で左側の各項目に集計した数値が表示されるようにしたいのですが、マクロに全く慣れておらず、マクロを書く為に使用するsheetの種類も分かっていません。 行数を自動カウントし、複数の関数もマクロの中に記載して集計を 自動計算するマクロの書き方をどなたか教えて頂けないでしょうか。 値の集計はマクロは使っておらず、 右側のセル($J$4~$V$4から下方へ数万行)に『値形式』で値が張り付けて、左側のセルに項目毎の合計を下記のような複数(48行)の計算式を入れ込んむ事で求めています。 <$B$11のセルに入れている関数式> =SUMPRODUCT((($Q$4:$Q$10000=B$10)*($S$4:$S$10000<>"自主運用"))/COUNTIFS($Q$4:$Q$10000,$Q$4:$Q$10000&"",$S$4:$S$10000,$S$4:$S$10000&"",$T$4:$T$10000,$T$4:$T$10000&"")) <$B$15のセルに入れている関数式> =SUMPRODUCT((($Q$4:$Q$10000=B$14)*($S$4:$S$10000<>"自主運用"))/COUNTIFS($Q$4:$Q$10000,$Q$4:$Q$10000&"",$S$4:$S$10000,$S$4:$S$10000&"",$O$4:$O$10000,$O$4:$O$10000&"")) <$B$21のセルに入れている関数式> =SUMPRODUCT((($Q$4:$Q$10000=$B$20)*($S$4:$S$10000=$B$19))/COUNTIFS($Q$4:$Q$10000,$Q$4:$Q$10000&"",$S$4:$S$10000,$S$4:$S$10000&"",$T$4:$T$10000,$T$4:$T$10000&"")) <$B$24のセルに入れている関数式> =SUMPRODUCT((($Q$4:$Q$10000=$B$23)*($S$4:$S$10000=$B$22))/COUNTIFS($Q$4:$Q$10000,$Q$4:$Q$10000&"",$S$4:$S$10000,$S$4:$S$10000&"",$T$4:$T$10000,$T$4:$T$10000&"")) 2月分の集計時は、右側の値の行は9753行でしたが、 3月分の集計時は、右側の値の行は10648行となり10000行を超えていた為、上記の関数式では正しい集計を出す事が出来ませんでした。 今回は置換を利用して、以下のように関数中の$10000→$20000へ変更しました。 $B$11 =SUMPRODUCT((($Q$4:$Q$20000=B$10)*($S$4:$S$20000<>"自主運用"))/COUNTIFS($Q$4:$Q$20000,$Q$4:$Q$20000&"",$S$4:$S$20000,$S$4:$S$20000&"",$T$4:$T$20000,$T$4:$T$20000&"")) $B$15 =SUMPRODUCT((($Q$4:$Q$20000=B$14)*($S$4:$S$20000<>"自主運用"))/COUNTIFS($Q$4:$Q$20000,$Q$4:$Q$20000&"",$S$4:$S$20000,$S$4:$S$20000&"",$O$4:$O$20000,$O$4:$O$20000&"")) 説明が上手く表現出来ず申し訳ありませんが、どうぞ宜しくお願い致します。

  • [python] 関数から配列を戻すには?

    グローバル変数(配列)の値を変えたいと思います。 ------------- line = [] def tmp_read(self, *out_line): f = open('tmp.txt') lines2 = f.readlines() # 1行毎にファイル終端まで全て読む(改行文字も含まれる) f.close() # lines2: リスト。要素は1行の文字列データ for line in lines2: print line, print *out_line = lines2 return *out_line tmp_read(self, *line) print line     ← 配列Lineの内容を確認する ------------- この「line」には、文字列を含む配列を入れる予定です。 lines2で得られた値を、戻せば出来そうな気もしますが巧くいきません。 どのように修正すれば酔いか、教えて頂けませんか。

  • 学校の課題で

    sin,cos,tanを0~90度を出せっていわれたのですが #include <stdio.h> #include <math.h> main() { int N; float x; char *line="-------------------------------------\n"; printf(line); printf("%3s %5s %10s %13s \n", "kakudo", "sin","cos","tan"); for(N=0; N<=90; ++N) { x=N*3.14159265358979323846264338327950288/180; if(N%10==1) { printf(line); } if(N=90) { tan(N)= ; } printf("%3d %7.6f %10.6f %13.6f \n", N, sin(x), cos(x), tan(x)); } printf(line); } で出ません。 間違いは if(N=90){tan(N)= ;} の部分なのですが、どうすれば出せますか?

専門家に質問してみよう