星号三角形

该博客主要介绍用Python实现输出由星号组成的等边三角形。读入奇数N,第1行1个星号,第2行3个,依次类推,最后一行N个。关键在于理解.format()的槽机制,还对range函数的参数含义进行了详细解释。

读入一个整数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]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值