python: Enum
# 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 """ 周六 """
# 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
# 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
调用:
# 排序 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)
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(涂聚文)