海量编程文章、技术教程与实战案例

网站首页 > 技术文章 正文

Python学习笔记 | 熟悉基础语句,打印输出字符图形

yimeika 2025-07-02 09:27:02 技术文章 3 ℃

今天继续熟悉基础语句,熟悉range搭配for循环的用法,还有 * 用在字符串中的用法,使用print语句打印由字符组成的特定图形。

先看第一个图形:

打印这个图形非常简单,三行代码就搞定了:

len = 20
for i in range(1, len):
    print('- ' * i, '* ' * (len - i))

len变量控制输出多少行字符图形。

range语句的特点是包前不包后,例如range(1,20)就表示1-19,不包含20。

“ * ”用在数字里表示乘法,用在字符串里表示重复,例如"-"*10,就表示把字符“-”重复10次。


再看下一个图形:

输出这个图形我尝试使用了两种办法,算是两种算法吧。

第一种方法:

s = 0
for i in range(19, 0, -2):
    print('  ' * s, '* ' * i)
    s += 1
s = 9
for i in range(1, 20, 2):
    print('  ' * s, '* ' * i)
    s -= 1

第一种方法利用for循环range里的数字控制每行需要打印的字符 * 的数量,每行前边的空个数单独统计。

变量s用来记录每行开始需要打印的空格数,s += 1就是s = s + 1,开始打印下半部分图形时,重置s为9。

第一个for循环用来打印图形上半部分,range按照倒序计数,每次循环减2;第二个循环用来打印图形的下半部分,range从1开始,每次循环加2。


第二种方法:

for i in range(10):
    print('  ' * i, '* ' * (19 - i * 2))
for i in range(10):
    print('  ' * (9 - i), '* ' * (19 - (9 - i) * 2))

第二种方法利用for循环range里的数字控制前边需要打印的空格数,每行需要打印的字符 * 的数量,等于每行总字符数减去前边空格数乘2,也就是减去两端空格数之和。

Tags:

最近发表
标签列表