Переменные и строки Python

#python #types

#python #типы

Вопрос:

Мне нужно знать, является ли переменная в Python строкой (именем) или числом. Я хочу проверить степень графичности, однако мне нужно знать, является ли итератор «i» числом внутри строки или именем внутри строки, показывающим степень графичности в конце.

Что-то не так в этом коде?

 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
  

Пожалуйста, любая помощь?
Спасибо

Комментарии:

1. Не могли бы вы быть более точными в том, что вы спрашиваете? По крайней мере, для меня совершенно неясно, чего вы хотите.

2. Ваш «обычный» return в конце метода ministro_lei возвращает две переменные. Однако внутри циклов есть еще две return (i) строки, которые возвращают отдельные переменные. Эта структура никогда не пройдет дальше первой итерации цикла for. Это то, чего вы хотите?

3. I — это список. Не является int или строкой

4. Это верно, действительно список .. спасибо, Джоэл..

5. Если один из ответов подходит для вас, вы должны принять его (нажмите на галочку приветствия рядом с ним).

Ответ №1:

Они должны быть строками, поскольку ",".join(i) если бы i были int , они вернули бы TypeError.

Но, в общем случае, чтобы узнать тип переменной, используйте type :

 print(type(i))
  

Комментарии:

1. мне кажется, что i — это список. Не строка и не целое число.

2. @joelgoldstick: Хм. Код изменился после того, как я опубликовал свой ответ.

Ответ №2:

Я надеюсь, что это поможет

 >>> s = 'hello'
>>> type(s)
<type 'str'>
>>> type(s) is str
True
>>> n = 6
>>> type(n)
<type 'int'>
>>> type(n) is int
True