Python 练习实例23
题目:打印出如下图案(菱形):
* *** ***** ******* ***** *** *
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
程序源代码:
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from sys import stdout
for i in range(4):
for j in range(2 - i + 1):
stdout.write(' ')
for k in range(2 * i + 1):
stdout.write('*')
print
for i in range(3):
for j in range(i + 1):
stdout.write(' ')
for k in range(4 - 2 * i + 1):
stdout.write('*')
print
以上实例输出结果为:
* *** ***** ******* ***** *** *
Python 100例



liwei
liw***902@126.com
Python3 环境还可以使用以下方式实现:
#!/usr/bin/python3 for i in range(1, 5): print(' ' * (4 - i), end="") for j in range(1, 2 * i): print('*', end="") print() for i in range(3, 0, -1): print(' ' * (4 - i), end="") for j in range(1, 2 * i): print('*', end="") print()liwei
liw***902@126.com
JohnLee
372***369@qq.com
Python3 环境还可以使用以下方式实现:
#!/usr/bin/python3 def pic(lines): middle, lines = int(lines / 2), int(lines / 2) * 2 + 1 for i in range(1, lines + 1): empty = abs(i - middle - 1) print(' ' * empty, '*' * (2 * (middle - empty) + 1)) line = 7 # 设置输出行数 pic(7)JohnLee
372***369@qq.com
真菜鸟
235***2521@qq.com
Python3 环境还可以使用以下方式实现:
#!/usr/bin/python3 n = int(input('enter a number:')) for i in range(1,n+1,2): k = (n-i)//2 print( ' '* k , '*' * i) for p in range(n-2,0,-2): o = (n-p)//2 print(' '*o, '*'*p)真菜鸟
235***2521@qq.com
不知道叫啥
114***5830@qq.com
参考方法:
#!/usr/bin/env python # -*- coding: utf-8 -*- a = '*' xx = [] for i in range(1, 5): x = '' for j in range(2*i-1): x += a xx.append(x) print x.center(7, ' ') if x == "*******": xx.reverse() for k in range(0, len(xx)): print xx[k].center(7, ' ')不知道叫啥
114***5830@qq.com
山寨DE寨主
191***7827@qq.com
参考方法:
#usr/bin/env python3 #coding:utf-8 for i in range(4): print((3-i)*' '+(2*i+1)*'*') for i in range(3): print((i+1)*' '+(5-2*i)*'*')山寨DE寨主
191***7827@qq.com
好男儿
113***7155@qq.com
参考方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- def funs(x): i = 0 n = 1 k = x while i<x: print k * ' ', n*'*',k * ' ' i = i+1 n = n+2 k = k-1 n= n-2 k=1 while i*2>x-1: k=k+1 i=i-1 n=n-2 print k * ' ', n * '*', k * ' ' funs(4)好男儿
113***7155@qq.com
fade
qiu***i@outlook.com
Python3 环境还可以使用以下方式实现:
#!/usr/bin/python3 def printsome(n): for index in range(abs(4 - n)): print(" ", end="") for index in range((4- abs(4 - n))*2 -1): print("*", end="") print() for index in range(1, 8): printsome(index)fade
qiu***i@outlook.com
Kunz
sun***gup@163.com
参考方法,可以设定行数:
#!/usr/bin/python # -*- coding: UTF-8 -*- n=int(raw_input("请输入行数:")) if n%2==0: n1=n/2 n2=n1-1 for i in range(1,n1+1): m=i*2 print ' '*n2,'*'*m n2-=1 n2=1 for i in range(n1-1): m-=2 print ' '*n2,'*'*m n2+=1 else: n1=n//2+1 n2=n1-1 for i in range(n1): m=i*2+1 print ' '*n2,'*'*m n2-=1 n2=1 for i in range(n1-1): m-=2 print ' '*n2,'*'*m n2+=1Kunz
sun***gup@163.com
云不语
339***3520@qq.com
参考方法:
#usr/bin/env python #coding:utf-8 n = 4 for i in range(n): a=' '*(n-1-i)+'*'*(i*2+1) print(a) for j in range(n-1): a=' '*(1+j)+'*'*(2*n-j*2-3) print(a)云不语
339***3520@qq.com
创
zho***uang1217@163.com
参考方法:
#!/usr/bin/env python # -*- coding: utf-8 -*- n = int(input("请输入行数 n:")) for i in range(0,n): a = abs(i - int(n/2)) b = n - abs(i - int(n/2)) print(" "*a+"*"*(b-a))创
zho***uang1217@163.com
清蒸
102***7116@qq.com
参考方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- def print_diamond(n): star = ['*'] for index in range(0,n): print '{:^7}'.format(star[index]) star1 =star[index] + '**' star.append(star1) for i in range(n-2,-1,-1): print '{:^7}'.format(star[i]) if __name__ == '__main__': print_diamond(4)清蒸
102***7116@qq.com
JuanBu
158***58940@163.com
参考方法:
for x in range(1,8)[::2]:print ("*"*x).center(10) for x in range(1,6)[::-2]:print ('*'*x).center(10)JuanBu
158***58940@163.com
程序渊
846***076@qq.com
可以自由输入菱形的腰长,自定义大小,如果不输入值,直接回车即是默认的如题目示例那样的图形
# encoding:utf-8 def paintlx(l): for i in range(l / 2): print ' ' * (l / 2 - i) + '*' * (i * 2 + 1) print '*' * l for i in range(l / 2 - 1, -1, -1): print ' ' * (l / 2 - i) + '*' * (i * 2 + 1) while True: l = raw_input('请输入菱形腰长(奇数),默认为7:') if l == '': l = 7 paintlx(int(l)) break elif int(l) % 2 == 0: print '说了是奇数!' else: paintlx(int(l)) break程序渊
846***076@qq.com
随风奔跑的女子
318***7018@qq.com
参考实例,可用于 Python2.x 与 Python3.x
# encoding:utf-8 for i,j in zip(range(3,-1,-1),range(1,9,2)): print(" "*i+"*"*j) for k,t in zip(range(1,4),range(5,0,-2)): print(" "*k+"*"*t)随风奔跑的女子
318***7018@qq.com
小差罗
675***527@qq.com
Python3 测试实例:
for i in range(4): print(' '*(3-i),'*'*(2*i+1),' '*(3-i)) for i in list(range(3))[::-1]: print(' '*(3-i),'*'*(2*i+1),' '*(3-i))小差罗
675***527@qq.com