Форум сайта python.su
0
Добрый вечер,ребят. Подскажите пожалуйста: хочу,чтобы сравнивая,в цикле считываемое имя элемента,сравнивалось с названием. :
if t[i] == b'CE' and t[j] == 'CE':
elif t[i]=="b'O'" and t[j]=="b'CE'":
Офлайн
103
Если я правильно понял, то “СЕ” это значение в шестнадцатеричной записи?
Если да, то нужно
if t[i] == b'\xce' and t[j] == 'CE':
Отредактировано terabayt (Фев. 26, 2014 21:36:51)
Офлайн
0
t = np.loadtxt("ceo2_sphere_20.xyz", usecols=[0], unpack = True, skiprows = 2, dtype = "str") x, y, z = np.loadtxt("ceo2_sphere_20.xyz", usecols=[1,2,3], unpack = True, skiprows = 2) for i in range(1 , len(x)): for j in range (0, i): print(i) rbuf = find_r (x[i]-x[j], y[i] - y[j], z[i] - z[j]) index = int (np.around(rbuf/dr)) if t[i] == b'CE' and t[j] == 'CE': hist1[index] += 2*ff1*ff1/ff_av/ff_av elif t[i]=="b'O'" and t[j]=="b'CE'": hist2[index] += 2*ff1*ff2/ff_av/ff_av elif t[i]=="b'O'" and t[j]=="b'O'": hist3[index] += (2*ff2*ff2)/ff_av/ff_av
Отредактировано Smushems (Фев. 27, 2014 12:10:43)
Офлайн
103
Это уже более понятно. Еще пример файла ceo2_sphere_20.xyz и я напишу Вам код и постараюсь объяснить!
Офлайн
0
Извините,что так по частям получается выкладывать свой вопрос.
То есть там первый столбец-это те саме символы,к которым мне нужно обратиться и сравнить.
Прикреплённый файлы:
ceo2_sphere_20.xyz (11,0 KБ)
Офлайн
857
print(i, j, t[i], t[j], type(t[i]), type(t[j])) if t[i] == b'CE' and t[j] == 'CE':
Smushemsне надо пробовать, надо посмотреть, что там
Пробовал ещё так:
Отредактировано py.user.next (Фев. 27, 2014 22:10:53)
Офлайн
0
Там CE,когда прошу вывести маси t,в нём элементы записаны,как “CE”.
Офлайн
857
вставь print, который в предыдущем сообщении, и вывод сюда скопируй
Офлайн
103
>>> A = 0 >>> B = 0 >>> for i in range(1 , len(x)): ... for j in range (0, i): ... if t[i] == 'CE' and t[j] == 'CE': ... A += 1 ... elif t[i] == 'O' and t[j] == 'O': ... B += 1 >>> A 3741 >>> B 21528
Офлайн