出现问题:
给出4个整数A,B,C,D,它们可以按
排列
A B
C D
则此表的表值为
(A/C-B/D)
如果我们顺时针旋转90度,那么我们有
C A
D B
则表的值为
C/D -A/B
给出4个整数,实现一个函数表(A,B,C,D),该表返回 顺时针旋转的最小次数,最大值为 表值。
实施
实现功能table(A, B, C, D)
,
其中A,B,C和D是整数,而0
示例
table(1, 2 , 3 ,4) = 3
这是我的代码
def table(a, b, c, d):
x = [[a, b, c, d], [c, a, d, b], [d, c, b, a], [b, d, a, c]]
ans = []
for count in range(4):
if (x[count][2] == 0 or x[count][3] == 0) and x[count][0] != 0 and x[count][1] != 0:
y = -(x[count][0] / x[count][1])
elif x[count][2] != 0 and x[count][3] != 0 and (x[count][0] == 0 or x[count][1] == 0):
y = x[count][2] / x[count][3]
elif x[count][2] == 0 and x[count][3] == 0 and x[count][0] == 0 and x[count][1] == 0:
y = 0
else:
y = x[count][2] / x[count][3] - x[count][0] / x[count][1]
ans.append(y)
print(ans)
temp = ans
for count in range(4):
z = temp[0]
temp.remove(temp[0])
if z not in temp:
return ans.index(max(ans)) + 1
return 0
import time
x = time.time()
print(table(0, 0, 0, 0))
print(time.time() - x)
运行时,将引发以下错误:
Traceback (most recent call last):
[0, 0, 0, 0]
File "C:/Users/lisha/PycharmProjects/untitled/lab 5 qn 2.py", line 27, in <module>
print(table(0, 0, 0, 0))
File "C:/Users/lisha/PycharmProjects/untitled/lab 5 qn 2.py", line 22, in table
return ans.index(max(ans)) + 1
ValueError: max() arg is an empty sequence
Process finished with exit code 1
有人可以指出错误吗?
答案 0 :(得分:0)
我还没有遍历您的代码逻辑,但是我很确定问题出在哪里
@transaction.atomic
def create(self, request, *args, **kwargs):
with transaction.atomic():
try:
data = request.data
serializer = EventSerializer(data=data)
if serializer.is_valid(raise_exception=True):
serializer.save()
// recheck , this loop have input is all users in json
for user in data.get('users'):
user_serializer = UserSerializer(data=user)
if user_serializer.is_valid(raise_exception=True):
user_serializer.save()
return Response({"status": True, "results": "Evento registrado correctamente"},
status=status.HTTP_201_CREATED)
except ValidationError as err:
return Response({"status": False, "error_description": err.detail}, status=status.HTTP_400_BAD_REQUEST)
您正在设置temp来引用与ans相同的对象,因此它们是相同的。我的意思是他们实际上是一样的。那么当您从温度中删除项目时,您也会从ans中删除项目,这是副作用。为了解决这个问题,我建议使用
temp = ans
这将创建temp = ans[:]
的副本并将其分配给temp,然后当您从ans
中删除时,ans不会改变。
您可以使用temp
关键字so来检查是否要变量引用同一对象
is
但是
temp = ans
print(temp is ans) # True
另一件事要注意的是,这是因为列表是可变的。但是int,str和tupples并不是这样,所以有区别。