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

如何在Python函数中用切片反转卡号最后四位数字?

解决Python切片反转卡号最后四位的问题

问题背景

你需要完成的任务:使用步长为-1的切片反转card_number最后四位数字的顺序,初始代码如下:

def verify_card_number(card_number):
    sum_of_odd_digits = 0
    card_number_reversed = card_number[0:4:2:]
    print(card_number_reversed)

你尝试了以下代码但未得到正确结果:

def verify_card_number(card_number):
    sum_of_odd_digits = 0
    card_number_reversed = card_number[-1:0:4:2:]
    print(card_number_reversed)

问题分析

你尝试的代码存在两个核心问题:

  • 切片语法错误:Python的切片格式为[起始索引:结束索引:步长],不允许出现多个冒号;
  • 索引与步长逻辑错误:没有正确定位到卡号的最后四位区间,步长设置也不符合需求。

正确实现方案

方案1:分步切片(先取最后四位,再反转)

先通过-4:的切片获取最后四位数字,再用步长为-1的切片反转顺序:

def verify_card_number(card_number):
    sum_of_odd_digits = 0
    # 先截取最后四位,再反转
    last_four_reversed = card_number[-4:][::-1]
    print(last_four_reversed)

方案2:一步到位的切片

直接设置起始索引为-1(卡号最后一位)、结束索引为-5(倒数第五位,切片不包含该位置)、步长为-1,这样会从最后一位往前取4个字符,自然实现反转:

def verify_card_number(card_number):
    sum_of_odd_digits = 0
    # 直接切片获取反转后的最后四位
    last_four_reversed = card_number[-1:-5:-1]
    print(last_four_reversed)

示例验证

假设card_number的值为"12345678",两种方案都会输出"8765",即原最后四位"5678"的反转结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:37:43