python练习题3

1.随机生成双色球程序。

import random
list_red=[x for x in range(1,34)]  #1-33的红色球系列
res=random.sample(list_red,6)    #随机选取6个红球
res.sort()                       #对选取的6个红球进行排序
res.append(random.randint(1,16))  #随机选取一个蓝球
print(res)

运行结果:
在这里插入图片描述
2.暂停一秒输出,并格式化当前时间。

import time
print( time.strftime("%Y-%m-%d %H:%M:%S"),time.localtime())
time.sleep(1)
print( time.strftime("%Y-%m-%d %H:%M:%S"),time.localtime())

运行结果:
在这里插入图片描述
3.输入三个整数x,y,z,请把这三个数由小到大输出。

l=[]
for i in range(3):
    x=int(input('integer:'))
    l.append(x)
l.sort()
print(l)

运行结果:
在这里插入图片描述
4.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

tour=[]
height=[]
hei=100.0 #起始高度
tim=10  #次数
for i in range(1,tim+1):
    if i==1:
        tour.append(hei)
    else:
        tour.append(2*hei)
    hei /= 2
    height.append(hei)
print('总高度:tour={0}'.format(sum(tour)))
print('第10次反弹的高度:height={0}'.format(height[-1]))

运行结果:
在这里插入图片描述
5.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

peach_sum = 1
for i in range(9):
    peach_sum = (peach_sum + 1) * 2
print("第一天共摘了 %d 个桃子" % peach_sum)

运行结果:
在这里插入图片描述
6.斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。以递归的方法来定义,输出前20项。

def fib(n):
    list = [0,1]
    a,b = 0,1
    for i in range(2,n+1):
        a,b=b,a+b
        list.append(b)
    return list

while True:
    try:
        x = int(input('请输入斐波那契数列的长度:'))
        if x <= 0:
            print('长度输入不合法!')
            continue
        else:
            sum = 0
            list = fib(x) # 调用前面写的fib函数
            print('前{}项的斐波那契数列是:'.format(x))
            for j in range(0,x):
                print(list[j],end=' ')
                sum = sum + list[j] # 求和
            print ('\n')
            print('前{}项的斐波那契数列之和是:\n{}'.format(x,sum))
            break
    except ValueError:
        print ('长度输入不合法!')
        continue

运行结果:
在这里插入图片描述
7.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

a = int(input("请输入数字:"))
b = int(input("请输入相加个数:"))
aa, aa_sum = 0, 0
for i in range(1, b+1):
    aa += a * 10**(i-1)
    aa_sum += aa
print(aa_sum)

运行结果:
在这里插入图片描述
8.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

count = 0
for i in range(100, 1000):
    f = i
    # 提取百位数
    a = int(f / 100)
    # 提取十位数
    f -= a*100
    b = int(f / 10)
    # 提取个位数
    c = f - b*10
    # 判断是否是水仙花数
    if a**3 + b**3 + c**3 == i:
        print(i)
        count += 1
print("共有 %d 个水仙花数" % count)

运行结果:
在这里插入图片描述
9.输出 9*9 乘法口诀表。

for i in range(1, 10):
    for j in range(1, i + 1):
        print("%2d*%d=%d" % (i, j, i * j), end="\t")
    print()

运行结果:
在这里插入图片描述10.输入某年某月某日,判断这一天是这一年的第几天?

year = int(input("请输入年:"))
month = int(input("请输入月:"))
day = int(input("请输入日:"))
Day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 4 == 0 and year % 100 != 0)or year % 400 == 0:
    Day_month[1] = 29
print("这一天是这一年中的第{0}天".format(sum(Day_month[0:month-1]) + day))

运行结果:
在这里插入图片描述
11.打印出如下图案(菱形):
在这里插入图片描述

def fun():
    f = -1
    j = 4
    for i in range(4):
        j -=1
        f += 2
        print(j*' ' + f * '*')
    for i in range(3):
        j +=1
        f -= 2
        print(j*' ' + f * '*')
fun()

运行结果:
在这里插入图片描述
12.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前30项之和。

a=2.0
b=1.0
s=0
for n in range(1,31):
    s += a/b
    b,a=a,a+b
print(s)

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值