colbert6 发表于 2020-5-17 18:10:06

[::-1]的问题

代码如下:
num = int(input('num = '))
num_str = str(num)
num_change = num_str[::-1]
print(num_change)
如果我输入012345
输出的是54321
为什么如果第一位不是0,就会全部输出。
请教各位大神,这是怎么回事???

wp231957 发表于 2020-5-17 18:12:20

我这没啥问题啊

>>> s="012345"
>>> s[::-1]
'543210'
>>>   

qiuyouzhi 发表于 2020-5-17 18:12:59

因为你把它转换成整数了呀
整数的第一位不能是0,Python就给去掉了

wuqramy 发表于 2020-5-17 18:13:00

本帖最后由 wuqramy 于 2020-5-17 18:14 编辑

那是输入后int的问题
再说了int也没必要加
因为input的返回就是字符串
所以也没必要num_str这个变量
num = input('num = ')
num_change = num[::-1]
print(num_change)

wp231957 发表于 2020-5-17 18:13:38

num = int(input('num = '))
num_str = str(num)

你不觉得 本来就是字符串你转int之后再转str有些画蛇添足 吗

这样一转,,自然把前导0 给转没了

pyrhon萌新# 发表于 2020-5-17 18:13:56

num = int(input('num = '))
num_change = num_str[::-1]
print(num_change)

pyrhon萌新# 发表于 2020-5-17 18:15:35

如果是一个字符串,是可以的,但你这是整数,浮点型

pyrhon萌新# 发表于 2020-5-17 18:16:16

一个整数最大位是0就自动过滤了

Twilight6 发表于 2020-5-17 18:32:09

num = int(input('num = '))

-这里你把输入的数直接int()转为整数了,导致你输入012345 变成 12345

永恒的蓝色梦想 发表于 2020-5-17 18:34:46

楼上都是正解

_2_ 发表于 2020-5-18 08:44:37

在 int() 转换的时候,Python 会把 0 直接去掉

_2_ 发表于 2020-5-18 08:45:11

wp231957 发表于 2020-5-17 18:12
我这没啥问题啊

>>> s="012345"


人家用了 int() 但是你没有
页: [1]
查看完整版本: [::-1]的问题