扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Python把生成的菱形存入二维表中方法:
祥云网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
直接寻找规律,发现前一半的第i行分别输出了(n+1-2*i)/2个空格和2*i-1个’*’;而后一半就是前一半输出的倒序。
首先画一个菱形,看一下规律在哪里,先看下图:
见上图菱形,定义尺寸为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()
#!/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()
源代码(注意源代码的缩进)
要使用 Python 中的杨辉三角形打印两个三角形、一个菱形或三角形和菱形的组合,可以使用嵌套的 for 循环和条件语句。下面是一个示例:
在此代码中,该函数用于为第一个三角形生成从 1 到的数字序列,为第二个三角形生成从 1 到 1 的数字序列。然后,使用两个嵌套的 for 循环遍历三角形的行和列,并使用公式打印杨辉三角形中的数字。打印每个三角形中的数字后,打印换行符range()nnint(bin(i-1)[2:][::-1][j-1])
回答不易望请采纳
Python 使用循环输出由“*”组成的实心菱形图案? n = int(input())for i in range(1, n + 1):print(" " * ( n - i ), end='')print('*' * (2*i - 1))for i in range(n - 1, 0, -1):print(" " * ( n - i ), end='')print('*' * (2*i - 1))
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流