Python学习--第一周--小练习
1、实现1+2!+3!+4!+5!+...+n!
1 '''计算1+2!+3!+...+n!''' 2 n = int(input('输入n的数值:')) 3 totalnum = 1 4 for i in range(2,n+1): 5 num = 1 6 for j in range(1,i+1): 7 num = num*j 8 s = num 9 totalnum += s 10 print(totalnum)
2、输入一个整数,并判断其是否为水仙花数
1 '''水仙花数函数定义''' 2 def Daffodil(num): 3 numcopy = num 4 a = [] 5 while num: 6 x = num%10 7 a.append(x) 8 num = num // 10 9 l = len(a) 10 summ = 0 11 for i in a: 12 summ = summ + i**l 13 if summ == numcopy: 14 return True 15 else: 16 return False 17 '''函数调用''' 18 ll = Daffodil(int(input('输入一个整数,计算是否是水仙花数:'))) 19 print(ll)
3、输入一个整数(n>=1000),列出从100到n的所有水仙花数
1 '''水仙花数的判定,并返回100->n的所有水仙花数,接受参数n>=1000''' 2 def Daffodilnum(n): 3 dafnumlist = [] 4 for i in range(100, n+1): 5 m = Daffodil(i) 6 if m is True: 7 dafnumlist.append(i) 8 print(dafnumlist) 9 10 Daffodilnum(int(input('输入n>=1000的整数:')))
4、i,j,k的范围都为[1,1000],找到i^2+j^2=k^2的所有值
1 def get(): 2 u = 0 3 m=[] 4 n=[] 5 h=[] 6 for i in range(1,1001): 7 for j in range(1,1001): 8 k = 1000-i-j 9 if i**2 + j**2 == k**2: 10 '''列表添加用append()''' 11 m.append(i) 12 n.append(j) 13 h.append(k) 14 u=u+1 15 return m,n,h,u 16 17 [f,d,s,u] = get() 18 print(f,d,s,u)
5、冒泡排序:遍历要排序的数列,一次比较两个元素,如果他们的逻辑顺序错误就将它们交换。
1 '''冒泡排序''' 2 def bubbleSort(inlist): 3 putlist = [] 4 l = len(inlist) 5 for i in range(l): 6 for j in range(l-1): 7 if inlist[j+1] < inlist[j]: 8 m = inlist[j+1] 9 n = inlist[j] 10 inlist[j+1] = n 11 inlist[j] = m 12 print(inlist) 13 14 mlist = list(map(int,input('input a list: ').split())) 15 bubbleSort(mlist)