python题库 No.34 文本翻转

编写一个名为 rev() 的函数,传入参数s,实现对字符串x反转。
函数内首先通过判断字符串s是否为空(""),或者s的长度是否为1,若满足则反转后的字符串为本身;
否则,通过字符串切片和递归实现字符串反转。
最后,传入参数s为"yequbiancheng",调用函数rev() 并输出结果。

实际答案:

def rev(s):
  if len(s) <= 1:
    print(s)
  else:
    for i in range(len(s) + 1):
      if i == 0:
        continue
      else:
        print(s[-i],end = '')
    
s = "yequbiancheng"
rev(s)
print("")

标准答案:

def rev(s):
  if len(s) <= 1:
    print(s)
  else:
    for i in range(len(s) + 1):
      if i == 0:
        continue
      else:
        print(s[-i],end = '')
    
s = "yequbiancheng"
rev(s)
print("\n")

image
点评:
实际答案后面发现不符合题目要求,因为没有用到递归
递归:
当字符串长度为0或1时,无需反转,直接返回原字符串。这是递归的终止条件,防止无限调用。
else: 递归调用:最后一个字符 + 剩余字符串的反转

此外,一开始运行显示结果不对,经过调试发现是与标准答案运行结果相比少了一个空行。
因为python打印默认带空行,
但是实际答案中是分字符打出的,所以要用end = ""来消除空行。
导致最后一个字符输出的时候仍然没有空行。
解决办法是在最后补一个print()或者print("")即可。

posted @ 2025-12-25 11:52  居儿wxg  阅读(0)  评论(0)    收藏  举报