程序练习题
我自己做的课后习题答案,解析中会存在错误或者存在更多更好的解法,欢迎指正!
3.1 重量计算
#重量计算
weight = eval(input('请输入你的体重(kg):'))
for i in range(10):
new_weight = weight + 0.5*(i + 1)
print('未来第{:^5}年地球体重为{:.3f}kg,月球体重为{:.3f}kg'.format(i+1, new_weight, new_weight*0.165))
请输入你的体重(kg):60
未来第 1 年地球体重为60.500kg,月球体重为9.982kg
未来第 2 年地球体重为61.000kg,月球体重为10.065kg
未来第 3 年地球体重为61.500kg,月球体重为10.148kg
未来第 4 年地球体重为62.000kg,月球体重为10.230kg
未来第 5 年地球体重为62.500kg,月球体重为10.312kg
未来第 6 年地球体重为63.000kg,月球体重为10.395kg
未来第 7 年地球体重为63.500kg,月球体重为10.478kg
未来第 8 年地球体重为64.000kg,月球体重为10.560kg
未来第 9 年地球体重为64.500kg,月球体重为10.643kg
未来第 10 年地球体重为65.000kg,月球体重为10.725kg
3.2 天天向上续
代码如下:
#天天向上续.py
dayup = 1.0
for i in range(365):
if i % 7 in [0,1,2]:
dayup = dayup
else:
dayup *= (1+ 0.01)
print("连续学习365天后能力值为{:<.3f}".format(dayup))
结果如下:
连续学习365天后能力值为7.922
3.3 天天向上续
固定每10天休息1天代码如下:
#天天向上续.py
dayup = 1.0
for i in range(365): #以10天为单位计算能力增加值
if i % 10 in [0,1,2,7,8,9]:
dayup = dayup #第1,2,3,8,9,10天能力不变
else:
dayup *= (1+0.01) #第4-7天能力在之前基础上增加1%
print("连续学习365天后能力值为{:<.3f}".format(dayup))
运行结果如下:
连续学习365天后能力值为4.275
固定每15天休息1天代码如下:
#天天向上续.py
dayup = 1.0
for i in range(365): #以15天为单位计算能力增加值
if i % 15 in [0,1,2,7,8,9 ,14]:
dayup = dayup #第1,2,3,8,9,10,15天能力不变
else:
dayup *= (1+0.01) #第4-7,11-14天能力在之前基础上增加1%
print("连续学习365天后能力值为{:<.3f}".format(dayup))
运行结果如下:
连续学习365天后能力值为6.892
3.4 回文数判断
#回文数判断.py
num = input('请输入一个数字:')
new_num = num[::-1]
if eval(num) == eval(new_num):
print("此数是回文数")
else:
print("此数不是回文数")
3.5 田字格的输出
#田字格的输出.py
a = ' + '
b = ' - '
c = ' | '
d = ' '
for i in range(11):
if i in [0,5,10]:
print('{0}{1}{0}{1}{0}'.format(a,b*4))
else:
print('{0}{1}{0}{1}{0}'.format(c,d*4))
输出结果
+ - - - - + - - - - +
| | |
| | |
| | |
| | |
+ - - - - + - - - - +
| | |
| | |
| | |
| | |
+ - - - - + - - - - +
>>>
3.6文本进度条
代码如下:
#!/usr/bin/python3
import time
for i in range(101):
scale = i//30
a = '.' * scale
print('\rStarting {}'.format(a),end = '')
time.sleep(0.02)
print('\rStarting {} Done!'.format('.'*3))
终端运行结果如下:
(base) liuyang@192 ~ % documents/TextBar.py
Starting .
Starting ..
Starting ... Done! #同行刷新分别展示
3.7 文本风格运行结果
在同一位置不断交替出现"/","-","|","","|",运行如下:
(base) liuyang@192 ~ % documents/文本风格.py
zsh: permission denied: documents/文本风格.py
(base) liuyang@192 ~ % chmod a+x ./documents/文本风格.py
(base) liuyang@192 ~ % documents/文本风格.py
|
删除 end = ““后,每行行首交替出现”/”,"-","|","","|"。
3.8 tqdm进度条
使用pip3 install tqdm安装tqdm第三方库。
(base) liuyang@192 ~ % pip3 install tqdm
Collecting tqdm
Downloading tqdm-4.48.0-py2.py3-none-any.whl (67 kB)
|████████████████████████████████| 67 kB 6.5 kB/s
Installing collected packages: tqdm
Successfully installed tqdm-4.48.0
测试代码
#a3.8tqdmBar.py
from tqdm import tqdm
from time import sleep
for i in tqdm(range(1,100)):
sleep(0.01)
运行结果
0%| | 0/99 [00:00<?, ?it/s]
9%|▉ | 9/99 [00:00<00:01, 88.86it/s]
17%|█▋ | 17/99 [00:00<00:00, 85.49it/s]
25%|██▌ | 25/99 [00:00<00:00, 81.32it/s]
33%|███▎ | 33/99 [00:00<00:00, 78.76it/s]
40%|████ | 40/99 [00:00<00:00, 75.05it/s]
47%|████▋ | 47/99 [00:00<00:00, 69.99it/s]
55%|█████▍ | 54/99 [00:00<00:00, 66.56it/s]
62%|██████▏ | 61/99 [00:00<00:00, 65.45it/s]
69%|██████▊ | 68/99 [00:00<00:00, 64.18it/s]
76%|███████▌ | 75/99 [00:01<00:00, 62.13it/s]
83%|████████▎ | 82/99 [00:01<00:00, 59.78it/s]
89%|████████▉ | 88/99 [00:01<00:00, 58.44it/s]
95%|█████████▍| 94/99 [00:01<00:00, 55.74it/s]
100%|██████████| 99/99 [00:01<00:00, 59.90it/s]