编写带有计算任务的进度条程序。参考教材第3章实例4,计算任务为:求解n!的计算任务,由用户输入数列长度(n)。
时间: 2023-05-30 12:04:48 浏览: 65
以下是Python代码实现:
```
import time
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
def progress_bar(n):
print("Calculating n! ...")
for i in range(1, n+1):
time.sleep(0.1)
percentage = i/n * 100
print("Progress: [{0:20s}] {1:.1f}%".format('#' * int(percentage/5), percentage), end='\r')
print("\nResult: ", factorial(n))
n = int(input("Enter the value of n: "))
progress_bar(n)
```
首先定义了一个递归函数`factorial(n)`,用于计算n的阶乘。然后定义了一个进度条函数`progress_bar(n)`,其中使用`range()`函数遍历1到n的整数,并且使用`time.sleep()`函数模拟计算n!的时间。在每次循环中,计算进度的百分比,并使用`format()`函数打印进度条,其中`{0:20s}`表示字符串占20个字符的位置,`{1:.1f}`表示浮点数占1个字符的位置,并且小数点后保留1位。最后打印计算结果。
输入n的值后,调用`progress_bar(n)`函数,即可看到进度条的变化和计算结果。