Python每日一练(牛客网新题库)——第2天:逆序输出字符串

144 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情 前言📢📢

1. 问题描述

输入一个字符串然后对其进行逆序输出

  • 第一种方式:字符串切片
  • 第二种方式:使用循环转换然后逆序输出
  • 比如:输入字符串'hello',逆向输出'olleh'

- 小伙伴们看了问题描述后,一定要自己先练习,再去看博主的代码和解题思路,才能提高自己的编程水平,全靠自觉哟!!!

2. 算法思路

1.使用循环从字符串的长度减一开始到0结束
2.每次的循环体内,将相应索引的字符添加进列表
3.完成所有的循环之后,将列表转换为字符串输出 在这里插入图片描述

3. 代码实现

第一种切片方式

实现代码📝:

# Python3 range() 返回的是一个可迭代对象(类型是对象),而不是列表类型
# range(start, stop[, step])
# 参数说明:
# start:计数从start 开始。默认是从0开始。例如range (5) 等价于range (0,5) ;
# stop:计数到stop结束,但不包括stop。 例如: range (0,5) 是 [0, 1, 2, 3, 4]没有5
# step:步长,默认为1。例如: range (0, 5) 等价于 range(0, 5, 1)
# range(5, 0, -1): [5, 4, 3, 2, 1]

# 第一种切片方式
str_info = input("请输入字符串:")
print("逆序输出结果为:", str_info[::-1])

运行结果👇:

在这里插入图片描述

第二种循环转换

实现代码📝:

# Python3 range() 返回的是一个可迭代对象(类型是对象),而不是列表类型
# range(start, stop[, step])
# 参数说明:
# start:计数从start 开始。默认是从0开始。例如range (5) 等价于range (0,5) ;
# stop:计数到stop结束,但不包括stop。 例如: range (0,5) 是 [0, 1, 2, 3, 4]没有5
# step:步长,默认为1。例如: range (0, 5) 等价于 range(0, 5, 1)
# range(5, 0, -1): [5, 4, 3, 2, 1]

# 第二种循环转换
str_info = input("请输入字符串:")
str_list = []
for i in range(len(str_info) - 1, -1, -1):
    str_list.append(str_info[i])

print("str_list:", str_list)
print("逆序输出结果为:", ''.join(str_list))

代码解析

  • range(len(str_info) - 1, -1, -1) :获取字符串索引下标
  • len(str_info) - 1:字符串最大索引位置,如hello就是取到4
  • 第1个-1:由于左闭右开,实际取值到0
  • 第2个-1:倒叙
  • ''.join(str_list):将字符串列表['o', 'l', 'l', 'e', 'h']转换为olleh字符串

运行结果👇:

在这里插入图片描述