Python语言程序设计基础(第二版)P93答案示例

P93程序练习题代码示例

3.1 重量计算。月球上物体的体重是在地球上的16.5%,假如你在地球上每年增长 0.5 kg,编写程序,输入未来十年你在地球和月球上的体重状况。示例:

#重量计算
weight = int(input("请输入你的体重(kg):"))

s = 0.5 #定义初始值每次都增长 0.5 KG
#十年后
for i in range(10):
    #持续增加0.5KG体重
    weight = weight + s

print("在地球体重是:{:.2f}kg".format(weight))
print("在月球体重是:{:.2f}kg".format(weight*0.165))

在这里插入图片描述
3.2 天天向上续。尽管每天坚持,但人的能力发展并不是无限的,它符合特定的模型。假设能力增长值符合如下带有平台期的模型:以7天为周期,连续学习三天能力值不变,从第四天开始至第七天能力增长为前一天的1%。如果七天有一天间断学习,则从头计算。请编写程序代码:如果初始能力值为1,连续学习365天后的能力值是多少?代码如下:(此题太难理解了,苦死小白)

import random
power = 1 #初始能力值
# 能力增长值
dayup = 0.01
#周期数 起始 = 0。每执行完七天就算一个周期。
week = 0
for i in range(365):
    # 连续学习三天能力值不变
    if i%7 in [0,1,2]:
        pass
    # 从第四天开始至第七天每天能力增长为前一天的百分之1
    if i%7 in [3,4,5,6]:
        power = power * (1 + dayup)
        #如果i%7为6,则周期数+1
        if i%7 in [6]:
            week += 1

#如果七天里有一天  间断学习  则周期从头计算

print('连续学习365天后的能力值为{:.3f}'.format(power))
print('连续周期数为{}'.format(week))

在这里插入图片描述

3.3 天天向上续。采用3.2模型。如果初始能力值为1,固定每十天休息1天,365天后的能力值是多少呢?每十五天休息一天呢?代码:(此题感谢教师的指导,还是学到了很多。加油。)

n = 0.01  # 能力增长值
off = [10, 15]  # 每十天休息一次,每十五天休息一次

for k in off:
    capacity = 1  # 初始能力值(可迭代)
    j = 0  # 天数
    for i in range(365):

        if i % k != 0:  # 前9天 and 前14天

            if (i - (k + 1) * j) % 7 not in [1, 2, 0]:
                capacity = capacity * (1 + n)  # 能力值每次增长0.01
            else:  # 否则能力不增长
                capacity = capacity
        else:
            j += 1  # 天数+1,但是能力值并不会增长!
            capacity = capacity  # 休息的时候能力值不变的
    print("Rest every {} days, capacity is: {:.2f} after 365 days.".format(k, capacity))

在这里插入图片描述
3.4 回文数判断。设n是任意自然数,如果n的各位数字反向排序所得自然数与n相等,则n被称为回文数。 从键盘输入一个五位数,请编写程序判断这个数字。 代码示例:

n = input("请随机输入一个五位数的数字:")

if n[4] == n[0] and n[3] == n[1]:
    print("是回文数")
else:
    print("不是回文数")

在这里插入图片描述
回文数判断。解法二:(已了解)

def is_palindrome(num):
    """判断一个数是不是回文数"""
    temp = num
    total = 0
    while temp > 0:
        total = total * 10 + temp % 10
        temp //= 10
    return total == num

3.5 用print()函数输出一个田字格。示例:

#田字格效果
s = ("+ " + "—— " * 4) * 2 + "+\n"  #top
s1 = ("| " + " "*12 )*3 + "\n"    #body
print(s+s1*4+s+s1*4+s)

在这里插入图片描述

3.6 打印如下形式的进度条。示例:

import sys,time

text = 'Starting ...Done!'
for i in range(len(text)):
    sys.stdout.write('%s%s%s%.2f%%'%(text[:i+1],'>'*(2),' '*(17-i),(i+1)*100/17))
    # sys.stdout的形式就是print的一种默认输出格式
    sys.stdout.write('\n')
    time.sleep(0.3)

在这里插入图片描述
3.7. 文本风格。将以下代码保存为文件,在终端打开。可以看到几个符号的刷新变化。

while True:
    for i in ['/','-','|','\\','|']:
        print('%s\r' % i,end='')

如果有示例有需要改正优化之处,留下宝贵意见。
感谢。
加油!希望可以成为合格的程序猿吧!
在这里插入图片描述
晚安!

原创文章 27 获赞 34 访问量 2602

猜你喜欢

转载自blog.csdn.net/weixin_46313446/article/details/105382323
今日推荐