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='')
如果有示例有需要改正优化之处,留下宝贵意见。
感谢。
加油!希望可以成为合格的程序猿吧!
晚安!
扫描二维码关注公众号,回复:
11178850 查看本文章
![](/qrcode.jpg)