Проблема с ошибкой IndexError: 'int' object is not iterable

AlexandrMI

Новичок
Пользователь
Авг 14, 2020
8
0
1
Код;
import math
k=7
r=68
x_n=[27, 53, 44, 88, 35, 86, 92, 20, 10, 73, 81]

y_n=[97, 22, 57, 58, 37, 55, 34, 29, 80, 55, 71]

def R(x_i,y_i):
s = math.sqrt((x_i - x_0)**2 + (y_i - y_0) **2)
return s
for i in range(len(x_n)):
x_0 = x_n[k]
y_0 = y_n[k]
x_i = x_n
y_i = y_n
distance = math.sqrt((x_i - x_0)**2 + (y_i - y_0) **2)
n = 0
if (distance - r) <= 0:
n+=1
print(n)
# Как найти сумму полученных выражений n ?
 
Последнее редактирование:

floordiv

Пух
Команда форума
Модератор
Авг 14, 2020
21
7
3
sum(list) вернёт сумму элементов в list
 
  • Мне нравится
Реакции: Farruh и Student

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Оформи вопрос по правилам:
https://itfy.org/threads/kak-pravilno-sostavit-vopros-i-ne-poluchit-ban.1/

Нужно нормально составить заголовок вопроса и вставить нормально код. Иначе вопрос будет удален.
 

AlexandrMI

Новичок
Пользователь
Авг 14, 2020
8
0
1
Код:
import math
k=7
r=68  
x_n=[27, 53, 44, 88, 35, 86, 92, 20, 10, 73, 81]

y_n=[97, 22, 57, 58, 37, 55, 34, 29, 80, 55, 71]

def R(x_i,y_i):
    s = math.sqrt((x_i - x_0)**2 + (y_i - y_0) **2)
    return s
for i in range(len(x_n)):
    x_0 = x_n[k]
    y_0 = y_n[k]
    x_i = x_n[i]
    y_i = y_n[i]
    distance = math.sqrt((x_i - x_0)**2 + (y_i - y_0) **2)
    n = 0
    if (distance - r) <= 0:
       n+=1
    print(n)
    print (sum(n))
sum(list) вернёт сумму элементов в list
sum(list) вернёт сумму элементов в list
 

AlexandrMI

Новичок
Пользователь
Авг 14, 2020
8
0
1
Код:
import math
k=7
r=68 
x_n=[27, 53, 44, 88, 35, 86, 92, 20, 10, 73, 81]

y_n=[97, 22, 57, 58, 37, 55, 34, 29, 80, 55, 71]

def R(x_i,y_i):
    s = math.sqrt((x_i - x_0)**2 + (y_i - y_0) **2)
    return s
for i in range(len(x_n)):
    x_0 = x_n[k]
    y_0 = y_n[k]
    x_i = x_n[i]
    y_i = y_n[i]
    distance = math.sqrt((x_i - x_0)**2 + (y_i - y_0) **2)
    n = 0
    if (distance - r) <= 0:
       n+=1
    print(n)
    print (sum(n))
Нужно найти не сумму списка, а количество "единиц" в результате выполнения: print(n) - в данном примере - 6
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Нужно найти не сумму списка, а количество "единиц" в результате выполнения: print(n) - в данном примере - 6
Python:
k = 7
r = 68
x_n = [27, 53, 44, 88, 35, 86, 92, 20, 10, 73, 81]

y_n = [97, 22, 57, 58, 37, 55, 34, 29, 80, 55, 71]

def R(x_i, y_i):
    s = math.sqrt((x_i - x_0)**2 + (y_i - y_0) ** 2)
    return s

n = 0
for i in range(len(x_n)):
    x_0 = x_n[k]
    y_0 = y_n[k]
    x_i = x_n[i]
    y_i = y_n[i]
    distance = math.sqrt((x_i - x_0)**2 + (y_i - y_0) ** 2)
    if (distance - r) <= 0:
        n += 1
print(n)
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Python:
import math

k=7
r=68
x_n=[27, 53, 44, 88, 35, 86, 92, 20, 10, 73, 81]
y_n=[97, 22, 57, 58, 37, 55, 34, 29, 80, 55, 71]

def distance(x, y, x0, y0):
    s = math.sqrt((x - x0) ** 2 + (y - y0) ** 2)
    return s

x0, y0 = x_n[k], y_n[k]
n = 0

for x, y in zip(x_n, y_n):
    s = distance(x, y, x0, y0)
    if r >= s:
       n+=1

print(n)

Или еще проще:
Python:
import math

k=7
r=68 
x_n=[27, 53, 44, 88, 35, 86, 92, 20, 10, 73, 81]
y_n=[97, 22, 57, 58, 37, 55, 34, 29, 80, 55, 71]

def distance(x, y, x0, y0):
    s = math.sqrt((x - x0) ** 2 + (y - y0) ** 2)
    return s

x0, y0 = x_n[k], y_n[k]

n = sum([1 for x, y in zip(x_n, y_n) if r >= distance(x, y, x0, y0)])
print(n)
 

Форум IT Специалистов