第三章练习题

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

weight=eval(input("请输入您的体重(kg):"))
for i in range(1,11):
    weight_earth=weight+0.5*i
    weight_mooon=weight_earth*0.165
    print("未来{}年在地球和月球上体重分别为:{:.2f},{:.2f}".format(i,weight_earth,weight_mooon),end="")
    print()

注:最后一个print()作用是换行
输入结果:
在这里插入图片描述
3.2天天向上续。以7天为周期,连续学习3天能力值不变,从4天开始至第7天每天能力增长为前一天的1%。如果7天中有1天间断学习,则周期从头计算。如果初识能力值为1,连续学习365天后能力值是多少?

dayup,dayfactor=1,0.01
for i in range(365):
    if i % 7 in [3,4,5,6]:
        dayup=dayup*(1+dayfactor)
print("连续学习365天后能力值是:{:.2f}".format(dayup))

在这里插入图片描述
3.3天天向上续。如果初始能力值为1,固定每10天休息1天,365天后能力值是多少?如果每15天休息1天呢?

power=1.0
study='y'
unstudy='n'
temp=0
for i in range(365):
    if i%11==0:
        state='n'
    else:
        state='y'
    if state==study and (temp in [0,1,2]):
        power*=1
        temp=(temp+1)%7
    elif state==study and (temp in [3,4,5,6]):
        power*=(1+0.01)
        temp=(temp+1)%7
    elif state==unstudy:
        power*=1
        temp=0
print("365天后的能力值是:{:.3f} ".format(power))

易错点:study和unstudy最开始需要进行赋值;
以及temp的作用是进行周期的判断;
若每15天休息1天,则只需改为if i%16 ==0:
3.4回文数判断。

number=input("请输入一个五位数:")
if number[0]==number[-1] and number[1]==number[-2]:
    print("此数字是一个回文数")
else:
    print("此数字不是一个回文数")

输入结果:
在这里插入图片描述
另法:

while 1:
    string=input("Input 5 number:")
    if string !='':
        reverse=string[-1::-1]
        if string==reverse:
            print("{} is symmetric".format(string))
        else:
            print("{} is symmetric".format(string))
    else:
        break

3.5田字格的输出。使用print()函数输出田字格

a,b,c,d = "+","-","丨","  "
e=4*b+a
f=4*d+c
for i in range(2):
    print(a+2*e)
    for i in range(4):
        print(c+2*f)
print(a+2*e)

在这里插入图片描述
对上述代码进行改进,即可以输出不同阶数的田字格

def tianzige(h,l):
    a,b,c,d = "+","-","丨","  "
    hang = 4*b + a
    ch   = 4*d + c
    for i in range(h):
        print(a+hang*l)
        for i in range(4):
            print(c+ch*l)
    print(a+hang*l)

h,l = eval(input("请输入行和列(用逗号隔开):"))
tianzige(h,l)

在这里插入图片描述

3.6 文本进度条。仿照实例4,打印如下形式的进度条。

import time
for i in range(102):   
    if i not in [101]:
        time.sleep(0.05)
        print('\rStarting {:.0f}%' .format(i),end='')
    else:
        print("\rStarting...Done!")
  • 28
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值