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
liwei9902@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
liwei9902@126.com
JohnLee
372021369@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
372021369@qq.com
真菜鸟
2354752521@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)真菜鸟
2354752521@qq.com
不知道叫啥
1147915830@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, ' ')不知道叫啥
1147915830@qq.com