鱼C论坛

 找回密码
 立即注册
查看: 1708|回复: 2

[已解决]Python象限判断2.0

[复制链接]
发表于 2023-11-26 15:47:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

(此题为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,请问还有哪些部分是存在问题的?

  1. def quadrant(x, y):  
  2.     if x > 0 and y > 0:  
  3.         return "Q1\n"  
  4.     elif x < 0 and y > 0:  
  5.         return "Q2\n"  
  6.     elif x < 0 and y < 0:  
  7.         return "Q3\n"  
  8.     elif x > 0 and y < 0:  
  9.         return "Q4\n"  
  10.     elif x == 0 and y != 0:  
  11.         return f"x={x}\ny={abs(y)}\n"  
  12.     elif x != 0 and y == 0:  
  13.         return f"x={abs(x)}\ny={y}\n"
  14.     elif x == 0 and y == 0:  
  15.         return f"x={abs(x)}\ny={y}\n"  
  16.     else:  
  17.         return "EXIT"  
  18.   
  19. def is_number(s):
  20.     try:
  21.         float(s)
  22.         return True
  23.     except ValueError:
  24.         pass
  25.     try:
  26.         import unicodedata
  27.         unicodedata.numeric(s)
  28.         return True
  29.     except (TypeError, ValueError):
  30.         pass
  31.     return False
  32. temp=''
  33. while 1:  
  34.     x = input()
  35.     if is_number(x):
  36.         x=int(x)
  37.     elif not is_number(x) and x.isalpha:
  38.         break
  39.     y = input()
  40.     if is_number(y):
  41.         y=int(y)
  42.     elif not is_number(y) and y.isalpha:
  43.         break
  44.     temp=temp+(quadrant(x, y))
  45.    
  46. if temp=='':
  47.     pass
  48. else:
  49.     print(temp,end='')
  50. print('EXIT')
复制代码


最佳答案
2023-11-26 16:24:46
isalpha后面要加括号:isalpha()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-26 15:48:02 | 显示全部楼层
代码中存在一个问题,就是在判断坐标是否为字母时使用了`x.isalpha`和`y.isalpha`,应该改为`x.isalpha()`和`y.isalpha()`。因为`isalpha`是一个函数,需要添加括号来调用。

修改后的代码如下:
  1. def quadrant(x, y):  
  2.     if x > 0 and y > 0:  
  3.         return "Q1\n"  
  4.     elif x < 0 and y > 0:  
  5.         return "Q2\n"  
  6.     elif x < 0 and y < 0:  
  7.         return "Q3\n"  
  8.     elif x > 0 and y < 0:  
  9.         return "Q4\n"  
  10.     elif x == 0 and y != 0:  
  11.         return f"x={x}\ny={abs(y)}\n"  
  12.     elif x != 0 and y == 0:  
  13.         return f"x={abs(x)}\ny={y}\n"
  14.     elif x == 0 and y == 0:  
  15.         return f"x={abs(x)}\ny={y}\n"  
  16.     else:  
  17.         return "EXIT"  
  18.   
  19. def is_number(s):
  20.     try:
  21.         float(s)
  22.         return True
  23.     except ValueError:
  24.         pass
  25.     try:
  26.         import unicodedata
  27.         unicodedata.numeric(s)
  28.         return True
  29.     except (TypeError, ValueError):
  30.         pass
  31.     return False
  32. temp=''
  33. while 1:  
  34.     x = input()
  35.     if is_number(x):
  36.         x=int(x)
  37.     elif not is_number(x) and x.isalpha():
  38.         break
  39.     y = input()
  40.     if is_number(y):
  41.         y=int(y)
  42.     elif not is_number(y) and y.isalpha():
  43.         break
  44.     temp=temp+(quadrant(x, y))
  45.    
  46. if temp=='':
  47.     pass
  48. else:
  49.     print(temp,end='')
  50. print('EXIT')
复制代码

这样修改后的代码应该可以正确执行,并输出正确的结果。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-26 16:24:46 | 显示全部楼层    本楼为最佳答案   
isalpha后面要加括号:isalpha()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-6 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表