方法一:使用循环打印
思路:使用两个for循环,分别控制打印楼梯和笑脸的位置,其中,外层循环控制楼梯行数,内层循环控制每行打印的*号数。
代码:
- # 打印楼梯
- for i in range(1, 6):
- print("*" * i)
-
- # 打印笑脸
- print(" ** **")
- print(" * * * *")
- print("* * *")
- print("* *")
- print("* * *")
- print(" * * * *")
- print(" ** **")
方法二:使用递归打印
思路:使用递归函数,控制打印楼梯的行数和每行的*号数,打印完楼梯后再通过打印函数打印笑脸。
代码:
- # 定义递归函数打印楼梯
- def print_stair(n):
- if n <= 0:
- return
- print_stair(n-1)
- print("*" * n)
-
- # 打印楼梯
- print_stair(5)
-
- # 打印笑脸
- def print_smile():
- print(" ** **")
- print(" * * * *")
- print("* * *")
- print("* *")
- print("* * *")
- print(" * * * *")
- print(" ** **")
-
- print_smile()
方法三:使用列表推导式打印
思路:使用列表推导式,控制打印楼梯的行数和每行的*号数,打印完楼梯后再通过打印函数打印笑脸。
代码:
- # 打印楼梯
- stair_list = ["*" * i for i in range(1, 6)]
- print("\n".join(stair_list))
-
- # 打印笑脸
- def print_smile():
- print(" ** **")
- print(" * * * *")
- print("* * *")
- print("* *")
- print("* * *")
- print(" * * * *")
- print(" ** **")
-
- print_smile()
当然应该还有更多的实现方法,本文只是提供一个思路,希望大家集思广益