Python中打印星星的两种方法
1.使用字符串拼接
1.1打印直角三角形星星
三角形星星有四种情况分别是,如下图所示
其中(1)和(2)属于一种情况,(3)与(4)属于另一种情况
首先说(1)和(2):
这种三角形星星只需要打印星星即可,然后观察可以知道
图(1)是第1行打印1个星星,第2行打印2个星星,以此类推# 定义行变量,从1开始计数row = 1
# 循环5次while row <= 5:print("*" * row) # 第i行打印i个星星row += 1print("end")
图(2)类似,只不过变成第1行打印5个星星,第2行打印4个星星,以此类推第i行打印n-i+1个,n为行数,代码读者可以自行练习这里就省略了。
接下来说(3)和(4):
这种三角形星星即要打印空格又要打印星星,观察可知
图(3)是第1行打印0个空格和5个星星,第2行是打印1个空格和4个星星,以此类推# 定义行变量,从1开始计数row = 1while row <= 5:print(" " * (row-1) + "*" * (6-row)) # 第i行打印i-1个空格和6-i个星星,加起来等于行数5row += 1print("end")
图(4)类似,只不过变成第1行打印4个空格和1个星星,第2行打印3个空格和2个星星,以此类推第i行打印n-i个空格和i个星星,加起来等于行数n,代码读者可以自行练习。
总结:以上是使用Python的字符串拼接来打印,比较方便不需要循环嵌套。
2.不用字符串拼接,使用循环嵌套
不使用字符串拼接打印就有点类似C等其他语言的思路,就是一个一个的打印,那么就需要变化一下,首先来介绍一下print函数在默认情况下,print 函数输出内容之后,会自动在内容末尾增加换行
如果不希望末尾增加换行,可以在 print 函数输出内容的后面增加 , end=""
其中 "" 中间可以指定 print 函数输出内容之后,继续希望显示的内容
语法格式如下:# 向控制台输出内容结束之后,不会换行print("*", end="")# 单纯的换行print("")
end="" 表示向控制台输出内容结束之后,不会换行
有了以上知识后首先说图(1)和(2)
由于是一个字符一个字符的打印,这个时候就需要引入列变量了
图(1)第1行打印1个星星,就是列变量计数的内层循环只循环1次,第2行打印2个星星就是列变量计数的内层循环循环2次,以此类推# 定义行变量,从1开始计数row = 1while row <= 5:# 定义列变量,从1开始计数col = 1# 第i行,列循环i次while col <= row:print("*", end="")col += 1# 每打印完1行换行print("")row += 1print("end")
图(2)类似,第1行打印5个星星,就是列变量计数的内层循环循环5次,第2行打印4个星星就是列变量计数的内层循环循环4次,以此类推第i行的内层循环循环6-i次,代码读者可以自行练习。