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

负整数首位数字提取:Python代码调试求助(不使用isdigit())

问题分析与解决

你的代码处理负数时出错,核心原因是:当输入负整数时,b[:2]会把负号和第一位数字一起转换成负整数,违背了题目中“符号请勿计入”的要求,导致计算结果错误。

解决思路(不使用isdigit())

我们只需要跳过负号,提取数字部分的首位即可,有两种简洁的实现方式:

方法1:通过判断正负提取对应索引

直接判断数字的正负,正数取字符串第0位,负数取第1位(跳过负号):

num = int(input())
num_str = str(num)
# 提取首位数字
first_digit = int(num_str[1]) if num < 0 else int(num_str[0])
# 提取末位数字
last_digit = int(num_str[-1])
print(first_digit + last_digit)

方法2:利用绝对值统一处理

将数字转为绝对值后再转字符串,这样无论正负都能得到无符号的数字字符串,直接提取首尾即可:

num = int(input())
abs_num_str = str(abs(num))
first_digit = int(abs_num_str[0])
last_digit = int(abs_num_str[-1])
print(first_digit + last_digit)

验证示例

  • 输入-1234:首位数字是1,末位是4,输出5
  • 输入9876:首位数字是9,末位是6,输出15
  • 输入-4321:首位数字是4,末位是1,输出5

这两种方法都完全符合题目要求,且不需要使用isdigit()函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:12:39