头歌 Python开发技术—流程控制之循环结构

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

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

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

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

测试输入:
预期输出:
119

def countlevel():
    '''
     
       :return:最小阶梯数
       '''
    #        请在此处添加代码       #
    # *************begin************#
    i = 1
    while i >= 1:
        if i%2 == 1 and i%3==2 and i%5==4 and i%6==5 and i%7==0:
            return i 
        i += 1
    # **************end*************#
    
print(countlevel())
  1. 第2关:打印三角形图案
    任务描述
    本关任务:编写一个能打印三角形图案的函数。

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

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

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

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

在这里插入图片描述

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

测试输入:8;
预期输出:
在这里插入图片描述

def triangle(row):
    '''
       根据row值,打印三个三角形
       :row:三角形行数
       :return: 无返回值
       '''
    #        请在此处添加代码       #
    # *************begin************#
    for i in range(1,row+1):
        print('*'*i)
    for i in range(1,row+1):
        for j in range(row-i):
            print(' ',end='')
        print('*'*i)
    a = 1
    for i in range(row):
        for j in range(row-1-i):
            print(' ',end='')
        for k in range(a):
            print('*',end='')
        a += 2
        print('\n',end='')
        

        
    # **************end*************#
    
row = int(input())
triangle(row)
  1. 双色球选号
    任务描述
    本关任务:编写一个能实现双色球选号的小程序。

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

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

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

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

09 12 16 20 30 33 | 03
01 07 08 09 18 31 | 16
05 08 21 26 28 31 | 05
01 03 06 22 25 33 | 02
02 09 16 20 27 28 | 13
15 19 24 26 28 32 | 05
02 05 07 16 24 32 | 09
输出说明:生成7注双色球号。|后面的数字为蓝球的号码
提示:等概率的生成一组无重复的数,可以采用sample函数,其案例如下
如要在1-10中等概率抽取6位数,代码如下

from random import sample
t = [x for x in range(1, 11)]
print(sample(t,6))

from random import randrange, randint, sample
import random
 
def display(balls):
    """
    按照题目所要求格式输出列表中的双色球号码
    :param balls:双色球号码列表,如[9,12,16,20,30,33 3]
    :print:输出格式为09 12 16 20 30 33 | 03
    :return: 无返回值
    """
    # *************begin************#
    blue = balls[len(balls) - 1]
    red = balls[:len(balls) - 1]
    red.sort(reverse=False)
    for i in range(len(red)):
        print('{:0>2}'.format(red[i]), end=" ")
    print('| {:0>2} '.format(blue))
    # **************end*************#
 
 
def random_select():
    """
    随机选择一组号码
    :return: 返回随机选择的这一组号码,如[9,12,16,20,30,33 3]
    """
    # *************begin************#
    blue_list = sample([x for x in range(1, 34)], 6)
    red_list  = sample([x for x in range(1, 17)], 1)
    return blue_list + red_list
    # **************end*************#
 
# n为注数
def main(n):
    for _ in range(n):
        display(random_select())
 
random.seed(3)
n = int(input())
if __name__ == '__main__':
    main(n)
  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值