读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:
第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
n=eval(input())
for i in range(1,n+1,2):
print("{0:^{1}}".format(*'*'*i,n))
关键是对.format()中槽机制的理解,槽中可以嵌套槽,用来表示宽度、填充等含义。
扩展一下更好理解print format的槽的对应关系:
n=eval(input())
for i in range(1,n+1,2):
print("{0:^{1}}{2:.2f}".format('*'*i,n,i))
运行结果:9
* 1.00
*** 3.00
***** 5.00
******* 7.00
*********9.00
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。
# 将用户输入的字符串当做表达式执行后返回结果 # 如输入100,返回100,n就是100,;输入100 + 1,返回101,n就是101 n = eval(input())
# i从1开始循环,每循环一次就+2,直到增长到n + 1就停止(不包含n + 1) for i in range(1, n + 1, 2): # 0是序号,代表format后的第1个参数
# 冒号是引导符,引导符后面跟的是控制方法,意思是对第1个参数的输出进行控制 # 上箭头 ^ 是中间对齐的意思,控制输出时中间对齐 # ^ 后的数字代表输出的宽度约束,如^5代表输出的字符串宽度是5
# {1}代表format后的第2个参数,代入n,即宽度是n ,输出i个'*'的字符串,该字符串宽度是n,中间对齐 print("{0:^{1}}".format('*' * i, n))。
#关键是对.format()中槽机制的理解,槽中可以嵌套槽,用来表示宽度、填充等含义。
range详解
函数原型:range(start, end, scan):
参数含义:
start: 计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
end: 计数到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
scan: 每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
例如range(1,5,2)得到[1,3]
该博客主要介绍用Python实现输出由星号组成的等边三角形。读入奇数N,第1行1个星号,第2行3个,依次类推,最后一行N个。关键在于理解.format()的槽机制,还对range函数的参数含义进行了详细解释。
6402

被折叠的 条评论
为什么被折叠?



