32个常用 Python 实现

开发 后端
今天我们来看看32个常用的 Python 实现。

[[282828]]

 1、冒泡排序

 

  1. lis = [56,12,1,8,354,10,100,34,56,7,23,456,234,-58] 
  2.  
  3. def sortport(): 
  4.     for i in range(len(lis)-1): 
  5.         for j in range(len(lis)-1-i): 
  6.             if lis[j]>lis[j+1]: 
  7.                 lis[j],lis[j+1] = lis[j+1],lis[j] 
  8.     return lis 
  9. if __name__ == '__main__'
  10.     sortport() 
  11.     print(lis) 

2、计算x的n次方

 

  1. def power(x, n): 
  2.     s = 1 
  3.     while n > 0: 
  4.         n = n - 1 
  5.         s = s * x 
  6.     return s 

调用方法:

 

  1. print(power(2,4)) 

3、计算a*a + b*b + c*c + …

 

  1. def calc(*numbers): 
  2.     sum=0 
  3.     for n in numbers: 
  4.         sum=sum+n*n 
  5.     return sum 
  6. print(calc(2,4,5)) 

4、计算阶乘 n!

 

  1. #方法一 
  2. def fac(): 
  3.     num = int(input("请输入一个数字:")) 
  4.     factorial = 1 
  5.     #查看数字是负数,0或者正数 
  6.     if num<0: 
  7.         print("抱歉,负数没有阶乘"
  8.     elif num == 0: 
  9.         print("0的阶乘为1"
  10.     else
  11.         for i in range(1,num+1): 
  12.             factorial = factorial*i 
  13.         print("%d的阶乘为%d"%(num,factorial)) 
  14. if __name__ == '__main__'
  15.     fac() 
  16.      
  17.  
  18. #方法二 
  19. def fac(): 
  20.     num = int(input("请输入一个数字:")) 
  21.     #查看数字是负数,0或者正数 
  22.     if num<0: 
  23.         print("抱歉,负数没有阶乘"
  24.     elif num == 0: 
  25.         print("0的阶乘为1"
  26.     else
  27.         print("%d的阶乘为%d"%(num,factorial(num))) 
  28. def factorial(n): 
  29.     result = n 
  30.     for i in range(1,n): 
  31.         result=result*i 
  32.     return result 
  33.  
  34. if __name__ == '__main__'
  35.     fac() 
  36.  
  37.  
  38. #方法三 
  39. def fac(): 
  40.     num = int(input("请输入一个数字:")) 
  41.     #查看数字是负数,0或者正数 
  42.     if num<0: 
  43.         print("抱歉,负数没有阶乘"
  44.     elif num == 0: 
  45.         print("0的阶乘为1"
  46.     else
  47.         print("%d的阶乘为%d"%(num,fact(num))) 
  48.  
  49. def fact(n): 
  50.     if n == 1: 
  51.         return 1 
  52.     return n * fact(n - 1) 
  53.  
  54. if __name__ == '__main__'
  55.     fac() 

5、列出当前目录下的所有文件和目录名

 

  1. import os 
  2.  
  3. for d in os.listdir('.'): 
  4.     print(d) 

另外列表推导式代码:

 

  1. [d for d in os.listdir('.')] 

6、把一个list中所有的字符串变成小写:

 

  1. L = ['Hello','World','IBM','Apple'
  2.  
  3. for s in L: 
  4.     s=s.lower() 
  5.     print(s)     #将list中每个字符串都变成小写,返回每个字符串 

另外列表推导式代码:

 

  1. L = ['Hello','World','IBM','Apple'
  2. print([s.lower() for s in L])#整个list所有字符串都变成小写,返回一个list 

7、输出某个路径下的所有文件和文件夹的路径

 

  1. def print_dir(): 
  2.   filepath = input("请输入一个路径:"
  3.   if filepath == ""
  4.     print("请输入正确的路径"
  5.   else
  6.     for i in os.listdir(filepath):       #获取目录中的文件及子目录列表 
  7.       print(os.path.join(filepath,i))  #把路径组合起来 
  8.  
  9. print(print_dir()) 

8、输出某个路径及其子目录下的所有文件路径

 

  1. def show_dir(filepath): 
  2.   for i in os.listdir(filepath): 
  3.     path = (os.path.join(filepath, i)) 
  4.     print(path) 
  5.     if os.path.isdir(path):      #isdir()判断是否是目录 
  6.       show_dir(path)             #如果是目录,使用递归方法 
  7.  
  8. filepath = "C:Program FilesInternet Explorer" 
  9. show_dir(filepath) 

9、输出某个路径及其子目录下所有以.html为后缀的文件

 

  1. def print_dir(filepath): 
  2.   for i in os.listdir(filepath): 
  3.     path = os.path.join(filepath, i) 
  4.     if os.path.isdir(path): 
  5.       print_dir(path) 
  6.     if path.endswith(".html"): 
  7.       print(path) 
  8.  
  9. filepath = "E:PycharmProjects" 
  10. print_dir(filepath) 

10、把原字典的键值对颠倒并生产新的字典

 

  1. dict1 = {"A":"a","B":"b","C":"c"
  2. dict2 = {y:x for x,y in dict1.items()} 
  3. print(dict2) 
  4. #输出结果为{'a''A''b''B''c''C'

11、打印九九乘法表

 

  1. for i in range(1,10): 
  2.     for j in range(1,i+1): 
  3.         print('%d x %d = %d     '%(j,i,i*j),end='')   #通过指定end参数的值,可以取消在末尾输出回车符,实现不换行。 
  4.     print() 

12、替换列表中所有的3为3a

 

  1. num = ["harden","lampard",3,34,45,56,76,87,78,45,3,3,3,87686,98,76] 
  2. print(num.count(3)) 
  3. print(num.index(3)) 
  4. for i in range(num.count(3)):      #获取3出现的次数 
  5.     ele_index = num.index(3)        #获取首次3出现的坐标 
  6.     num[ele_index]="3a"            #修改3为3a 
  7. print(num) 

13、打印每个名字

 

  1. L = ["James","Meng","Xin"
  2. for i in range(len(L)): 
  3.     print("Hello,%s"%L[i]) 

14、合并去重

  1. list1 = [2,3,8,4,9,5,6] 
  2. list2 = [5,6,10,17,11,2] 
  3. list3 = list1 + list2 
  4. print(list3)              #不去重只进行两个列表的组合 
  5. print(set(list3))         #去重,类型为set需要转换成list 
  6. print(list(set(list3))) 

15、随机生成验证码的两种方式(数字字母)

 

  1. import random 
  2. list1=[] 
  3. for i in range(65,91): 
  4.     list1.append(chr(i))        #通过for循环遍历asii追加到空列表中 
  5. for j in range (97,123): 
  6.     list1.append(chr(j)) 
  7. for k in range(48,58): 
  8.     list1.append(chr(k)) 
  9. ma = random.sample(list1,6) 
  10. print(ma)                      #获取到的为列表 
  11. ma = ''.join(ma)              #将列表转化为字符串 
  12. print(ma) 

 

  1. import random,string 
  2. str1 = "0123456789" 
  3. str2 = string.ascii_letters     # string.ascii_letters 包含所有字母(大写或小写)的字符串 
  4. str3 = str1+str2 
  5. ma1 = random.sample(str3,6)     #多个字符中选取特定数量的字符 
  6. ma1 = ''.join(ma1)              #使用join拼接转换为字符串 
  7. print(ma1)                      #通过引入string模块和random模块使用现有的方法 

16、随机数字小游戏

 

  1. #随机数字小游戏 
  2. import random 
  3. i = 1 
  4. a = random.randint(0,100) 
  5. b = int( input('请输入0-100中的一个数字 
  6. 然后查看是否与电脑一样:')) 
  7. while a != b: 
  8.     if a > b: 
  9.         print('你第%d输入的数字小于电脑随机数字'%i) 
  10.         b = int(input('请再次输入数字:')) 
  11.     else
  12.         print('你第%d输入的数字大于电脑随机数字'%i) 
  13.         b = int(input('请再次输入数字:')) 
  14.     i+=1 
  15. else
  16.     print('恭喜你,你第%d次输入的数字与电脑的随机数字%d一样'%(i,b)) 

17、计算平方根

 

  1. num = float(input('请输入一个数字:')) 
  2. num_sqrt = num ** 0.5 
  3. print('%0.2f 的平方根为%0.2f'%(num,num_sqrt)) 

18、判断字符串是否只由数字组成

 

  1. #方法一 
  2. def is_number(s): 
  3.     try: 
  4.         float(s) 
  5.         return  True 
  6.     except ValueError: 
  7.         pass 
  8.     try: 
  9.         import unicodedata 
  10.         unicodedata.numeric(s) 
  11.         return  True 
  12.     except(TypeError,ValueError): 
  13.         pass 
  14.     return False 
  15. t="a12d3" 
  16. print(is_number(t)) 
  17.  
  18.  
  19. #方法二 
  20. t = "q123" 
  21. print(t.isdigit())   #检测字符串是否只由数字组成 
  22.   
  23.  
  24. #方法三 
  25. t = "123" 
  26. print(t.isnumeric())   #检测字符串是否只由数字组成,这种方法是只针对unicode对象 

19、判断奇偶数

 

  1. #方法一 
  2. num = int(input('请输入一个数字:')) 
  3. if (num % 2) == 0: 
  4.     print("{0}是偶数".format(num)) 
  5. else
  6.     print("{0}是奇数".format(num)) 
  7.    
  8.  
  9. #方法二 
  10. while True
  11.     try: 
  12.         num = int(input('请输入一个整数:'))      #判断输入是否为整数,不是纯数字需要重新输入 
  13.     except ValueError: 
  14.         print("输入的不是整数!"
  15.         continue 
  16.     if (num % 2) == 0: 
  17.         print("{0}是偶数".format(num)) 
  18.     else
  19.         print("{0}是奇数".format(num)) 
  20.     break 

20、判断闰年

 

  1. #方法一 
  2. year = int(input("请输入一个年份:")) 
  3. if (year % 4) == 0: 
  4.     if (year % 100) == 0: 
  5.         if(year % 400) ==0: 
  6.             print("{0}是闰年".format(year))       #整百年能被400整除的是闰年 
  7.         else
  8.             print("{0}不是闰年".format(year)) 
  9.     else
  10.         print("{0}是闰年".format(year))           #非整百年能被4整除的为闰年 
  11. else
  12.     print("{0}不是闰年".format(year)) 
  13.    
  14.  
  15. #方法二 
  16. year = int(input("请输入一个年份:")) 
  17. if (year % 4) == 0 and (year % 100)!=0 or (year % 400) == 0: 
  18.     print("{0}是闰年".format(year)) 
  19. else
  20.     print("{0}不是闰年".format(year)) 
  21.    
  22.  
  23. #方法三 
  24. import calendar 
  25. year = int(input("请输入年份:")) 
  26. check_year=calendar.isleap(year
  27. if check_year == True
  28.     print("%d是闰年"%year
  29. else
  30.     print("%d是平年"%year

21、获取最大值

 

  1. N = int(input('输入需要对比大小的数字的个数:')) 
  2. print("请输入需要对比的数字:"
  3. num = [] 
  4. for i in range(1,N+1): 
  5.     temp = int(input('请输入第%d个数字:'%i)) 
  6.     num.append(temp
  7. print('您输入的数字为:',num) 
  8. print('最大值为:',max(num)) 
  9.    
  10.  
  11. N = int(input('输入需要对比大小的数字的个数: 
  12. ')) 
  13. num = [int(input('请输入第%d个数字: 
  14. '%i))for i in range(1,N+1)] 
  15. print('您输入的数字为:',num) 
  16. print('最大值为:',max(num)) 

22、斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13;特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

 

  1. # 判断输入的值是否合法 
  2. if nterms <= 0: 
  3.   print("请输入一个正整数。"
  4. elif nterms == 1: 
  5.   print("斐波那契数列:"
  6.   print(n1) 
  7. else
  8.   print("斐波那契数列:"
  9.   print(n1, ",", n2, end=" , "
  10.   while count < nterms: 
  11.     nth = n1 + n2 
  12.     print(n1+n2, end=" , "
  13.     # 更新值 
  14.     n1 = n2 
  15.     n2 = nth 
  16.     count += 1 

23、十进制转二进制、八进制、十六进制

 

  1. # 获取输入十进制数 
  2. dec = int(input("输入数字:")) 
  3.  
  4. print("十进制数为:"dec
  5. print("转换为二进制为:", bin(dec)) 
  6. print("转换为八进制为:", oct(dec)) 
  7. print("转换为十六进制为:", hex(dec)) 

24、最大公约数

 

  1. def hcf(x, y): 
  2.   """该函数返回两个数的最大公约数""" 
  3.  
  4.   # 获取最小值 
  5.   if x > y: 
  6.     smaller = y 
  7.   else
  8.     smaller = x 
  9.  
  10.   for i in range(1, smaller + 1): 
  11.     if ((x % i == 0) and (y % i == 0)): 
  12.       hcf = i 
  13.  
  14.   return hcf 
  15.  
  16. # 用户输入两个数字 
  17. num1 = int(input("输入第一个数字: ")) 
  18. num2 = int(input("输入第二个数字: ")) 
  19.  
  20. print(num1, "和", num2, "的最大公约数为", hcf(num1, num2)) 

25、最小公倍数

 

  1. # 定义函数 
  2. def lcm(x, y): 
  3.  
  4.    #  获取最大的数 
  5.    if x > y: 
  6.        greater = x 
  7.    else
  8.        greater = y 
  9.  
  10.    while(True): 
  11.        if((greater % x == 0) and (greater % y == 0)): 
  12.            lcm = greater 
  13.            break 
  14.        greater += 1 
  15.  
  16.    return lcm 
  17.  
  18. # 获取用户输入 
  19. num1 = int(input("输入第一个数字: ")) 
  20. num2 = int(input("输入第二个数字: ")) 
  21.  
  22. print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2)) 

26、简单计算器

 

  1. # 定义函数 
  2. def add(x, y): 
  3.     """相加""" 
  4.     return x + y 
  5.  
  6. def subtract(x, y): 
  7.     """相减""" 
  8.     return x - y 
  9.  
  10. def multiply(x, y): 
  11.     """相乘""" 
  12.     return x * y 
  13.  
  14. def divide(x, y): 
  15.     """相除""" 
  16.     return x / y 
  17.  
  18. # 用户输入 
  19. print("选择运算:"
  20. print("1、相加"
  21. print("2、相减"
  22. print("3、相乘"
  23. print("4、相除"
  24.  
  25. choice = input("输入你的选择(1/2/3/4):"
  26.  
  27. num1 = int(input("输入第一个数字: ")) 
  28. num2 = int(input("输入第二个数字: ")) 
  29.  
  30. if choice == '1'
  31.     print(num1, "+", num2, "="add(num1, num2)) 
  32.  
  33. elif choice == '2'
  34.     print(num1, "-", num2, "=", subtract(num1, num2)) 
  35.  
  36. elif choice == '3'
  37.     print(num1, "*", num2, "=", multiply(num1, num2)) 
  38.  
  39. elif choice == '4'
  40.     if num2 != 0: 
  41.         print(num1, "/", num2, "=", divide(num1, num2)) 
  42.     else
  43.         print("分母不能为0"
  44. else
  45.     print("非法输入"

27、生成日历

 

  1. # 引入日历模块 
  2. import calendar 
  3.  
  4. # 输入指定年月 
  5. yy = int(input("输入年份: ")) 
  6. mm = int(input("输入月份: ")) 
  7.  
  8. # 显示日历 
  9. print(calendar.month(yy, mm)) 

28、文件IO

 

  1. # 写文件 
  2. with open("test.txt""wt"as out_file: 
  3.     out_file.write("该文本会写入到文件中 
  4. 看到我了吧!") 
  5.  
  6. Read a file 
  7. with open("test.txt""rt"as in_file: 
  8.     text = in_file.read() 
  9.  
  10. print(text) 

29、字符串判断

 

  1. # 测试实例一 
  2. print("测试实例一"
  3. str = "runoob.com" 
  4. print(str.isalnum()) # 判断所有字符都是数字或者字母 
  5. print(str.isalpha()) # 判断所有字符都是字母 
  6. print(str.isdigit()) # 判断所有字符都是数字 
  7. print(str.islower()) # 判断所有字符都是小写 
  8. print(str.isupper()) # 判断所有字符都是大写 
  9. print(str.istitle()) # 判断所有单词都是首字母大写,像标题 
  10. print(str.isspace()) # 判断所有字符都是空白字符、    、 
  11. 、 
  12.  
  13. print("------------------------"
  14.  
  15. # 测试实例二 
  16. print("测试实例二"
  17. str = "Bake corN" 
  18. print(str.isalnum()) 
  19. print(str.isalpha()) 
  20. print(str.isdigit()) 
  21. print(str.islower()) 
  22. print(str.isupper()) 
  23. print(str.istitle()) 
  24. print(str.isspace()) 

30、字符串大小写转换

 

  1. str = "https://www.cnblogs.com/ailiailan/" 
  2. print(str.upper())          # 把所有字符中的小写字母转换成大写字母 
  3. print(str.lower())          # 把所有字符中的大写字母转换成小写字母 
  4. print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写 
  5. print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 

31、计算每个月天数

 

  1. import calendar 
  2. monthRange = calendar.monthrange(2016,9) 
  3. print(monthRange) 

32、获取昨天的日期

 

  1. # 引入 datetime 模块 
  2. import datetime 
  3. def getYesterday():  
  4.     today=datetime.date.today() 
  5.     oneday=datetime.timedelta(days=1) 
  6.     yesterday=today-oneday   
  7.     return yesterday 
  8.  
  9. # 输出 
  10. print(getYesterday()) 

 

责任编辑:华轩 来源: Python知识圈
相关推荐

2022-08-27 15:03:43

Python损失函数算法

2022-08-19 16:09:08

Python损失函数算法

2023-02-14 09:00:41

2023-01-17 15:31:40

Python数据集数组

2020-03-31 14:00:29

Python 开发工具

2022-03-26 19:25:40

Python包Python开发

2020-07-13 15:10:47

Python代码字符串

2021-03-16 10:12:24

python内置函数

2022-08-25 17:47:21

PythonExcel

2020-09-04 06:32:20

Pythonshutil函数

2024-01-24 13:14:00

Python内置函数工具

2020-05-13 13:55:16

MatplotlibPython代码

2011-05-23 16:50:12

python

2019-10-22 22:31:15

Python切片字符串

2019-02-18 15:05:16

Python内置函数索引

2022-09-22 12:38:46

antd form组件代码

2020-05-22 11:20:56

Linux命令文件

2019-04-14 22:22:28

Python数据结构算法

2021-04-26 05:35:22

Python内置函数

2022-05-23 09:46:44

Python
点赞
收藏

51CTO技术栈公众号