前言📢📢
最近很多学了基础的小伙伴问我该怎么提升编程水平?学了基础该上哪刷题?明明学了很多,做项目却不知道怎么上手,其实这就是练得太少,只注重了学,却忽视了刷题,只有不断练习才能提高和巩固编程思维和能力!
刚好看到牛客网最近出了Python的新题库于是体验了一番感觉还不错
链接地址:牛客网 | Python从入门到实践四十招,废话少说速度上号,或者跟着下文一起刷题!!!
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
字符串
运行结果👇: