2011-11-11 11 views
0

Pythonの変数が文字列(名前)か数字かどうかを知る必要があります。グラフの度合いをチェックしたいのですが、 "i" iteratorが文字列の中の数字か文字列の中にあるかどうかを知る必要があり、最後にグラフの度合いを示します。Pythonの変数と文字列

このコードには何か問題がありますか?ここで

import csv, sys 
import networkx as nx 

def ministro_lei(): 

    stf = csv.reader(open('resultset.csv', 'rb'), delimiter=',', quotechar='|') 
    eds = [(i[0],i[1],i[2]) for i in stf] 
    G = nx.DiGraph(nome='ministro_lei') 
    G.add_weighted_edges_from(eds) 
    for i in G.degree(): 
     if isinstance(i,str): 
      print (" This is a name:", i) 
     elif isinstance(i, int): 
      print ("This is a number: ", i) 
     else: 
      raise ValueError 
    return G, eds 

ministro_lei =()

アウトの例をいくつかある:

"MIN. OCTAVIO GALLOTTI",53,109 
    "MIN. SYDNEY SANCHES",13,109 
    "MIN. JOAQUIM BARBOSA",101,108 

してください任意のヘルプ? iintた場合",".join(i)はTypeError例外を返していたので、 おかげ

+2

に役立ちます願っていますか?少なくとも私にとってあなたは何を望んでいるかは完全には不明です。 –

+1

メソッド 'ministro_lei'の最後の' 'return''は2つの変数を返します。しかし、ループ内には単一の変数を返す2つの 'return(i)'行があります。この構造体は、forループの最初の繰り返しを過ぎることはありません。これは、あなたの望むことですか? – eumiro

+0

私はリストです。 intまたは文字列ではありません –

答えて

2

彼らは文字列でなければなりません。

しかし、一般的には、typeを使用し、変数の型を見つけるために:

print(type(i)) 
+0

私はリストのように私に見えます。文字列または整数ではありません。 –

+0

@joelgoldstick:Hm。私の答えを投稿した後、コードが変更されました。 – unutbu

1

私はあなたが求めているもので、より正確なのだろう、これは

>>> s = 'hello' 
>>> type(s) 
<type 'str'> 
>>> type(s) is str 
True 
>>> n = 6 
>>> type(n) 
<type 'int'> 
>>> type(n) is int 
True 
関連する問題