⑴ python中如何用for语句写出从1的阶乘到20的阶乘的加和
def sum_factorial(start, stop):
# 递归求阶乘
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
# 生成器解析式生成各个数的阶乘,然后再求和
return sum(factorial(i) for i in range(start, stop+1))
# 调用函数,测试代码
print(sum_factorial(1, 20))
在不调用库的情况下,最容易想到的就是循环里面套循环,不过这样子占用时间为O(n^2)。当然你这里也就n=20,两层循环没啥问题,不过当n足够大时,可以考虑用算法。
递归算法占用时间为O(n),一个for循环为O(stop+1-start),两者相加,比两层循环效率高,当然这也是在n足够大的时候,才谈效率。
⑵ python中算数运算符都有哪些
下表列出了所有Python语言支持的算术运算符。假设变量a持有10和变量b持有20,则:
运算符描述实例
+加法 - 对操作符的两侧加值a + b = 30
-减法 - 从左侧操作数减去右侧操作数a - b = -10
*乘法- 相乘运算符两侧的值a * b= 200
/除 - 由右侧操作数除以左侧操作数b / a = 2
%模 - 由右侧操作数和余返回除以左侧操作数b % = 0
**指数- 执行对操作指数(幂)的计算a**b = 10 幂为 20
//地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。9//2 = 4 而 9.0//2.0= 4.0 例子:
试试下面的例子就明白了所有的Python编程语言提供了算术运算符:
#!/usr/bin/python
a = 21
b = 10
c = 0
c = a + b
print "Line 1 - Value of c is ", c
c = a - b
print "Line 2 - Value of c is ", c
c = a * b
print "Line 3 - Value of c is ", c
c = a / b
print "Line 4 - Value of c is ", c
c = a % b
print "Line 5 - Value of c is ", c
a = 2
b = 3
c = a**b
print "Line 6 - Value of c is ", c
a = 10
b = 5
c = a//b
print "Line 7 - Value of c is ", c
当执行上面的程序,它会产生以下结果:
Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 8
Line 7 - Value of c is 2
⑶ 利用python输出倒置排列的九九乘法表
通过使用Python,我们可以生成一个倒置排列的九九乘法表,具体代码如下:
for ii in range(9, 0, -1):
for jj in range(9, 0, -1):
if jj <= ii:
print('{0}*{1}={2}'.format(ii, jj, str((ii * jj)).rjust(2, ' ')), '', end='')
print('')
运行这段代码,我们得到的结果是:
9*9=819*8=729*7=639*6=549*5=459*4=369*3=279*2=189*1=9 8*8=648*7=568*6=488*5=408*4=328*3=248*2=168*1=8 7*7=497*6=427*5=357*4=287*3=217*2=147*1=7 6*6=366*5=306*4=246*3=186*2=126*1=6 5*5=255*4=205*3=155*2=105*1=5 4*4=164*3=124*2=84*1=4 3*3=93*2=63*1=3 2*2=42*1=2 1*1=1
这样,我们就可以得到一个从9乘9到1乘1的倒序排列的乘法表,每个乘法表达式右侧补足两位数,使得每行的格式统一。
通过这样的方式,我们可以利用Python轻松生成各种形式的乘法表,不仅限于倒置排列,还可以生成正序排列或其他特殊排列的乘法表。
此外,这种方式也可以根据需要调整乘法表的大小,只需修改range函数中的参数即可。
总之,利用Python生成乘法表是一种非常灵活且高效的方法,可以满足各种不同的需求。
⑷ Python编写一个函数,求1*2*3*4...*n的乘积,编写主程序,从键盘输入一个整数,并
代码如下:
#coding=utf-8
n=int(input('请输入一个正整数:'))
num=1
foriinrange(1,n+1):
num=num*i
print('结果:',num)
运行结果:
⑸ python中 print "-"*20的作用
在Python中,使用字符串乘以整数是一种常见的技巧,主要用于快速生成重复的字符串序列。具体而言,当我们将一个字符串与一个整数相乘时,实际上是将该字符串重复整数次并连接在一起。比如,"-" * 20 将生成一个由20个连字符("-")组成的字符串。
因此,上述语句 "print '-' * 20" 的功能就是打印出连续20个连字符。这在需要快速生成分隔符或边界线时非常有用,比如在输出中分隔不同部分或创建美观的布局。
此外,这种方法还具有简洁性和可读性。相比于手动编写一个包含20个连字符的字符串,使用乘法操作更为直观且易于维护。例如,如果需要在输出中插入一条长的分隔线,只需简单地调整乘数即可。
在实际编程中,这种技巧常用于日志记录、界面设计和数据展示等多个场景。例如,在日志文件中,它可以用来标识不同的记录级别;在用户界面中,它可以用来创建清晰的分隔线,使界面更加整洁有序。
总之,利用字符串乘以整数的方法,可以快速生成重复的字符串序列,使得代码更加简洁、易读且高效,特别是在需要生成分隔符或边界线时,这种方法显得尤为便捷。