今天继续熟悉基础语句,熟悉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,也就是减去两端空格数之和。