py看考场 发表于 2019-3-15 01:41

Python五种方法实现字符串反向输出

本帖最后由 py看考场 于 2019-3-17 22:45 编辑

这是假期练习python时的一个简单小例子,关键就是看实现的不同思路吧。。

方法1: for 循环

letter_num = list(input('please input some characters:'))
list_num = []
def convert_order():
    for i in range(len(letter_num)):#根据列表的长度决定遍历的次数
      list_num.append(letter_num)#把letter_num中的值倒序添加到新列表中
    print(''.join(list_num))#把''无间隔符添加到list_num中每个元素的中间,总体效果就是把列表转换为字符串

convert_order()
https://static.52pojie.cn/static/image/hrline/1.gif

方法2: 递归 + 切片

# 方法二,递归,切片实现,巧妙
def des_output(s):#实现的功能是依次取最后一个元素
    if (len(s) > 0):
      print(s[-1],end ='')#负数下标,先打印最后一个元素
      des_output(s)#从第一个元素到倒数第二个元素(从第一个元素到倒数第三个元素...)

s = input('string:')
des_output(s)
https://static.52pojie.cn/static/image/hrline/1.gif

方法3:reverse()方法

#方法三,用reverse()方法对列表操作取反,join()方法使列表转换为字符串
str = list(input('input a string:'))
str.reverse()#该方法没有返回值,若打印则出现None,但会对列表元素进行反向排序。因此用print(list)来查看排序即可
print(''.join(str))
https://static.52pojie.cn/static/image/hrline/1.gif

方法4:range()第三个参数

str = input('请输入字符串:')
for i in range(len(str) - 1, -1, -1):#起始,结束(不包含),反向步长.若len(str)==5,则循环【4,3,2,1,0】
    print(str,end='')
https://static.52pojie.cn/static/image/hrline/1.gif

方法5:切片

str = list(input('String :'))
str1 = str[::-1]#注意前面两个冒号前不加数字表示整个列表
print(''.join(str1))

注意:根据大家的反馈,这里也可以不用把str转化为list,再转化str,

S = input('请输入字符串:')
print(S[::-1])
https://static.52pojie.cn/static/image/hrline/1.gif


好啦,今天就到这里啦,晚安:handshake:handshake:handshake

liangyun 发表于 2019-3-15 15:27

py看考场 发表于 2019-3-15 11:56
欢迎大家提问与修正

>>> a = 'abc'
>>> a[::-1]
哦,我是想说这个来着
其实不用转list再转回来

只做石头 发表于 2019-3-15 04:23

就是字体颜色 比较看不清{:1_907:}

amoon_fangClass 发表于 2019-3-15 08:26

受教了,以前只会一个reserve

笨笨猪 发表于 2019-3-15 08:40

{:301_997:}楼主继续加油,等着楼主分享更好的算法

guanyuyihou 发表于 2019-3-15 08:41

最近正好在重温python。
感谢楼主分享。

liangyun 发表于 2019-3-15 08:43

本帖最后由 liangyun 于 2019-3-15 08:44 编辑

demo = 'hello, world'
''.join(list(demo)[::-1])
好吧这个和最后一个重复了

qwerpoiu 发表于 2019-3-15 08:45

习惯用循环

挖掘机小王子 发表于 2019-3-15 08:45

代码不容易看啊

chanlo 发表于 2019-3-15 09:48

一直是用reverse,这次长见识了,谢谢分享

li5226966 发表于 2019-3-15 09:56

可以直接return s[::-1]
页: [1] 2 3
查看完整版本: Python五种方法实现字符串反向输出