鱼C论坛

 找回密码
 立即注册
查看: 3681|回复: 20

[技术交流] Python:每日一题 221(2019-07-01)

 关闭 [复制链接]
发表于 2019-7-1 20:51:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 新手·ing 于 2019-7-5 18:57 编辑

写在前面

话说,我是不是拖更了近一年了...
楼楼也差不多忘干净了哈哈...
那么,就趁着这个暑假把编程拾起来吧...

废话不多说,开始今天的题目:
数字金字塔

传入数字1,返回如下图形:
1
传入数字2,返回如下图形:
  1
121
传入3,输出:   
   1
  121
12321

以此类推,输入9时,
example.png
注意,数字要居中(这是个提示哦),传入数字的范围应是1-9

萌新解法:
  1. def generate(n):
  2.     num = 11
  3.     power = 2
  4.     result = ['1']
  5.     for i in range(n-1):
  6.         result.append(str(num**power))
  7.         num = int(str(num)+'1')
  8.     return result


  9. def pyramid(n, data):
  10.     for s in data:
  11.         print(s.center(n*2-1, ' '))


  12. pyramid(9, data=generate(9))
复制代码


前十名有鱼币奖励哦~

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +5 收起 理由
冬雪雪冬 + 5 + 5 + 5 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-1 21:12:26 | 显示全部楼层
  1. def fun221(n):
  2.     for i in range(1, n + 1):
  3.         print(' ' * (n - i), end = '')
  4.         print(*range(1, i + 1), sep = '', end = '')
  5.         print(*range(i - 1, 0, -1), sep = '')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-7-2 07:22:21 | 显示全部楼层

学习大佬代码,
班主没有奖励。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-2 08:12:20 | 显示全部楼层
我在认真学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-2 08:21:00 | 显示全部楼层
输出来的结果上排的数字不在下排的中心位置哦!
      1
    1 2 1
   1 2 3 2 1

请问如何更正?  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-7-2 08:23:17 | 显示全部楼层
糠爸 发表于 2019-7-2 08:21
输出来的结果上排的数字不在下排的中心位置哦!
      1
    1 2 1

研究下空格和参数的关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 10:15:34 | 显示全部楼层
  1. number = int (input('输入层数:'))
  2. for i in range(1,number+1):
  3.     a = (number-1) * ''
  4.     print(,a, end= '')
  5.     for j in range(1,i+1):
  6.         print(i-j+1 , end = ' ')
  7.     for A in range (2, i+1):
  8.         print(A , end=' ')      
  9.     print()
复制代码


试了几次都不能对齐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 16:34:05 | 显示全部楼层
本帖最后由 第n个老秃驴 于 2019-7-3 16:38 编辑

写的比较繁琐。。新手。见谅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 16:37:49 | 显示全部楼层
  1. def fun1(x):
  2.     i=[]
  3.     t=1
  4.     while t< x :
  5.         i.append(t)
  6.         t=t+1
  7.     for each in i:print (each,end='')
  8.     print (x,end='')
  9.          
  10.         
  11. def fun2(x):
  12.     i = x-1
  13.     while( i > 0 ):
  14.         print(i,end ='')
  15.         i=i-1
  16.     print (' ')
  17.    

  18. print('请输入一个数字:')
  19. n=int(input())
  20. def zhuchengxu(n):
  21.     while n > 9 or n < 1 :
  22.         print ('输入错误,请输入1~9中的一个数:')
  23.         n=int(input())
  24.     i=1
  25.     while i<=n:
  26.         k=2*(n-i)
  27.         for each in range(k):
  28.             print(' ',end='')
  29.         fun1(i)
  30.         fun2(i)
  31.         i=i+1
  32.     print('是否继续?yes / no?')
  33.     if (input())=='yes':
  34.         zhuchengxu(n)
  35.    
  36. zhuchengxu(n)   
复制代码

评分

参与人数 1鱼币 +5 收起 理由
新手·ing + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 16:44:23 | 显示全部楼层
想看答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 18:11:36 | 显示全部楼层
前面在学习条件循环时看见大佬写过一个用*来做三角形的  当时还想改为杨辉三角  我真是天真  代码如下
row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(row - i - 1):
        print(' ', end='')
    for _ in range(2 * i + 1):
        print('*', end='')
    print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 18:54:19 | 显示全部楼层
  1. def fun221(n):
  2.     for i in range(1,n+1):
  3.         print(' '*(n-i),*map(lambda x:-abs(x-i)+i,range(1,2*i)),sep='')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-7-3 19:31:29 | 显示全部楼层
zxx0208 发表于 2019-7-3 10:15
试了几次都不能对齐

center了解一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-3 19:32:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 22:28:18 | 显示全部楼层
怎么实现的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 22:40:40 | 显示全部楼层
lihai
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-4 16:30:09 | 显示全部楼层

请问*range是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-4 16:51:24 | 显示全部楼层
wiselin 发表于 2019-7-4 16:30
请问*range是什么意思?

把生成器range解包,例如print(*range(3))相当于print(0, 1,  2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-5 09:49:33 | 显示全部楼层
def nn(n):

    for i in range(n):
        lista = [' ']*2*n
        for j in range(i+1):
            lista[n+j-1] = lista[n-j-1] = i-j+1
        print(*lista)

if __name__ =='__main__':
    nn(4)

评分

参与人数 1鱼币 +5 收起 理由
新手·ing + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-5 11:33:07 | 显示全部楼层
n=int(input("请输入一个数字:"))
for i in range(1,n+1):
    print(" " * (n-i),end="")
    for j in range(1,i+1):
        print(j,end="")
    if i>1:
        for k in range(i-1,0,-1):
            print(k,end="")
    print(" "*(n-i),end="\n")

评分

参与人数 1鱼币 +5 收起 理由
新手·ing + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 02:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表