Python免费学习网址:
目录
第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)