Python练习题 020:累积累加】的更多相关文章

[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 =…
[Python练习题 021] 利用递归方法求5!. ---------------------------------------------- 首先得弄清楚:5! 指的是"5的阶乘",即 5! = 1*2*3*4*5. 然后呢,据说,"递归"就是对自身进行调用的函数.听着挺奇怪,反正先依葫芦画瓢,写代码如下: def f(x): if x == 0: return 0 elif x == 1: return 1 else: return (x * f(x-1))…
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码!而且还不包含输入数据的验证(只能假设输入的日期是严格按照格式来的).但我坚信,一定有更简洁的方法,比如 Python 对日期的处理. 不过反正还没学到这些知识,现在只能用傻大粗的办法解决.等学到高级的办法再来更新吧~~~ 思路:先判断是否为闰年,这关系到 2 月份的天数.之后再根据月份值把前几个月的…
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools import reduce In [2]: print(reduce(lambda x, y: x + y, range(1, 1001))) Out[2]: 500500 知识点: 1. 匿名函数:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个…
[Python练习题 002]企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%:20万到40万之间时,高于20万元的部分,可提成5%:40万到60万之间时高于40万元的部分,可提成3%:60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 好吧,学渣如我,能想到的就是老老…
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra…
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了.代码如下: s = input('请输入10个数字,以空格隔开:') n = [int(x) for x in s.split(' ')] n.sort() print(n) 输出结果如下: 请输入10个数字,以空格隔开:3 23 4…
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想让我用点新技能.比如 map() 之类的?可是我想了半天还是没想出来啊!只好还是用土办法.代码如下: 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)…
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ----------------------------------------------- 做题做到现在,这种题目已经很轻车熟路了.希望下一题能增加点难度啊~~~ x = input('请输入一个5位数:') if x[0] == x[4] and x[1] == x[3]: print('%s是个回文数' % x) else: print('%s不是回文数' % x) 输…
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- 这题如果不用递归,实在太简单了!!!代码上: str = input('请输入一个不多于5位的正整数:') print('这个数字是%s位数,逆序为%s.' % (len(str), str[::-1])) 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954…