这里,才 python 前沿。可惜是英文原版。所以,我要练习英文阅读。
—— 华罗庚
代码
def sum_of_evens(*evens):
'''求输入向量中偶数和'''
tem_lis = []
for i in evens:
if str(i).isdigit() is False:
tem_lis.extend(list(i)) # 集群收集。
else:
tem_lis.append(i) # 单参收集。
tem = []
for i in tem_lis:
if i % 2 == 0: # 摘除奇数。
tem.append(i)
return sum(tem) # 返回和值。
print(cut_line(), color(1, 'f_green')) # 打印分割线。
print(f"{'':>8}直接传参,输出:{sum_of_evens(1, 3, 6, 9)}") # 直接传参。
s = sum_of_evens # 函数取别名。
print(f"\n\n{'':>8}list 集群传参,输出:{s([1, 9, 8, 10, 13])}") # 集群传参。
print(f"\n\n{'':>8}tuple 传参,输出:{s((1, 9, 8, 5, 12, 10, 13))}") # 集群传参。
print(f"\n\n{'':>8}list 混传,输出:{s(1, 2, [1, 8, 10, 13], 3, 8)}") # 单个、集群混传。
print(f"\n\n{'':>8}tuple 混传,输出:{s(1, 2, (1, 8, 13), 3, 8)}") # 单个、集群混传。
print(f"{color(0)}{cut_line()}") # 打印分割线。
wait()
运行效果
代码
def difference_between_L(n, L=0):
'''返回按阈值分割后新集合和之差绝对值,
如果输入集合中有两个阈值元素,以先出来的分割。'''
tem, tem2 = [], [] # 初始化新集合。
flag = False # 分割标识初值为假。
for i in n:
if i == L:
flag = True # 遇到分割阈值,分割标识置真。
print(f"\n分割阈值:{L}")
L = '' # 置空字符,避免不收集第二个出现的分割阈值。
continue # 结束本次循环,就是为了不收集分割阈值。
if flag is True:
tem2.append(i)
else:
tem.append(i)
print(f"\n分割集合:\n\n{tem},{tem2}")
return abs(sum(tem) - sum(tem2))
db_L = difference_between_L # 函数取别名。
n = 2, 5, 2, 6, 0, 2, 7, 6, 0, 17, 3
print(cut_line())
print(f"{cut_line()}{'':>4}输入:{n}\
\n\n{'':>16}输出:{color(db_L(n, 7), 'f_green')}{cut_line()}")
wait()
运行效果
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。)
#!/sur/bin/env python
# coding: utf-8
'''
filename: /sdcard/qpython/tem.py
梦幻精灵_cq的炼码场
'''
from mypythontools import color, wait, cut_line # 从自码工具模块加载需用代码模块中要使用的函数。
def sum_of_evens(*evens):
'''求输入向量中偶数和'''
tem_lis = []
for i in evens:
if str(i).isdigit() is False:
tem_lis.extend(list(i)) # 集群收集。
else:
tem_lis.append(i) # 单参收集。
tem = []
for i in tem_lis:
if i % 2 == 0: # 摘除奇数。
tem.append(i)
return sum(tem) # 返回和值。
print(cut_line(), color(1, 'f_green')) # 打印分割线。
print(f"{'':>8}直接传参,输出:{sum_of_evens(1, 3, 6, 9)}") # 直接传参。
s = sum_of_evens # 函数取别名。
print(f"\n\n{'':>8}list 集群传参,输出:{s([1, 9, 8, 10, 13])}") # 集群传参。
print(f"\n\n{'':>8}tuple 传参,输出:{s((1, 9, 8, 5, 12, 10, 13))}") # 集群传参。
print(f"\n\n{'':>8}list 混传,输出:{s(1, 2, [1, 8, 10, 13], 3, 8)}") # 单个、集群混传。
print(f"\n\n{'':>8}tuple 混传,输出:{s(1, 2, (1, 8, 13), 3, 8)}") # 单个、集群混传。
print(f"{color(0)}{cut_line()}") # 打印分割线。
wait()
def difference_between_L(n, L=0):
'''返回按阈值分割后新集合和之差绝对值,
如果输入集合中有两个阈值元素,以先出来的分割。'''
tem, tem2 = [], [] # 初始化新集合。
flag = False # 分割标识初值为假。
for i in n:
if i == L:
flag = True # 遇到分割阈值,分割标识置真。
print(f"\n分割阈值:{L}")
L = '' # 置空字符,避免不收集第二个出现的分割阈值。
continue # 结束本次循环,就是为了不收集分割阈值。
if flag is True:
tem2.append(i)
else:
tem.append(i)
print(f"\n分割集合:\n\n{tem},{tem2}")
return abs(sum(tem) - sum(tem2))
db_L = difference_between_L # 函数取别名。
n = 2, 5, 2, 6, 0, 2, 7, 6, 0, 17, 3
print(cut_line())
print(f"{cut_line()}{'':>4}输入:{n}\
\n\n{'':>16}输出:{color(db_L(n, 7), 'f_green')}{cut_line()}")
wait()
上一篇: 骚包的中文字符提取操作(字符串,不用 re ,用 in )
下一篇:
来源:老齐教室