|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。
输入输入一行,包括两个整数x、y,以一个空格分开,表示坐标(x,y)。输出输出一行,如果点在正方形内,则输出yes,否则输出no。样例输入
1 1
样例输出
yes
- temp = input().split()
- a,b = int(temp[0]),int(temp[1])
- if -1 <= a <= 1 and -1 <= b <= 1:
- print('yes')
- else:
- print('no')
复制代码
- s=input().split()
- x=float(s[0])
- y=float(s[1])
- if x>1 or x<-1 or y>1 or y<-1:
- print("no")
- else:
- print("yes")
复制代码
第一段代码我写的,判断ab同时满足条件才输出,第二段代码网上看到的,理论上if x>1 or x<-1 or y>1 or y<-1大部分情况不需要跑完就跳到else结果,这样效率更高?是吗?
而我写的and,代码必须完全跑完,理论上效率比第二段高,以后优先第二段代码这种写法??
and 和 or 都有短路逻辑,只要一次条件不满足 True,即当条件为 False 时
就直接短路后续条件,返回 False,除非 and 遇到的都是 True ,就需要将所有条件全部判断完
但 or 只要有一次条件为 True ,就短路后续判断,若 or 条件一直返回 False ,那么就需要全部判断完
只是较区间来说,你是判断点是在正方形内区间,而第二段代码是判断点是在正方形外
假设坐标点在 -100, 100 这个区间,那么你的点面积只占了一小部分,绝大多数都是正方形外的点
|
|