【python练习】打印菱形

1. 分析

  • 首先我们分析一下菱形的构成,根据输入的数字a,打印2a-1行的菱形。菱形从图像来说,是一个三角形加上一个倒三角组成的,所以可以用双循环打印两个三角形,打印倒三角形的条件是第一次循环计数器i的值等于a。

2. input()函数

  • 当使用函数input()时通过在提示末尾包含一个空格,可将提示与用户输入分开,让用户清楚地知道其输入始于何处

  • 有时候,提示可能超过一行,例如,你可能需要指出获取特定输入的原因。在这种情况下,可将提示存储在一个变量中,再将该变量传递给函数input()。这样,即便提超过一行,input()语句也非常清晰。

  • 使用函数input()时,Python将用户输入解读为字符串;为解决这个问题,可使用函数int(),它让Python将输入视为数值。函数int()将数字的字符
    串表示转换为数值表示

3. 注意

  1. python没有switch语句
  2. 重复赋值语句,python特有
  3. “或”用or表达
  4. 注意ifwhile语句后面的冒号

4. 输出空心菱形:

n=input('请输入菱形每边星星个数,n= ')
n=int(n)
m=t=2*n-1    #双重赋值
while m>=1:
    if(m==t or m==1):#打印第一行和最后一行
        print('  '*n + '*' + '  '*4*(n-1))
    elif(m>=n):#打印下半部分
        print('  '*(m-n+1)+'*'+'  '*(2*(t-m)-1)+' *')
    else:#打印上半部分
        print('  '*(n-m+1)+'*'+'  '*(2*m-3)+' *')
    m-=1

运行结果

【python练习】打印菱形_第1张图片

5. 输出实心菱形

n=input('请输入菱形每边星星个数,n= ')
n=int(n)
s=t=2*n-1
while s>=1:
    if(s==t or s==1):
        print(' '*(n-1)+'*'+'  '*4*(n-1))
    elif(s<=n):
        print(' '*(n-s)+'*'*(2*s-1))
    else:
        print(' '*(s-n)+'*'*(2*(t-s)+1))
    s-=1

运行结果
在这里插入图片描述

你可能感兴趣的:(python)