首先是shell


等边三角形

[root@hxy my_script]# sh ff.sh
num:6*************************
***********
[root@hxy my_script]# cat ff.sh
#!/bin/bash
#########################################################################
# File Name: ff.sh
# Author: huxianyong
# mail: hxy123@163.com
# Created Time: 2017年06月07日 星期三 16时41分14秒
#########################################################################read -p "num:" num
for((i=1;i<=$num;i++))
dofor((j=$num;j>i;j--))doecho -e " \c"donefor((l=1;l<=i;l++))doecho -e "*\c"donefor((r=1;r<i;r++))doecho -e "*\c"doneecho
done或者read -p "num:" num
for((i=1;i<=$num;i++))
dofor((j=$num;j>i;j--))doecho -e " \c"donefor((l=1;l<=2*i-1;l++))doecho -e "*\c"doneecho
done
[root@hxy my_script]# sh ff.sh
num:6** ** * ** * * ** * * * *
* * * * * *
[root@hxy my_script]# cat ff.sh
#!/bin/bash
#########################################################################
# File Name: ff.sh
# Author: huxianyong
# mail: hxy123@163.com
# Created Time: 2017年06月07日 星期三 16时41分14秒
#########################################################################read -p "num:" num
for((i=1;i<=$num;i++))
dofor((j=$num;j>i;j--))doecho -e " \c"donefor((l=1;l<=i;l++))doecho -e "* \c"doneecho
done

等腰直角三角形

[root@hxy my_script]# sh ff.sh
num:5
*
***
*****
*******
*********[root@hxy my_script]# cat ff.sh
#!/bin/bash
#########################################################################
# File Name: ff.sh
# Author: huxianyong
# mail: hxy123@163.com
# Created Time: 2017年06月07日 星期三 16时41分14秒
#########################################################################read -p "num:" num
for((i=1;i<=$num;i++))
dofor((l=1;l<=2*i-1;l++))doecho -e "*\c"doneecho
done

菱形

for ((i = 1; i < 12; i++))doif [[ $i -le 6 ]]; thenfor ((j = $((12-i)); j > i; j--))doecho -n " ";donefor ((m = 1; m <= $((2*i-1)); m++))do#echo -n "$i "echo -n "* "doneecho ""elif [[ $i -gt 6 ]]; thenn=$((12-i))for ((j = $((12-n)); j > n; j--))doecho -n " ";donefor ((m = 1; m <= $((2*n-1)); m++))do#echo -n "$i "echo -n "* "doneecho ""fidone

其他的形状大同小异了

python打印菱形

   *********
****************s = '*'
for i in range(1, 8, 2):print((s*i).center(7))
for i in reversed(range(1, 6, 2)):print((s*i).center(7))


利用python打印空心正方形

#encoding=utf-8
num = input("please input you number: ")
b=c=int(num)
print(" * " * int(num))
while 0 < c - 2:c -=1print(" * " + "   "*(b - 2) + " * ")print(" * " * int(num))