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!")