我有一个包含多个函数的脚本,其中一个函数负责ArcMAP中的方向距离遍历,并进行测试以确保输入遵循Degrees Minutes Seconds的标准指南。它检查北部和东部西部就好了,但是当它达到方向的实际数值时,当我输入N88-12-9E并且进入我的条件语句“秒不能大于60”时它会失败。 “
代码从字符串的开头和结尾剥离N / S E / W,然后用拆分删除' - '。留下3个数字的列表。在上面的例子中,它留下['88','12','9'],其中9是秒,12分,88度。
以下是带有if语句的小代码:
if dmSplit[1] >= '60' or dmSplit[-1] >= '60':
while dmSplit[1] >= '60':
print("\nMinutes must be less than 60.")
bearing = str(raw_input("Enter the bearing (N/Sdeg-min-secE/W): "))
bearing = string.upper(bearing)
dms = bearing.strip('NSEW')
dmSplit = dms.split('-', 2)
while dmSplit[-1] >= '60':
print("\nSeconds must be less than 60.")
bearing = str(raw_input("Enter the bearing (N/Sdeg-min-secE/W): "))
bearing = string.upper(bearing)
dms = bearing.strip('NSEW')
dmSplit = dms.split('-', 2)
在上面,它在进入第一次迭代之前处理原始的分割/条带。我不明白为什么当我输入有效的DMS轴承时,它会响应我的错误检查......
答案 0 :(得分:0)
您正在比较字符串,就好像它们是整数一样。
例如:
'11' > '9'
将评估为False
,因为它们是字符串,不会作为整数进行比较。
那么,你怎么解决呢?
只需使用整数,或在比较之前将字符串转换为int:
int('11')
注意:两个操作数都必须是整数才能获得所需的结果。