• ベストアンサー

Python in演算子について

Pythonにin演算子があります。 これは、真偽値をとるため、if文等でつかわれています。 しかし、for文のin for i in a: aはオブジェクトでiはその要素ですが、この場合は真偽値をとりません。 この場合はin演算子としてのinとは考えないのが普通のような気がするのですが? 宜しくねがいます。

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

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

for ~ in … でワンセットの構文です。~と…を分けるためのキーワードでin演算子ではありません。 http://www.python.jp/doc/2.4/ref/for.html

関連するQ&A

  • python [ ] 演算子?

    pyhonで、文字列・リストのindex(要素)にアクセスするのに[ ]を使うが、これは演算子と考えて良いのか疑問に思った。 pythonは”数学的正確さ”を目指した言語である以上、演算・関数・メソッドのいずれかに含められるはずで、関数・メソッドでない以上演算子であると考えるのが普通だと思うが、いかがでしょうか? indexにアクセスするものとの説明があるが、[ ]がどこに分類されるかの説明が見受けられない。 いかがなものでしょうか?

  • 演算子is... 初学者 Python 3

    毎度おせわさまです。Pythonに関する質問です。 今回は演算子isについて。 ネット上の初心者むけサイトで独学に励んでいるのですが、演算子isは、左辺と右辺のオブジェクトが同じオブジェクトだった場合には「True」を返します、とありました。 変数を、 str1 = "555" str2 = "555" として、 print str1 == str21 #1 print str1 is str2 #2 とすると #1は、オブジェクトの値が同じなのでTrueを返すが、#2はオブジェクトが同一ではないのでFalseを返す、と。 なるほど、なるほど。と思いながら実際に書いてみると、#1も#2もTrueを返すのですが・・・・・ バージョンの違いでしょうか?なんでしょうか???今使ているのはPython2.7です。 ご回答よろしくお願いいたします。

  • プログラミング(Python)について

    「整数 a_1, a_2, a_3, a_4, a_5 が半角スペース区切りで与えられるので、改行区切りにして 5 行で出力してください。」というPythonの問題です。なぜmapを用いた場合は、for i in range(1000)ではなくて、for a_i in aにしなければならないのか分かりません。 そもそもa_iの意味も分かりません... 調べてもよく分かりませんでした。

  • 演算子のオーバーロードについて

    []演算子のオーバーロードでつまづきました。 代入文で左辺、右辺、両方ともに[]演算子を使う場合 int &operator[](int i) { return a[i]; } int &operator[]のようにして、戻り値を参照型にしています。 このとき、main関数内で、 ob1[2]=ob2[2];(ob1,ob2はoperator[]関数が関連付けられているクラスのオブジェクト) のようにすると、左辺(ob1)にちゃんと代入されています。 つまりこの場合、main()関数内で、 (int &)型の(this->a[i])(元のオブジェクトは、ob1) に (int &)型の(this->a[i])(元のオブジェクトは、ob2)を代入しているのでしょうか?

  • python

    pythonについての質問です。 def S_sa(k=1) for step in xrange(k) : if step == 0 : print 'a' else print 'b' というコードがあって、なぜかprint aが実行されるのはなぜでしょうか? xrangeのreturnは1ではないのでしょうか?

  • Pythonについて

    Pythonで〇〇から〇〇の時に実行、 ということはできますか? if文を使うと if a <= 100: このように100以下のみ実行となりますが、 if a <= 100: if a >= 90: print("〇") else: print("×") else: print("×") aが90以上100以下の時、「◯」、それ以外の時「×」を出力するには上のような構文にすればいいですか? この構文より簡単な構文、もしくはより良い構文がある場合は教えてください。

  • python超初心者です(3時間目)。pythonで以下のようなランダ

    python超初心者です(3時間目)。pythonで以下のようなランダム数列を生成させるにはどうしたらいいのでしょうか? 最終結果のイメージ(16進数8桁の数列x20行): 0 : c39a29eb 1 : b26cc9bb 2 : 4c494e47 ... 19: 93c85836 以下のようにコードを組んでみたのですが、 > tmp = ws.join(list) > TypeError: sequence item 0: expected string, int found のようなエラーが出てしまいます。どうやら数字を連結しようとしてるのでダメなのかな?と思っています。 ======================================== #! /usr/bin/python import random list = [] ws = "" for i in range (20): print i, ":", for j in range(8): list.append(random.randint(0,15)) tmp = ws.join(list) print tmp list = [] tmp = "" ======================================== ※ printでは必ずスペースが入ってしまうので、それを嫌う場合配列に入れて、要素を連結させなくてはならない、とwebにあったので、その方向で試してみました。 ※ また、ここではあくまでrandom を使用し、一文字(0,1,2,...E,F)づつ出力させたいと思っています。 なお、perlでは以下のように書くことができたのですが... ======================================== #! /usr/bin/perl for($i=0; $i<20; $i++){ printf ("%-02s: ", $i); for($j=0; $j<8; $j++){ printf("%x", int(rand(15)) ); } print "\n"; } ======================================== ※ んー第二言語としてpythonを学習してみていますが道のり険しそうです(やっぱrubyにしようか)... 宜しくお願い致します。

  • Cでの論理演算子

    行列要素を入力するとき0要素が多いのでまとめて0と書きたいと思っています。たとえば、A[i](i=1~10)でi=1,2,3以外でA[i]=0と書きたいとき、 for(i=1;i<11;i++){   if(i!=(1||2||3)) A[i]=0 } と書いたのですが、実行してA[i]を表示させるとすべてのA[i]が 0になっていました。 どこが間違っているのかどなたか教えてください。

  • Pythonの関数について

    Pythonの関数について質問です。以下の関数はどのような処理を行なっていますか? intents = json.loads(open('data/Common.json', encoding='utf-8').read()) def getResponse(ints, intents_json): tag = ints[0]['intent'] list_of_intents = intents_json['intents'] for i in list_of_intents: if(i['tag']== tag):    #ランダムに要素を1つだけ抽出 result = random.choice(i['responses']) break else: result = "You must ask the right questions" return result

  • python3

    def walk(): for i in range(hor): if i == hor_now: print("*", end="") for h in range(var - 1): print("〇",end ="") print() else: for h in range(var): print("〇",end ="") print() print(walk) 普通に出力することはできるんですが、defでユーザー定義関数にすると<function walk at 0x000001541505B9D0>こうなってしまいます、なぜでしょうか?

専門家に質問してみよう