首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中创建X的金字塔

如何在python中创建X的金字塔
EN

Stack Overflow用户
提问于 2013-08-30 02:59:47
回答 11查看 13K关注 0票数 2
代码语言:javascript
复制
   X
  XXX
 XXXXX
XXXXXXX

这是我的计算机科学课程的入门作业的一部分。老师教我们关于I和j的范围,我完全不知道如何实现金字塔,我已经尝试了好几个小时了。除了我上过的两节50分钟的课之外,我从来没有接触过任何类型的编程。我非常希望得到一些帮助/建议。

本代码是我们当前教学和假定知识的范围:

代码语言:javascript
复制
for i in range(10):

    line = ""
    for j in range(10):
        if j%2 == 0:
            c = ' '
        else:
            c = '*'
        line += c
    print line
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-08-30 03:05:15

您可以使用字符串格式:

根据基地的大小:

代码语言:javascript
复制
def create_pyramid(base):
    for i in xrange(1, base+1, 2):
        print '{:^{}}'.format('X'*i, base)
...         
>>> create_pyramid(7)
   X   
  XXX  
 XXXXX 
XXXXXXX

根据级别的数目:

代码语言:javascript
复制
def create_pyramid(level):
    for i in xrange(1, 2*level, 2):
        print '{:^{}}'.format('X'*i, (2*level)-1)
...         
>>> create_pyramid(5)
    X    
   XXX   
  XXXXX  
 XXXXXXX 
XXXXXXXXX
票数 3
EN

Stack Overflow用户

发布于 2013-08-30 03:06:20

既然你的老师需要ij,我猜他想要一些类似于老式C的代码,试试这个:

代码语言:javascript
复制
N,line,c,p = 10,'','',1
spaces = ' '*N

for i in range(N):
  spaces = spaces[0:N-i]
  c = ''
  for j in range(p):
    c += "X"
  line += spaces+c+'\n'
  p += 2

print line
票数 2
EN

Stack Overflow用户

发布于 2013-08-30 03:30:53

以下是另一个解决方案:

代码语言:javascript
复制
def create_pyramid(base):

    star = 1 # first row has 1 star
    for i in range((base - 1) / 2, -1, -1): # (base - 1) / 2 will determine the first space given the base
        print i * " ", star * "X" # spaces
        # the , star * "X" on the above line means printing on the same line with no space
        star += 2 # incrementing by 2 each time
...
>>>create_pyramid(7)
   X   
  XXX  
 XXXXX 
XXXXXXX
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18524214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档