前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2019年学习Python-day5作业

2019年学习Python-day5作业

原创
作者头像
qq317062516
修改2019-11-27 11:14:47
4590
修改2019-11-27 11:14:47
举报
文章被收录于专栏:python学习2020
代码语言:javascript
复制
# 1.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
# t = int(input('请输入查询的次数:'))
t = 10               # 落地次数
y, n = 100, 100      # 第一次从什么高度落下, 第一次落地经过多少米
for i in range(1, t):
    n += y           # 第 T 次 落地共经过多少米
    y /= 2           # 第 T 次 落地从什么高度落下
y /= 2               # 第T次落地后反弹的高度
print('第%d次落地时,共经过 %f米,第%d次反弹 %f 厘米.' % (t, n, t, y * 100))

# 2.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
# n = int(input('请输入查询范围'))
n = 1000                                 # 查询范围
for i in range(2, n):
    list_01 = [i]                        # 将查询的数放入列表
    for j in range(1, i):
        if i % j == 0:
            list_01.append(j)            # 将因子放入列表后面
    m = 0                                # 求列表所有因子的和
    for k in list_01:
        m += k / 2                       # [0] 是数本身,后面是因子
    if m == list_01[0]:                  # 如果和等于他本身就就是完数
        a = list_01.pop(0)               # 弹出完数
        print('%d 以内的所有完数有%s=%s' % (n, a, '+'.join('%s' % i for i in list_01)))

# 3.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
my_str = input('请输入一行字符:')
alpha, space, digit, k = 0, 0, 0, 0
for c in my_str:
    if c.isalpha():
        alpha += 1  # 查找字母个数
    elif c == ' ':
        space += 1  # 查找空格个数
    elif c.isdigit():
        digit += 1  # 数字个数
    else:
        k += 1      # 除了上述的其余个数
print('你输入的内容是%s,其中的字母有%d个,空格有%d个,数字%d个,其他字符%d个' %
      (my_str, alpha, space, digit, k))

# 4. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
# 兔子的规律为数列1,1,2,3,5,8,13,21....
n = int(input('请输入月份:'))
if n == 1 or n == 2:
    print('第%d月只有1对兔子' % n)
elif n > 2:
    f1 = 1
    f2 = 1
    list_02 = []
    for f in range(3, n+1):
        f2, f1 = f1, f1+f2   # 2,3,5,8,13,21
        list_02.append(f1)
    print('第%d月兔子的总数是%d,规律是1,1,%s' % (n, f1, ','.join('%s' % i for i in list_02)))
else:
    print('请输入正整数')

# 5. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
my_list = [100*x+10*y+z for x in range(1, 5) for y in range(1, 5) if x != y for z in range(1, 5) if x != z if y != z]
print('1,2,3,4可以组成%d个不相同且无重复数字的三位数,分别是:%s' % (len(my_list), my_list))

# 6. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,
# 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少
n = 1   # 第十天早上剩余是1
for i in range(9, 0, -1):  # 第十天没吃
    n = (n + 1) * 2         # 第九天没吃前4个
print('第一天共摘了%d个桃子' % n)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档