Найти - Пользователи
Полная версия: Возведение в степень, имеющую вид десятичной дроби
Начало » Python для новичков » Возведение в степень, имеющую вид десятичной дроби
1 2
angeline
Использую модуль xlrd для считывания:
 veter = float(wind.row_values(d+2)[1])
 print veter
Получаю ошибку:
ValueError: could not convert string to float:
0.0
1.0
2.0
3.0
4.4
6.3
8.5
12.0


В чем я не права?
Считывает и выводит на экран все верно, но почему числовые данные воспринимаются не в числовом формате?


Из любопытства добавила строку:
 print type(veter)
Получаю прежнюю ошибку и будто бы нет никаких проблем:
<type ‘float’>
<type ‘float’>
<type ‘float’>
<type ‘float’>
<type ‘float’>
<type ‘float’>
<type ‘float’>
<type ‘float’>

Как так может быть?
FishHook
А вы не кастуйте к флоату, посмотрите для начала что такое
 print wind.row_values(d+2)[1], type(wind.row_values(d+2)[1])
angeline
FishHook
А вы не кастуйте к флоату, посмотрите для начала что такое

На самом деле оно дает абсолютно тот же результат и тип float…
Только это все равно не решает мою изначальную проблему.

У меня есть функция, которая выполняется с ошибкой:
 def modul_skor():
    h = 150
    vys_flyugera = 10
    u_j = veter * ((h / vys_flyugera) ** e_j)
    return u_j
e_j тоже считывается из файла, и его я тоже перед отправкой данного сообщения ещё раз проверила, тип float
File “Dpyto_p/rassey_modul_prizem_sk.py”, line 13, in modul_skor
u_j = veter * ((h / vys_flyugera) ** e_j)
TypeError: can't multiply sequence by non-int of type ‘float’

Update. Ладно, я туплю, если правильно понимаю, то надо e_j перевести в тип int, но это будет некорректным, т.к. e_j является десятичной дробью (к примеру, 0,06), хотя ошибка пропадает.
Неужели совсем нет способа возвести в степень, имеющую вид десятичной дроби?
FishHook
Нет никаких проблем с дробной степенью
angeline
FishHook
Нет никаких проблем с дробной степенью
Почему тогда я в ответ получаю вышеописанную ошибку?…
Хмм.. может ли это быть из-за используемой версии python 2.7?
FishHook
angeline
Почему тогда я в ответ получаю вышеописанную ошибку?…
Да откуда ж я знаю? Вы ничего не дали для фиксации проблемы. У вас в стартовом посте одно, потом оказывается, что на самом деле другое. Дайте минимальный тестовый пример возникновения ошибки. Дайте код, который я могу вставить в ИДЕ, запустить и увидеть эксепшен. Мне нужно его проанализировать дебаггером и понять. А так, заказывайте гадалку с хрустальным шаром.
angeline
FishHook
Да откуда ж я знаю?
может ли это быть из-за используемой версии python 2.7?


Вот корявенькая заготовка:
 def modul_skor():
    h = 150
    vys_flyugera = 10
    u_j = sr_god_veter * (pow((h / vys_flyugera), (e_j ))
    return u_j
python/rassey/results_modul.xls')

update. Нет, от версии питона эта беда не зависит =/
FishHook
angeline
Вы издеваетесь что ли?
В вашем примере вообще нет операции **
angeline
FishHook
В вашем примере вообще нет операции **
То есть Вы хотите сказать, что функция pow() и ** - не являются тождественными функциями возведения в степень?

Что ж, извольте. Результат не изменится:
 def modul_skor():
    h = 150
    vys_flyugera = 10
    u_j = sr_god_veter * ((h / vys_flyugera) ** e_j )
    return u_j
FishHook
Замечательно, а теперь дайте то, что я просил.
Мне не интересно, какие конкретно эксель-книги вы открываете. У вас же ошибка не в экселе, у вас ошибка в функции modul_skor. В этой функции не хватает двух переменных, чтобы эту функцию можно было запустить безо всего остального шлака, который к проблеме не относится и в данной теме он вообще не нужен. Покажите мне функцию, которой не нужны модули для работы с экселем, файлы и все остальное прочее. Вам нужно дать минимальный код, который воспроизводит ошибку.

я вас прошу вот об этом
 def modul_skor():
    h = 150
    vys_flyugera = 10
    e_j = 2.45
    sr_god_veter = 25
    u_j = sr_god_veter * ((h / vys_flyugera) ** e_j )
    return u_j
print(modul_skor())
Работает? Тогда смотрите, что именно у вас в каждой переменной используемой в этой функции. Хотя бы принтом. Возникает ошибка - показывайте.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB