Вот один из способов сделать это.
Пояснение : try
и except
проверит, является ли строка кроме последним символом числом или нет.Это делается с помощью s[:-1]
, который возвращает строку от первого символа до второго последнего символа.Если это не так, например.в 85.3.7D
, 85.3.7
не является допустимым числом, оно вернет False
.Если это так, то он проверит операторы if
, чтобы проверить радианы или градусы и диапазон угла.В зависимости от операторов if
будет возвращено соответствующее значение (True/False
).
import numpy as np
def is_valid_angle(s):
try:
float(s[:-1])
except ValueError:
return False
if (s[-1]=='r' or s[-1]=='R') and (0 < float(s[:-1]) < np.pi/2):
return True
elif (s[-1]=='d' or s[-1]=='D') and (0 < float(s[:-1]) < 90):
return True
else:
return False
>>> is_valid_angle("85.3d")
True
>>> is_valid_angle("85.3.7D")
False
>>> is_valid_angle("90d")
False
>>> is_valid_angle("0.001r")
True
>>> is_valid_angle("1.5R")
True