Python把生成的菱形存入二维表中方法:
因为努力和真诚,有更多的客户和我们聚集在一起,为了共同目标,成都创新互联公司在工作上密切配合,从创业型企业到如今不断成长,要感谢客户对我们的高要求,让我们敢于面对挑战,才有今天的进步与发展。从网站到重庆小程序开发,软件开发,手机APP定制开发,10余年企业网站建设服务经验,为企业提供网站设计,网站运营一条龙服务.为企业提供全网整合营销推广,按需开发,原创设计,10余年品质,值得您的信赖.
直接寻找规律,发现前一半的第i行分别输出了(n+1-2*i)/2个空格和2*i-1个’*’;而后一半就是前一半输出的倒序。
# 单行输出数值从小到大再从大到小
def numout(length):
for i in range(length-1):
print(i+1,end = "")
print(length,end = "")
for i in range(length-1):
print(length-i-1,end = "")
print(" ")
# 一共输出了2n-1行数字
def diamond(length):
for i in range(1,(length*2)):
print(" "*abs(length-i),end = "")
numout(length-abs(i-length))
while True:
length = None
#检测输入值是否为数值类型
try:
length = int(input("请输入正整数:"))
except:print("错误,",end = "")
if type(length) == int:break
# 输出菱形
diamond(length)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print '\n'.join(['*'*7 for i in range(4)])
print '\n'
print '\n'.join(['*'*(i*2+1) for i in range(4)])
print '\n'
print '\n'.join([('*'*(i*2+1)).center(7, ' ') for i in range(4)])
print '\n'
print '\n'.join([('*'*(abs(i-3)*2+1)).center(7, ' ') for i in range(4)])
print '\n'
print '\n'.join([('*'*([i,abs(i-6)][i3]*2+1)).center(7, ' ') for i in range(7)])
print '\n'
print '\n'.join(['*'*([i,abs(i-6)][i3]*2+1) for i in range(7)])
各种型 没有达到你的要求 再追问
================================ RESTART ================================
*******
*******
*******
*******
*
***
*****
*******
*
***
*****
*******
*******
*****
***
*
*
***
*****
*******
*****
***
*
*
***
*****
*******
*****
***
*
按照你的要求编写的输出数字菱形的Python程序如下(abs是求绝对值的函数)
N=9
for i in range(1,N*2):
for j in range(1,abs(N-i)+1):
print(' ',end='')
for j in range(N-abs(N-i),1,-1):
print(j,end='')
for j in range(1,N-abs(N-i)+1):
print(j,end='')
print()
源代码(注意源代码的缩进)
#脚本里面直接这样写就好了import randomdef R(): print (random.randint(1,1000))for i in range(1,10): R()
首先画一个菱形,看一下规律在哪里,先看下图:
见上图菱形,定义尺寸为size=3,
定义X坐标为i:
A区域X坐标为i,Y坐标为size-i;
B区域X坐标为i,Y坐标为size+i;
C区域X坐标为i,Y坐标为i-size;
D区域X坐标为i,Y坐标为size*3-i
满足1,2,3,4的情况下就输出*,其它则输入空格,这样我们就得到一个菱形,代码如下和输出效果如下:
size = 3 # 定义菱形尺寸
count = size*2+1 # 定义X,Y坐标循环范围
# i为横坐标
for i in range(count):
# j为纵坐标
for j in range(count):
# 当X,Y满足条件1和2时
if i = size and (j == size-i or j == size+i):
print('*', end='')
# 当X,Y满足条件3和4时
elif i size and (j == i-size or j == size*3-i):
print('*', end='')
# 其它情况输入空格
else:
print(' ', end='')
# 每打印一行就换行
print()