PHP前端开发

Day 字符串函数和递归

百变鹏仔 5天前 #Python
文章标签 递归

1. 在字符串中添加空格

以下代码在字符串todayisfriday的每个字符之间插入空格:

txt = "todayisfriday"result = " ".join(txt)print(result)  # 输出:t o d a y i s f r i d a y

2. 删除字符串中的空格

以下代码删除字符串today is friday中的所有空格:

txt = "    today is friday"result = txt.replace(" ", "")print(result)  # 输出:todayisfriday

3. 去除字符串左侧空格

以下代码去除字符串左侧的空格:

txt = "    today is friday"result = txt.lstrip()print(result)  # 输出:today is friday

4. 去除字符串右侧空格

以下代码去除字符串右侧的空格:

txt = "today is friday   "result = txt.rstrip()print(result)  # 输出:today is friday

5. 删除多余空格

以下代码删除字符串中多余的空格,只保留字符间的单个空格:

txt = "today              is                       friday"result = " ".join(txt.split())print(result) # 输出:today is friday

递归:

递归是一种编程技术,其中函数调用自身。

函数:

函数是一段可重用的代码块,用于执行特定任务。

迭代与递归:

迭代使用循环来重复执行代码块,而递归使用函数自身调用来重复执行代码块。

示例与任务:

以下代码提供了示例和任务的改进版本,并使用了更简洁的Python代码:

示例:使用递归打印数字序列

def display(no, limit):    if no > limit:        return    print(no, end=' ')    display(no + 1, limit)display(1, 5)  # 输出:1 2 3 4 5

阶乘 (递归)

def factorial(n):    if n == 0:        return 1    else:        return n * factorial(n-1)print(factorial(4))  # 输出:24

删除多余空格 (改进)

txt = "    today              is                       friday    "result = " ".join(txt.split())print(result)  # 输出:today is friday

反转数字 (递归)

def reverse_number(num):    return int(str(num)[::-1])num = int(input("Enter a number: "))print(reverse_number(num)) # 输入 123,输出 321

回文数检查 (非递归)

def is_palindrome(num):    return str(num) == str(num)[::-1]num = int(input("Enter a number: "))print("Palindrome" if is_palindrome(num) else "Not Palindrome")

斐波那契数列 (递归)

def fibonacci(n):    if n <= 1:        return n    else:        return fibonacci(n-1) + fibonacci(n-2)no = int(input("Enter the number of terms: "))for i in range(no):    print(fibonacci(i), end=" ")

素数检查 (递归)

def is_prime(n, i=2):    if n <= 2:        return True if n == 2 else False    if n % i == 0:        return False    if i * i > n:        return True    return is_prime(n, i + 1)no = int(input("Enter a number: "))print("Prime" if is_prime(no) else "Not Prime")

这些改进后的代码更简洁、更易读,并且更符合Python的编程风格。 它们也更有效率地完成了任务。 请注意,对于一些递归函数(例如斐波那契数列的递归实现),迭代方法通常会更高效。