so im trying to code a function where, the given angle must be less than 90 for degree and greater than 0. and also for a raidan, less than pi/2 and greater than 0.
this is my function
def is_valid_angle(s:str)-> bool:
"""
Returns True if and only if s is a valid angle. See the assignment
description and examples for more information regarding what's valid
Examples:
>>> 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
"""
if s[-1]=='r''R':
if s < (pi/2):
if s > 0:
return true
else:
if s[-1]=='d''D':
if s < 90:
if s > 0:
return true
I dont understand whats wrong
What I have tried:
def is_valid_angle(s:str)-> bool:
"""
Returns True if and only if s is a valid angle. See the assignment
description and examples for more information regarding what's valid
Examples:
>>> 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
"""
if s[-1]=='r''R':
if s < (pi/2):
if s > 0:
return true
else:
if s[-1]=='d''D':
if s < 90:
if s > 0:
return true
解决方案Try something like
import math
def is_valid_angle(s:str)-> bool:
v = float(s[:-1])
if s[-1]=='r' or s[-1] == 'R':
if v < (math.pi/2):
if v > 0:
return True
else:
if s[-1]=='d' or s[-1]=='D':
if v < 90:
if v > 0:
return True
return False