python: Enum
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # encoding: utf-8 # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 11 # Datetime : 2023/7/3 14:53 # User : geovindu # Product : PyCharm # Project : pythonProject # File : Weekday.py # explain : 学习 from enum import Enum, unique @unique class Weekday(Enum): """ @unique装饰器可以帮助我们检查保证没有重复值。 """ Sun = 0 # Sun的value被设定为0 """ 周日 """ Mon = 1 """ 周一 """ Tue = 2 """ 周二 """ Wed = 3 """ 周三 """ Thu = 4 """ 周四 """ Fri = 5 """ 周五 """ Sat = 6 """ 周六 """ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | # encoding: utf-8 # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 11 # Datetime : 2023/7/2 21:18 # User : geovindu # Product : PyCharm # Project : pythonStudyDemo # File : CheckSort.py # explain : 学习 from enum import Enum class CheckSort(Enum): """ 选择排序方式 """ Asc = 1 , """ 降序 """ Desc = 2 """ 升序 """ # encoding: utf-8 # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 11 # Datetime : 2023/7/2 20:25 # User : geovindu # Product : PyCharm # Project : pythonStudyDemo # File : TenSortAlgotrthms.py # explain : 学习 十种排序 from enum import Enum import sortingalgorithms.CheckSort import sortingalgorithms.duplicateChecking class TenSortAlgotrthms( object ): """ """ def bubbleSort( self ,arr): """ 1。冒泡排序方法 从小至大 升序 :param arr 整数数组 如 arr = [64, 34, 25, 12, 22, 11, 90] :param checkSort选择排序方式 Desc 降序 Asc 升序 :return: """ n = len (arr) swapped = False for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return def bubbleSort( self ,arr,checkSort): """ 1。冒泡排序方法 从小至大 升序 :param arr 整数数组 如 arr = [64, 34, 25, 12, 22, 11, 90] :param checkSort选择排序方式 Desc 降序 Asc 升序 :return: """ n = len (arr) swapped = False if (checkSort.Asc = = sortingalgorithms.CheckSort.CheckSort.Desc): for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return else : for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] < arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return def bubbleSortIndex( self ,arr,checkSort,eqLeter: int ): """ 1。冒泡排序方法 从小至大 升序 :param arr 整数数组 如 arr = [64, 34, 25, 12, 22, 11, 90] :param checkSort选择排序方式 Desc 降序 Asc 升序 :param eqLeter 找查指定的数字的下标 :return:返回下标 元组 """ n = len (arr) fin = sortingalgorithms.duplicateChecking.DuplicateChecking() index = fin.findindex(arr, eqLeter) #print("index",index,eqLeter) swapped = False if (checkSort.Asc = = sortingalgorithms.CheckSort.CheckSort.Desc): for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return index else : for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] < arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return index |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | # encoding: utf-8 # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 11 # Datetime : 2023/7/2 20:25 # User : geovindu # Product : PyCharm # Project : pythonStudyDemo # File : TenSortAlgotrthms.py # explain : 学习 十种排序 from enum import Enum import sortingalgorithms.CheckSort import sortingalgorithms.duplicateChecking class TenSortAlgotrthms( object ): """ """ def bubbleSort( self ,arr): """ 1。冒泡排序方法 从小至大 升序 :param arr 整数数组 如 arr = [64, 34, 25, 12, 22, 11, 90] :return: """ n = len (arr) swapped = False for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return def bubbleSort( self ,arr,checkSort = None ): """ 1。冒泡排序方法 从小至大 升序 :param arr 整数数组 如 arr = [64, 34, 25, 12, 22, 11, 90] :param checkSort选择排序方式 Desc 降序 Asc 升序 :return: """ n = len (arr) swapped = False if (checkSort! = None ): if (checkSort.Asc = = sortingalgorithms.CheckSort.CheckSort.Desc): for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return else : for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] < arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return else : for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return def bubbleSortIndex( self , arr, checkSort, eqLeter : int ): """ 1。冒泡排序方法 从小至大 升序 :param arr 整数数组 如 arr = [64, 34, 25, 12, 22, 11, 90] :param checkSort选择排序方式 Desc 降序 Asc 升序 :param eqLeter 找查指定的数字的下标 :return:返回下标 元组 """ n = len (arr) fin = sortingalgorithms.duplicateChecking.DuplicateChecking() index = fin.findindex(arr, eqLeter) # print("index" ,index ,eqLeter) swapped = False if (checkSort.Asc = = sortingalgorithms.CheckSort.CheckSort.Desc): for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] > arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return index else : for i in range (n - 1 ): for j in range ( 0 , n - i - 1 ): if arr[j] < arr[j + 1 ]: swapped = True arr[j], arr[j + 1 ] = arr[j + 1 ], arr[j] if not swapped: return index |
调用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 排序 arrs = [ 64 , 34 , 25 , 2 , 22 , 11 , 90 , 88 , 34 ] fin = sortingalgorithms.duplicateChecking.DuplicateChecking() qc = 34 inde = fin.findindex(arrs,qc) print (f "顺序查询数组中{qc}查到下标是:" ,inde) for ud in inde: print (ud + 1 ) sort = sortingalgorithms.TenSortAlgotrthms.TenSortAlgotrthms() sort.bubbleSort(arrs,sortingalgorithms.CheckSort.CheckSort.Desc) print ( "冒泡排序:" ) for i in range ( len (arrs)): print ( "% d" % arrs[i], end = " " ) q = 5 duindex = sort.bubbleSortIndex(arrs, sortingalgorithms.CheckSort.CheckSort.Desc,q) print (f "\n{q}下标是:" ,duindex) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | from collections.abc import Iterable from functools import reduce def triangles(): """ :return: """ L = [ 1 ] yield L while True : L = [v + w for v, w in zip ([ 0 ] + L, L + [ 0 ])] yield L def notempty(s): """ 过虑空 :param s: :return: """ return s and s.strip() for i, value in enumerate ([ 'A' , 'B' , 'C' ]): print (i, value) #for循环中同时迭代索引和元素本身 for i, value in enumerate ([ 35 , 45 , 55 ]): print (i, value) #for循环中同时迭代索引和元素本身 #列表生成式即List Comprehensions n = 0 results = [] for t in triangles(): results.append(t) n = n + 1 if n = = 10 : break for t in results: print (t) #Python内建的filter()函数用于过滤序列 list ( filter (notempty, [ 'A' , ' ', ' B ', None, ' C ', ' '])) |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2010-07-02 SQL server查询数据类型为ntext是空或NULL值