方法一 import functools   sum = 0 for i in range(1,21):     sum = sum + functools.reduce(lambda x,y: x*y, range(1, i+1)) print(sum)   lambda x,y: x*y 的意思是:有一个函数,接受x, y两个参数做乘法.   import functools  方法二 def f(n):     if n == 1:         return 1     else:  …
[Python练习题 020] 求1+2!+3!+...+20!的和 -------------------------------------------------- 据说这题是"累积累加"的问题,把"1+2!+3!+...+20!"展开就变成: 1 1*2 1*2*3 1*2*3*4 -- 1*2*3*4--*20 弄懂了这规律,问题就好解决了.代码如下: sum = 0 x = 1 for i in range(1,21): x = x * i sum =…
目标: 用类管理同类事物 解析: 用到“class”的编程语言被称作“Object Oriented Programming(面向对象编程)”语言.首先你需要做出“东西”来,然后你“告诉”这些东西去完成它们的工作. 练习: 采用类,重写<Python3练习题系列(08)>的游戏案例. 代码: from sys import exit from random import randint class Game(): def __init__(self, start): self.quips =…
1 /*21 [程序 21 求阶乘] 2 题目:求 1+2!+3!+...+20!的和 3 程序分析:此程序只是把累加变成了累乘. 4 */ 5 6 /*分析 7 * 1.汲取上一题的教训,这么大的数字,long类型 8 * 2.for循环,两层,一层控制1~20,另一层控制阶乘 9 * */ 10 11 package homework; 12 13 public class _21 { 14 15 public static void main(String[] args) { 16 //声…
后一个分数的分子=前一个分数的分子+分母,后一个分数的分母=前一个分数的分子,循环个20次就有结果.注意,假设分子为a,分母为b,虽然 a = a + b, 但此时a已经变成 a+b 了,所以再给b重新赋值的时候,得是 (a+b)-b 才能等于原分母b,所以重新赋值时就得写成 a-b 方法一 from fractions import Fraction def fibonacci(n): a, b = 1, 2 res = [1] i = 1 while i < n: a, b = b, a+b…
#Python练习题 001:4个数字求不重复的3位数#方法一import itertoolsres = [][res.append(i[0]*100 + i[1]*10 + i[2]) for i in itertools.permutations(range(1,5),3)]print(res, end = ',') """参考https://www.cnblogs.com/iderek/p/5952126.html""" #方法二for i…
利用递归方法求5!. 方法一 f = 1 for i in range(1,6):     f = f * i print(f)   方法二 import functools print(functools.reduce(lambda x,y:x*y, range(1,6)))   方法三 import functools, operator print(functools.reduce(operator.mul, range(1,6)))   方法三切片 str = input('请输入若干字…
sum = 0 for i in range(1,1000):     if i%3 == 0 or i%5 == 0:         sum += i print(sum)…
p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始     for j in range(2, i):         if i%j == 0:             p.remove(i)             break print(p)…
这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 - 1 = 1,可得 p = 4.以此类推,即可手算出. 代码思路为:第10天还没吃之前的桃子数量初始化 p = 1,之后从9至1循环9次,根据上述公式反推为 p = (p+1) * 2 可得第1天还没吃之前的桃子数量.#方法一p = 1print('第10天吃之前就剩1个桃子')for i in range(1, 10): p = (p+1) * 2 print('…