You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于客户编号分配楼栋与楼层的Python程序问题求助

客户编号分配楼栋与楼层的程序问题解答

嗨!我来帮你看看哪里出问题啦~作为刚学Python的11年级学生,你已经迈出了很棒的一步,咱们一点点梳理:

你的代码里的错误点

你写的这两行计算有问题:

X = (Customer - 1 % 5)
Y = (Customer // 5)
  1. 运算符优先级问题:Python里%的优先级比-高,所以1 % 5会先计算,结果是1,那X就变成了Customer - 1,这显然不是正确的楼层计算逻辑。比如客户编号6,按规则应该是楼层0,但你的代码会算出X=5,这就错了。
  2. 楼栋计算的小偏差:Y = Customer //5对于客户编号1来说,1//5=0是对的,但如果是客户编号5,5//5=1,转成字符会是B,但实际上客户编号5应该属于A栋楼层4,这里就出错啦。

正确的解法

根据题目要求,我们只需要调整计算逻辑,用对算术运算和类型转换就可以:

# 获取客户编号
customer_num = int(input("Customer number : "))

# 计算楼层:(编号-1)取余5,得到0-4的楼层号
floor = (customer_num - 1) % 5

# 计算楼栋:(编号-1)整除5,得到0-9的索引,再加65转成ASCII字符
block = chr(((customer_num - 1) // 5) + 65)

# 输出结果
print(f"\n\nYour Block Will Be: {block}")
print(f"Your Floor Will Be: {floor}")

验证示例

  • 客户编号1:(1-1)%5=0,(1-1)//5=0→chr(0+65)=A,对应*[楼栋A 楼层0]*,正确。
  • 客户编号3:(3-1)%5=2,(3-1)//5=0→A,对应*[楼栋A 楼层2]*,正确。
  • 客户编号7:(7-1)%5=1,(7-1)//5=1→chr(1+65)=B,对应*[楼栋B 楼层1]*,正确。
  • 客户编号5:(5-1)%5=4,(5-1)//5=0→A,对应*[楼栋A 楼层4]*,正确。

这样就完全符合题目要求啦,而且只用了算术运算和类型转换,没有用if-else~

内容的提问来源于stack exchange,提问作者Kavya Kinjalk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:03:03