Я следующий код, который продолжает производить ошибки:Функция в Python продолжает возвращаться ненужные поплавки
import math
def pen_checker(number):
print(number)
for x in range(1, number):
y = x*(3*x-1)/2
if(number == y):
return True
return False
def pen_calculator(n):
x = n*(3*n-1)/2
return x
def main():
pen1 = 1
pen2 = 1
pen1_val = 0
pen2_val = 0
crt_sum = 0
crt_dif = 0
MAX_CAP = 1000
for pen1 in range(1, MAX_CAP):
pen1_val = pen_calculator(pen1)
for pen2 in range(1, MAX_CAP):
pen2_val = pen_calculator(pen2)
z = pen1_val + pen2_val
if(pen_checker(z)== True and pen_checker(fabs(pen1_val-pen2_val))== True):
print(fabs((pen1_val-pen2_val)))
main()
По какой-то причине, функция pen_calculator()
кажется вернуть поплавки. Я знаю, что технически, нет типов переменных в Python, но прежде чем я вызвать функцию, все печатается:
А потом :
1.0
1,0
2,0
(Это был только я пытаюсь выяснить, что это неправильно, это не написано в коде)
Обычно, это не было бы никаких проблем, но для- цикл в функции pen_checker
требует, чтобы «стоп» был целым числом, поэтому код не будет работать. Как я могу это решить?
* «технически, в Python нет переменных типов» * - что? Если вы хотите целое число, просто используйте 'int'. – jonrsharpe
Он прав, переменные не имеют типов. значения имеют. –
"но для цикла в функции pen_checker требуется, чтобы« стоп »был целым числом« почему? – Jasper