1 / 1 / 0
Регистрация: 10.06.2016
Сообщений: 41
1

Ошибка в функции

28.09.2017, 07:54. Показов 690. Ответов 1

Здравствуйте, имеется код с функцией поиска центра полигона (сначала ищется площадь, потом центр)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Point:
 
   def __init__(self, x,y):
       self.x = x
       self.y = y
 
class Contour:
 
   def __init__(self, a):
       self.pts = a
 
   def area(self):
       area=0
       pts = self.pts;
       nPts = len(pts)
       j=nPts-1
       i = 0
       for point in pts:
           p1=pts[i]
           p2=pts[j]
           area+= (p1.x*p2.y)
           area-=p1.y*p2.x
           j=i
           i+=1
 
       area/=2;
       return area;
 
   def centroid(self):
     pts = self.pts;
     nPts = len(pts)
     x=0
     y=0
     j=nPts-1;
     i = 0
 
     for point in pts:
         p1=pts[i]
         p2=pts[j]
         f=p1.x*p2.y-p2.x*p1.y
         x+=(p1.x+p2.x)*f
         y+=(p1.y+p2.y)*f
         j=i
         i+=1
 
 
     f=self.area()*6
     return Point(x/f,y/f)
К ней приложение с заданными координатами, но в нем выдается ошибка:
Traceback (most recent call last):
File "<input>", line 2, in <module>
NameError: name 'p' is not defined

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#Example usage:
 
coords = [(832,1093),(810,1121),(787,1156),(827,1173),(838,1167),(858,1157),(873,1132),(873,1107),(832,1093)]
points = []
 
for coord in coords:
   point = Point(p[0],p[1])
   coords.append(point)
 
poly = Contour(coords)
 
centroidPoint= poly.centroid()
 
print centroidPoint.x
print centroidPoint.y
Новичок в питоне, подскажите, что тут может быть не так?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2017, 07:54
Ответы с готовыми решениями:

А почему ошибка, что функции print и read не определены в функции main()?
Что-то не понимаю. Они определены в заголовочном файле. А подчеркивается красным что нет.... ...

Ошибка формирования отчета в СКД: ошибка при попытке вычисления значения агрегатной функции
Решая свою задачку, нарыла формулу, в которой вылазит ошибка. И не могу понять.. Вот формула...

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов"
#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;map&gt; #include &lt;Windows.h&gt; #include...

Ошибка "Присваивание имени функции вне тела этой функции" при наличии двух одноименных функций в одном контексте
Данный код: type T = class public function F: integer; begin F := 2; ...

1
33 / 30 / 16
Регистрация: 21.01.2014
Сообщений: 101
28.09.2017, 09:14 2
Цитата Сообщение от AnnRise Посмотреть сообщение
Новичок в питоне, подскажите, что тут может быть не так?
Всё как он вам и написал "NameError: name 'p' is not defined" - переменной 'p' у вас нет, а вы пытаетесь передать её в качестве аргумента в строке 7.
Насколько я понял ваш код должно быть так:
Python
1
2
3
4
5
6
7
8
coords = [(832,1093),(810,1121),(787,1156),(827,1173),(838,1167),(858,1157),(873,1132),(873,1107),(832,1093)]
points = []
 
for coord in coords:
    point = Point(coord[0], coord[1])
    points.append(point)
 
poly = Contour(points)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2017, 09:14
Помогаю со студенческими работами здесь

График функции и ошибка "Неверное число параметров функции"
Program aaa; Uses GraphABC; Var x,y:integer; Begin For x:=0 to 360 do Begin Y:=Round(...

Ошибка в функции!
Доброго времени суток! Написал функцию которая возращает True если строка Sample (это строка из...

Ошибка в функции
Помогите найти ошибку в фунциях. Сама программа без них работает правильно, ошибка в самих...

Ошибка в функции
Подскажите, пожалуйста, что здесь неверно? import pygame def Keyboard_Input(): global...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru