当前位置:   article > 正文

头歌python实训通关四——循环结构_头歌课程怎么样算通关

头歌课程怎么样算通关


第1关:计算阶梯数

任务描述

本关任务:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶。

相关知识

为了完成本关任务,你需要掌握:1.条件语句,2.循环语句。

编程要求

根据提示,在右侧编辑器补充代码,返回最少的阶梯数。

测试说明

平台会对你编写的代码进行测试:

测试输入: 预期输出: 119

  1. def countlevel():
  2. '''
  3. :return:最小阶梯数
  4. '''
  5. # 请在此处添加代码 #
  6. # *************begin************#
  7. a=7
  8. while(1):
  9. if a%2==1 and a%3==2 and a%5==4 and a%6==5 and a%7==0:
  10. return a
  11. a+=1
  12. # **************end*************#
  13. print(countlevel())

第2关:打印三角形图案

任务描述

本关任务:编写一个能打印三角形图案的函数。

相关知识

为了完成本关任务,你需要掌握:1.for循环嵌套语句。

编程要求

根据提示,在右侧编辑器补充代码,根据参数pow(三角形行)编写一个能打印pow行三角形图案的函数。

测试说明

平台会对你编写的代码进行测试:

测试输入:4; 预期输出:

  1. *
  2. **
  3. ***
  4. ****
  5. *
  6. **
  7. ***
  8. ****
  9. *
  10. ***
  11. *****
  12. *******

说明:程序会根据函数参数pow打印三个三角形,每个三角形pow行。

测试输入:8; 预期输出:

 
  1. *
  2. **
  3. ***
  4. ****
  5. *****
  6. ******
  7. *******
  8. ********
  9. *
  10. **
  11. ***
  12. ****
  13. *****
  14. ******
  15. *******
  16. ********
  17. *
  18. ***
  19. *****
  20. *******
  21. *********
  22. ***********
  23. *************
  24. ***************
  1. def triangle(row):
  2. '''
  3. 根据row值,打印三个三角形
  4. :row:三角形行数
  5. :return: 无返回值
  6. '''
  7. # 请在此处添加代码 #
  8. # *************begin************#
  9. for i in range(row):
  10. for j in range(i+1):
  11. print("*",end="")
  12. if(i!=(row)):
  13. print()
  14. for i in range(row):
  15. print((row-i-1)*" ",end="")
  16. for j in range(i+1):
  17. print("*",end="")
  18. print()
  19. for i in range (row):
  20. print((row-i-1)*" ",end="")
  21. for j in range(2*i+1):
  22. print("*",end="")
  23. print()
  24. # **************end*************#
  25. row = int(input())
  26. triangle(row)

第3关:双色球选号

任务描述

本关任务:编写一个能实现双色球选号的小程序。

相关知识

为了完成本关任务,你需要掌握:1.条件语句,2.列表操作,3.循环语句,4函数定义及调用。

编程要求

根据提示,在右侧编辑器补充代码,编写一个能实现双色球选号的小程序。 双色球选号由7个数字组成y,其中有6个红球,其号码的取值范围为[1,33],一个蓝球的取值范围为[1,16],要求6个红球从小到大排列,蓝球在最后输出。其输出格式为09 12 16 20 30 33 | 03。(注意,如双色球号码为3,则必须输出03)

测试说明

平台会对你编写的代码进行测试:

测试输入:7; 输入说明:选7注 预期输出:

 
  1. 09 12 16 20 30 33 | 03
  2. 01 07 08 09 18 31 | 16
  3. 05 08 21 26 28 31 | 05
  4. 01 03 06 22 25 33 | 02
  5. 02 09 16 20 27 28 | 13
  6. 15 19 24 26 28 32 | 05
  7. 02 05 07 16 24 32 | 09

输出说明:生成7注双色球号。|后面的数字为蓝球的号码 提示:等概率的生成一组无重复的数,可以采用sample函数,其案例如下 如要在1-10中等概率抽取6位数,代码如下

 
  1. from random import sample
  2. t = [x for x in range(1, 11)]
  3. print(sample(t,6))
  1. from random import randrange, randint, sample
  2. import random
  3. def display(balls):
  4. """
  5. 按照题目所要求格式输出列表中的双色球号码
  6. :param balls:双色球号码列表,如[9,12,16,20,30,33 3]
  7. :print:输出格式为09 12 16 20 30 33 | 03
  8. :return: 无返回值
  9. """
  10. # 请在此处添加代码 #
  11. # *************begin************#
  12. t=[x for x in range(1,17)]
  13. a=(sample(t,1))
  14. balls.sort(reverse=False)
  15. c=balls+a
  16. f=1
  17. for i in c:
  18. if i<10:
  19. d="0"+str(i)
  20. else:
  21. d=str(i)
  22. print(d+" ",end="")
  23. if f ==6:
  24. print("| ",end="")
  25. f+=1
  26. print()
  27. # **************end*************#
  28. def random_select():
  29. """
  30. 随机选择一组号码
  31. :return: 返回随机选择的这一组号码,如[9,12,16,20,30,33 3]
  32. """
  33. # 请在此处添加代码 #
  34. # *************begin************#
  35. t=[x for x in range(1,34)]
  36. return(sample(t,6))
  37. # **************end*************#
  38. #n为注数
  39. def main(n):
  40. for _ in range(n):
  41. display(random_select())
  42. random.seed(3)
  43. n = int(input())
  44. if __name__ == '__main__':
  45. main(n)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/674288
推荐阅读
相关标签
  

闽ICP备14008679号