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

为何Python切片[:3]未包含首数字?幸运票脚本问题求助

解决幸运票判断的问题

嘿,我一眼就瞅出你代码里的核心问题啦——你现在根本没在计算每一位数字的和,而是直接把前三位、后三位当成一个整数来处理了!这才导致了你的困惑,咱们一步步理清楚:

为什么你会觉得“切片丢了首数字”?

其实切片ticket[:3]是完全正确的!比如输入090234,ticket[:3]拿到的是字符串"090"。但你把它转成int之后,int("090")会自动忽略前导零,变成90——这是整数类型的特性,不是切片的锅。

而你说“去掉int的话字符串比较不对”,那是因为"090"和"234"本身就是不同的字符串,当然不会相等,但这也不是正确的判断方式呀,我们要比的是数字和,不是字符串或者整数值。

修正后的代码逻辑

正确的做法应该是:把前三位的每个数字单独拿出来,转成整数后相加;后三位同理,最后比较两个和是否相等。

这里有个小细节:input()返回的本身就是字符串,所以你不需要再用str(ticket)转换,直接用就行。

完整的修正代码如下:

# Save the input in this variable
ticket = input()

# Add up the digits for each half
half1_sum = sum(int(digit) for digit in ticket[:3])
half2_sum = sum(int(digit) for digit in ticket[3:])

# Uncomment below to check the sums if needed
# print(half1_sum)
# print(half2_sum)

# Check if it's a lucky ticket
if half1_sum == half2_sum:
    print("Lucky")
else:
    print("Ordinary")

测试你的例子

当输入090234时:

  • 前三位是'0'、'9'、'0',和为0+9+0=9
  • 后三位是'2'、'3'、'4',和为2+3+4=9
    两个和相等,所以会输出Lucky,完全符合你的预期~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:28:11