【小白学编程Python方向】项目练习第1期(截止3.21)

Python方向活动帖:【牛客带你学编程】【Python方向】0基础小白入门培养计划


Python项目练习 第1期
练习时间:3月7日-3月21日(2周)
活动规则:
  • 每一期一个项目,届时会开新帖发布
  • 学员直接将答案提交到该贴评论区即可
  • 两周后,公布导师参考答案
  • 导师评选出当期最佳代码(将设置为精彩回复

奖励:牛客大礼包一份(牛客定制水杯 牛客定制笔 牛客定制程序员徽章 滑稽抱枕)
参与方式:直接将你的代码回复到本帖评论区

-----------------------------------------------------

本期题目:

杨辉三角定义如下:

          1

         / \

        1   1

       / \    / \

      1   2   1

     / \   / \   / \

    1   3   3   1

   / \ / \   / \   / \

  1   4   6   4   1

 / \  / \   / \  / \  / \

1   5  10 10  5   1

把每一行看做一个list,试写一个generator,不断输出下一行的list


参与方式:直接将你的代码回复到本帖评论区

#Python#
全部评论
l=[1] while 1:     print(l)     l=[1]+[l[i] + l[i+1] for i in range(len(l)-1)]+[1]          #这样可以吗?不知道这算不算py的generator,反正可以不断输出了,在函数里yield应该就算是generator了,请老师讲解,谢谢
点赞 回复 分享
发布于 2018-03-07 15:04
lvl=int(input()) rel=[[1],[1,1]] if lvl<3:     for i in range(lvl):         print(rel[i]) else:     for v in rel:         print(v)     for f in range(lvl-1-1):         lvlinsert=[1]         for i in range(len(rel[-1])-1):             lvlinsert.append(rel[-1][i]+rel[-1][i+1])         lvlinsert.append(1)          print(lvlinsert)         rel.append(lvlinsert)         rel=[rel[-1]]
点赞 回复 分享
发布于 2018-03-14 23:06
input_list = [1] tem_list = [] while(True):     tem_list.clear()     tem_list.append(1)     if len(input_list)> 1:         for i in range(len(input_list)-1):             tem_list.append(input_list[i]+input_list[i+1])         tem_list.append(1)         print(tem_list)     else:         tem_list.append(1)         print(tem_list)            input_list = tem_list[:]
点赞 回复 分享
发布于 2018-03-08 16:57
def yanghui(n): pre = [1] i = 1 while i <= n: if i == n: yield pre new_list = [] i += 1 for j in range(i - 2): new_list.append(pre[j] + pre[j + 1]) pre = [1] + new_list + [1]
点赞 回复 分享
发布于 2018-07-26 21:40
l=[1] j = 10 s = list() while j: print(l) for i in range(len(l)-1): s.append(l[i]+l[i+1]) l = [1] + s + [1] j = j-1 s.clear()
点赞 回复 分享
发布于 2018-03-21 20:52
def generator(n):     # n is the rows     list = [1]     print 1, '\n'     for i in xrange(1, n):              new_list = [0 for j in xrange(i+1)]         new_list[0] = 1         new_list[-1] = 1         for j in xrange(1, (i+2)/2):             new_list[j] = list[j-1] + list[j]         for j in xrange((i+1)/2, i+1):             new_list[j] = new_list[i-j]         list = new_list         for num in list:             print num,          print '\n'
点赞 回复 分享
发布于 2018-03-21 19:24
def Yang_sanjiao():     H=[1]     while True:         L=H[:]         yield L         H.append(0)         H=[H[i-1]+H[i] for i in range(len(H))]
点赞 回复 分享
发布于 2018-03-17 14:23
def ***s():     S = [1]     while True:         yield S         S = [1] + [S[i] + S[i + 1] for i in range(len(S) - 1)] + [1] n = 0 input = 10     results = [] for t in ***s():     results.append(t)     n = n + 1     if n == input:         break print(results)
点赞 回复 分享
发布于 2018-03-14 01:13
# 将循环条件改为while True 可取消传参max,无限循环生成下一行 def yhTriangle(max):     n = 0     list_next = [1]     while n < max:         yield list_next         list, list_next = list_next, [1]         for i in range(len(list)-1):             list_next.append(list[i] + list[i+1])         list_next.append(1)         n += 1 for i in yhTriangle(6):     print(i) 你们是怎么把代码贴上去的呀?我感觉我贴了半天都很奇怪
点赞 回复 分享
发布于 2018-03-13 15:41
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def ***s(): L=[1] while True: yield L L=[1]+[L[i]+L[i+1] for i in range(len(L)-1)]+[1] #N表示需要输出的行数 N=int(input('input your lines:')) n=0 for t in ***s(): print(t) n=n+1 if n==N: break
点赞 回复 分享
发布于 2018-03-11 17:20
list1 = [1] list2 = [1,1] print(list1) print(list2) number1 = 2 while 1:     list3 = [1]     for i in range(1,number1):         list3.append(list2[i] + list2[i-1])     list3.append(1)     list2 = list3     print(list2)     number1 += 1 # 如果要求指定n层的三角,就把while条件改为,number1 <= n # 小白学习时间比较短,希望和大家一起学习 >.<        
点赞 回复 分享
发布于 2018-03-07 21:53

相关推荐

真烦好烦真烦:牛友太有实力了
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务