如何不使用for循环反向打印用户输入的字符串(逐行输出)
不用for循环实现字符串反转后逐行打印的方案
你已经用for loop完成了需求,这里提供几种不用显式for循环的实现方式:
方式一:用join拼接换行符直接打印
先反转字符串,再用换行符把所有字符拼接成一个字符串,一次性打印就能实现逐行效果:
user_string = input("Please enter a string: ") print('\n'.join(user_string[::-1]))
join方法会自动遍历反转后的字符串,把每个字符用\n连起来,print输出时自然会每行一个字符。
方式二:借助map函数触发print
用map把print函数映射到反转后的每个字符上,最后转成list触发执行(Python3里map返回的是迭代器,必须迭代才会生效):
user_string = input("Please enter a string: ") list(map(print, user_string[::-1]))
map会逐个把反转后的字符传给print,实现逐行打印,转list只是为了让迭代器跑完所有元素。
方式三:递归遍历打印
通过递归函数处理反转后的字符串,每次打印第一个字符,再递归处理剩下的部分:
def print_reversed_chars(s): if not s: return print(s[0]) print_reversed_chars(s[1:]) user_string = input("Please enter a string: ") print_reversed_chars(user_string[::-1])
这种方案没有用显式循环,靠递归调用完成遍历打印。
内容的提问来源于stack exchange,提问作者ccharp
相关产品推荐
相关产品推荐

