教学用部分示例代码

root
abc abc
  • 15 Jul

def permute(nums):
def backtrack(path, options):
if len(path) == len(nums):

        # 当前path已包含所有元素,是一个全排列,加入结果列表
        result.append(path[:])  # 注意这里需要深拷贝
        return
    for i in range(len(options)):
        # 选择当前元素加入到path中
        path.append(options[i])
        # 递归,但排除当前已选择的元素
        backtrack(path, options[:i] + options[i + 1:])
        # 撤销选择
        path.pop()

result = []
backtrack([], nums)
return result

测试函数

nums = [1, 2, 3, 4]
for perm in permute(nums):
print(perm)

money=300000
fee=50
base=10000
data=[(100000,0.01),(200000,0.009),(500000,0.008)]
if money>10000:
for x in data:
if money<=x[0]:
fee=fee+(money-base)x[1]
break
else :
fee=fee+(x[0]-base)
x[1]
base=x[0]

Python的基本数据结构

str(第5章),list(重点),tuple,dict(重点),set,frozenset

其中系列型数据包括str,list,tuple.

#

Python中的列表list:

定义:

性质特征:

相关的运算:索引、切片、连接、乘,in

基本操作(CRUD):

创建:

#

查询:

#

增加:

#

修改:

#

删除:

#

有关的内置函数:

有关的内置函数:

len() 计算序列的长度,即返回序列中包含多少个元素。

max() 找出序列中的最大元素。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或字符串,否则该函数将抛出异常,因为解释器无法判定是要做连接操作(+ 运算符可以连接两个序列),还是做加和操作。

min() 找出序列中的最小元素。

list() 将序列转换为列表。

str() 将序列转换为字符串。

sum() 计算元素和。

sorted() 对元素进行排序。

reversed(): 反向序列中的元素。

enumerate():将序列组合为一个索引序列,多用在 for 循环中。

#
#

专属的类函数:

创建

a=list([1,2,3, ]);
print(type(a),a)
a=[2,(3,7), {}, 3,3,"23234",[], 343,34,[3,4,"Hello"]]
a=[ x*2 for x in range(51)] #列表生成式
a=[ x**0.5 for x in range(10) if x%2==0]
a=list("Hello") #str,(), [], {}, set()
a=list( (1,"34") ) #元组
a=list( {1:2, 2:3} ) #字典
a=list( {1,2,3,4} ) #集合
a=list( range(3,10 ) ) #iterable 可遍历的数据集

访问

索引法 单一元素

print( a[2])
for x in range(len(a)):
print(a[x])

切片

a=list( range(10 ) ) #iterable 可遍历的数据集
b=a[:3:]

遍历

相加(拼接), 相乘

in /not in

CRUD:增删改操作

del a[5]

del a

a[3]=a[3]*10

for x in a:

x=0

for i in range(len(a)):

a[i]=a[i]*10

a.append(999)
a.insert(3,333)

a.remove(333)

c=a.pop( ) #delete
a.sort()
a.reverse()
c=a.index(3)
c=a.count(4)
c=sum(a)
c=list(reversed(a))
c.append(44)
c=list(sorted(c))

print(f"a={a}")
print(f"b={b}")
print(f"c={c}")

查询文档或类成员

b=dir(list)

print(type(b),b)

data=( (10000,100000, 0.025),
(100000, 200000, 0.02),
(200000, 500000, 0.015),
(500000, 1000000, 0.01),
(500000, 1000000, 0.009),
(1000000, 1E14, 0.008)
)
money=14456
fee=50
base=0
for x in data:
if money<x[0]:
break;
elif x[0]<=money<x[1]:
fee=fee+(money-x[0])x[2]
break;
elif money>=x[1]:
fee = fee + ( x[1]- x[0])
x[2]

print(f"fee={fee}")

字典

b=[1,2,3]
a=( 3,4 , b)

b.append(555)

c=dict.fromkeys([1,2,3,4], 0)
for x in c:
print(c[x])

print(c)