python练习题

作者: 戈小蓓 | 来源:发表于2019-12-17 23:44 被阅读0次

1、输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格)

a = [i for i in range(2,101)]
b=[]
while a:
    b.append(str(a[0]))
    a = list(filter(lambda x: x % a[0], a))
print(' '.join(b))

2、有一个list,里面有4个数字,分别是3,6,2,7
这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们

lst = [3,6,2,7]
number_lst = []
for i in lst:
   for j in lst:
       for k in lst:
           if i != j and i != k and j != k:
               number_lst.append(str(i)+str(j)+str(k))
print(len(number_lst))
print(number_lst)

3、打印10000以内的完全平方数
答案:

num = 1
while True:
    number = num*num
    if number > 10000:
        break
    print(number)
    num += 1

4、打印乘法口诀表

for num  in range(1,10):
    for j in range(1,num+1):
        k=num*j
        print("%d*%d=%d" %(num,j,k),end="")
    print(" ")

5、输出所有的水仙花数,所谓水仙花数是指一个三位数,各个位上的数的立方相加在一起等于这个三位数
比如153,1的3次方 + 5的三次方 + 3的三次方 等于153
思路分析:
(1)需要遍历100到999的所有数字
(2)逐一判断是否符合水仙花数的规则
(3)需计算出一个三位数的百位数,十位数,个位数
(4)求3的立方,在python里这样写 3**3
答案:

for n in range(100,1000):
    i = n / 100         #获取百位数
    j = n / 10 % 10     #获取十位数
    k = n % 10          #获取个位数
    if n == i**3 + j ** 3 + k ** 3:
        print(n)

6、计算小球反弹高度:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
求它在第10次落地时,共经过多少米?第10次反弹多高?
思路分析:
(1)第一次落地时经过的距离是100米,第一次反弹的高度是50米
(2)第二次落地时经过的距离是200米,第二次反弹的高度是25米
答案:

height = 100               # 初始高度
highs = height             # 第一次弹起前的距离,初始化
height = height / 2        # 第2次能弹起来的高度
for i in range(2,11):
    highs += height * 2   # 第2次弹起来的距离,是弹起高度的来回
    height /= 2           # 准备下一次的高度
print(height,highs)

7、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,
又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?
思路分析:
1)第10天只有一个桃
2)第9天应该有4个桃
3)第8天应该有10个桃
答案:

current = 1
for day in range(9,0,-1):
    yestoday = (current+1)*2
    current = yestoday
print (yestoday)

相关文章

网友评论

    本文标题:python练习题

    本文链接:https://www.haomeiwen.com/subject/nstywctx.html