Python 3函数参数验证

2024-09-29 21:58:01 发布

您现在位置:Python中文网/ 问答频道 /正文

怎么了?第一个参数-我需要int type和其他float的边数。你知道吗

import math
def polygon(num_of_edges, radius, startx, starty, turn_angle):
        try:
            num_of_edges = int(num_of_edges)
            radius = float(radius)
            startx = float(startx)
            starty = float(starty)
            turn_angle = float(turn_angle)
        except ValueError:
            print("All parameters not corect!")
        else:
            turn_angle = 90 - turn_angle 
            pirmais_angle = math.radians(turn_angle)
            points = []
            for i in range(num_of_edges):
                angle = 2*math.pi*(-i)/num_of_edges+pirmais_angle 
                x = math.cos(angle)*radius+startx
                y = math.sin(angle)*radius+starty
                points.append((x, y))
            return points

Tags: of参数typemathfloatnumpointsturn
1条回答
网友
1楼 · 发布于 2024-09-29 21:58:01

当我使用建议的输入运行时,我得到

polygon(a,3,e,0,0)

NameError: name 'a' is not defined

这里的问题是,它甚至没有进入你的功能。Python已经知道a是未定义的,它甚至拒绝调用polygon。所以多边形中的测试甚至没有尝试过。你知道吗

如果它能够进入函数,您仍然会得到一个NameError,而不是一个ValueError。所以你的except测试错误。你知道吗

注意:对于所有错误输入,不能保证获得特定的错误类型。例如,exmaple float(1+1j)(复数的浮点)引发TypeError。你知道吗

相关问题 更多 >

    热门问题