一个魔术的算法
# coding: utf-8
import random, time
def arrange_card(list_card, symb):
'''整理红牌或者黑牌'''
for card in list_card:
dict_card[card] = [card[0], symb]
return dict_card
def process_show():
'''进度条显示'''
n = 1
while n < 6:
print(">>" * n, end="")
n += 1
time.sleep(1)
list_card = [
'红A', '红2', '红3', '红4', '红5', '红6', '红7', '红8', '红9', '红10',
'黑A', '黑2', '黑3', '黑4', '黑5', '黑6', '黑7', '黑8', '黑9', '黑10',
]
dict_card = {}
process_show()
print("\n\n选取了%s张红牌,%s张黑牌\n" % (len(list_card)/2, len(list_card)/2))
# 整理红牌
print("整理红牌中", end="") # 不换行显示进度
process_show()
arrange_card(list_card[:10], 'down')
print("\n\n这是其中的红牌!\n")
# 红牌整理完毕
# 整理黑牌
print("整理黑牌中", end="") # 不换行显示进度
process_show()
arrange_card(list_card[10:], 'up')
print("\n\n这是其中的黑牌!\n")
# 黑牌整理完毕
# 混合红牌和黑牌
print("混合红牌和黑牌", end="") # 不换行显示进度
process_show()
# 混合完毕
# 选择一张牌
print("\n\n选择一张牌", end="") # 不换行显示进度
select_card = random.choice(list_card)
process_show()
print("\n\n已选择一张牌....................\n")
# 选择完毕, 根据牌的特征判断红牌和黑牌
if dict_card[select_card] == ['红', 'down']:
print("你选择的牌是红牌!")
elif dict_card[select_card] == ['黑', 'up']:
print("你选择的牌是黑牌!")
else:
print("桌面上没有选择的牌!")
求两个正整数的最大公约数的欧几里得算法
# -*- coding:utf-8 -*-
def greatest_divisor(m, n):
"""
计算两个数的最大公约数
:param m: 其中一个数
:param n: 其中另一个数
:return: 两个数的最大公约数
"""
R = max(m, n) % min(m, n)
if not R == 0:
m = min(m, n)
n = R
return greatest_divisor(m, n)
return min(m, n)
示例:
print(greatest_divisor(10, 125))
结果:5
绪论中的两个算法例子都是用Python实现的,而第一个算法还可以用Pygame写一个带界面的猜牌软件,具体的方法我们在后面的章节中会穿插进来,这里只简单介绍这两个例子,如果小伙伴们有更好的实现思路欢迎联系我进行讨论,谢谢大家的关注!