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)

 

posted @ 2020-02-20 16:45  ASTHNONT  阅读(166)  评论(0编辑  收藏  举报