Python象限判断2.0
(此题为Python123上面的题目)
象限判断(2.0)
描述
象限(Quadrant)是平面直角坐标系(笛卡尔坐标系)中里的横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,x,y轴为分界线。右上的称为第一象限,左上的称为第二象限,左下的称为第三象限,右下的称为第四象限。坐标轴上的点不属于任何象限。
依次输入坐标值(x,y),输出坐标的象限(Q1,Q2,Q3,Q4)。如果坐标位于坐标轴上,则直接输出x与y的值。直到输入任意一个字母时停止并输出“EXIT”(本题测试暂不考虑输入其他符号的情况)
tips: x.isalpha()可以判断x是否是字符,函数返回逻辑值True或False。
输入格式
0
5
6
7
B
输出格式
x=0
y=5
Q1
EXIT
下面是我写的代码,提交后还是显示有一组数据WA,请问还有哪些部分是存在问题的?
def quadrant(x, y):
if x > 0 and y > 0:
return "Q1\n"
elif x < 0 and y > 0:
return "Q2\n"
elif x < 0 and y < 0:
return "Q3\n"
elif x > 0 and y < 0:
return "Q4\n"
elif x == 0 and y != 0:
return f"x={x}\ny={abs(y)}\n"
elif x != 0 and y == 0:
return f"x={abs(x)}\ny={y}\n"
elif x == 0 and y == 0:
return f"x={abs(x)}\ny={y}\n"
else:
return "EXIT"
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
temp=''
while 1:
x = input()
if is_number(x):
x=int(x)
elif not is_number(x) and x.isalpha:
break
y = input()
if is_number(y):
y=int(y)
elif not is_number(y) and y.isalpha:
break
temp=temp+(quadrant(x, y))
if temp=='':
pass
else:
print(temp,end='')
print('EXIT')
代码中存在一个问题,就是在判断坐标是否为字母时使用了`x.isalpha`和`y.isalpha`,应该改为`x.isalpha()`和`y.isalpha()`。因为`isalpha`是一个函数,需要添加括号来调用。
修改后的代码如下:
def quadrant(x, y):
if x > 0 and y > 0:
return "Q1\n"
elif x < 0 and y > 0:
return "Q2\n"
elif x < 0 and y < 0:
return "Q3\n"
elif x > 0 and y < 0:
return "Q4\n"
elif x == 0 and y != 0:
return f"x={x}\ny={abs(y)}\n"
elif x != 0 and y == 0:
return f"x={abs(x)}\ny={y}\n"
elif x == 0 and y == 0:
return f"x={abs(x)}\ny={y}\n"
else:
return "EXIT"
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
temp=''
while 1:
x = input()
if is_number(x):
x=int(x)
elif not is_number(x) and x.isalpha():
break
y = input()
if is_number(y):
y=int(y)
elif not is_number(y) and y.isalpha():
break
temp=temp+(quadrant(x, y))
if temp=='':
pass
else:
print(temp,end='')
print('EXIT')
这样修改后的代码应该可以正确执行,并输出正确的结果。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 isalpha后面要加括号:isalpha()
页:
[1]