Python开发技术—流程控制之循环结构 (带注释)

 Python免费学习网址:

RUNOOB.COM

目录

第1关:计算阶梯数

第2关:打印三角形图案

第3关:双色球选号

第1关:计算阶梯数

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

刚刚拿到以为很难,不就是一次吃5个汉堡,剩了2个。5的倍数,余数是2呗 

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

第2关:打印三角形图案

相关知识:for循环嵌套语句。

编程要求:根据参数pow(三角形行)编写一个能打印pow行三角形图案的函数。 

解析非常详细见上一篇链接:打印三角形图案,三种+拓展

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(1,row+1):
        for j in range(row-i):
            print(" ",end="") 
        for k in range(a):
            print("*",end="")
        a+=2
        print("\n",end="")
    # **************end*************#
    
row = int(input())
triangle(row)

第3关:双色球选号

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

相关知识:1.条件语句,2.列表操作,3.循环语句,4函数定义及调用。

编程要求:

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

1.如何实现随机抽取数字呢?等概率的生成一组无重复的数,可以采用sample函数

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

2.如何解决输出空格报错呢?

end=""  #为了同一行输出
end=" " # 在引号间空格,输出就会同一行且空一格

'| {:0>2} '   #输出蓝球,前后的空格
'|{:0>2}'
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]#蓝色球是列表最后一个6
    red = balls[:len(balls)-1]#红色球是列表0-5
    red.sort(reverse=False)#顺序排序,反向是False
    for i in range(len(red)):#输出红球
        print('{:0>2}'.format(red[i]),end=" ")#长度为2,空一格.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)#sample函数作用:等概率的生成一组无重复的数
    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)

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值