我对Python比较新,所以我的代码非常简单 我有一个项目来编写使用矩形规则近似积分的代码,然后是梯形规则:
a = float(input('Lower limit ---> '))
while True:
b = float(input('Upper limit ---> '))
if b > a:
break
elif a == b:
print('Integral = 0.')
else:
print('Invalid input.')
N = float(input('Number of integral divisions ---> '))
h = float((b - a) / N)
print('For the integral in the range {} to {} with {} divisions, the step size is {}.'.format(a,b,N,h))
def f(x):
return(np.exp(-x) * sin(x))
summation = (f(a) + f(b))
for points in range(a, N - 1):
summation = summation + f(a + (points * h))
I = h * summation
print(I)
接近结束时,我尝试使用for循环从初始限制到减1步长数 我已将此定义为浮动,但我不断收到错误
TypeError:' float' object不能解释为整数。
任何想法如何解决这个问题?
答案 0 :(得分:0)
function ajax_genre_filter() {
$query_data = $_GET;
$genre_terms = ( $query_data[ 'genres' ] ) ? explode( ',', $query_data[ 'genres' ] ) : false;
$book_args = array(
'post_type' => 'book',
'posts_per_page' => 2,
'year' => $genre_terms,
);
$book_loop = new WP_Query( $book_args );
if ( $book_loop->have_posts() ):
while ( $book_loop->have_posts() ): $book_loop->the_post();
get_template_part( 'content' );
endwhile;
echo $query_data;
else :
get_template_part( 'content-none' );
endif;
wp_reset_postdata();
die();
}
,a
和b
是浮点数。 N
不允许其参数为浮点数,因此您需要将它们转换为range
:
int
答案 1 :(得分:0)
错误消息明确指出您正在使用需要整数的浮点数。
阅读range()
的文档 - 您认为什么导致能够用浮动做什么?
在1和2之间有无限的浮点数 - 如果你考虑浮点数的分辨率仍然很多 - python应该如何能够将它们全部作为范围给你?
答案 2 :(得分:0)
当您收集a
和N
个变量时,可以在float
中对其进行转换:
a = float(input('Lower limit ---> '))
N = float(input('Number of integral divisions ---> '))
然后您尝试从a迭代到N,但我们假设a=0.42
和n=3.14
。
你觉得python的表现如何?
print([x for x in range(0.42,3.14)]) # Raise TypeError: 'float' object cannot be interpreted as a
所以你必须将你的浮点转换成整数(a = int(a), N = int(N)
):
print([x for x in range(0,3)]) # prints [0, 1, 2]
或者您可以使用numpy,并定义2个浮点值以及它们之间的步骤:
import numpy as np
np.arange(0.0, 1.0, 0.1)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])