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(涂聚文)
浙公网安备 33010602011771号