题目001:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n【思路】:学了lambda想耍一下,结果发现官网写的比我还简洁!n =17 fenmu = range(2,n+1,2) if n%2==0 else range(1,n+1,2) s = sum(map(lambda x:1/x,fenmu)) print(
题目001:按位操作学习使用按位与 &学习使用按位或 |学习使用按位异或 ^学习使用按位取反 ~【思路】:大概看了一下资料,按位操作可以通过bin()函数转换为二进制从而实现。感觉二进制的计算如果不是学加密之类的基本用不上。所以这一题,大概写了集合的用法,&、|在python中是集合set()才用的符号两个列表求交集并集,通常也都是转换为集合,然后进行计算的。 # 可迭代变量转换为
001.模仿静态变量的用法【思路】:不是很清楚什么意思,直接看了官网的解答。如果是函数中的局部变量,每次调用函数都会初始化。而类中的变量,创建类的时候初始化,每次执行类中的函数的时候,不会初始化类变量。看起来是想说这么个意思。def varfunc(): var = 0 print('var = %d' % var) var += 1 if __name__ == '__main__': for
题目031:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。【思路】:按照题意要求实现了就行week = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'] inp = '' while 1: arr = [] inp = inp+input('请输入一个字母:')
题目026:利用递归方法求5!def fac(x): if x>1: return x*fac(x-1) else: return x def tm026():【思路】:按题目要求,公式f(n)=n*f(n-1),递归调用求解。print(fac(5))题目027:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。def output(s,l): if l==0: return
题目021:猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。【思路】:第十天num=1个,第九天必然是4个:4/2-1=1,也就是(num+1)*2=4。 做这种题,先用算数式列出来,然后用代码描述就行了。n
题目016:输出指定格式的日期。【思路】:用的不多经常忘,整理了一下参考答案和一些转换import time print(time.time()) # 时间戳 1498539133.655 print(time.localtime()) # 时间元祖 tm_year=2017, tm_mon=6, tm_mday=27, tm_hour=12, tm_min=53, tm_sec=16, tm_w
题目011:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死。问每个月的兔子总数为多少?其实这道题就是斐波那契数列的由来。【思路】:理清思路是关键,理解成满两个月后,每月都能生兔子,就好办了。m1=1 # 满月 m2=0 # 满俩月(下个月生兔子) mm=0 # 可以月月生兔子了 for i in range(1,10): # 过了
题目006:斐波那契数列 程序分析:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。 【思路】:很多种解法,我是按照分割的方式,每次取列表后两项,然后相加。l = [0,1] for i in range(10): arr = l[-2:] l.append(arr[0]+arr[1]) print(l)题目007:将一个列表的数据复制到另一
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号