1 区间数字判断

1 import time
2
3 # 计算一定区间内内的相关操作数据
4 print('\033[1;33m================> 请输入计算区间,区间长度请勿超过3万,否则老夫的计算机...... <=====================\033[0m')
5 start = int(input('\033[1;32m请输入计算前端区间:\033[0m').strip())
6 end = int(input('\033[1;32m请输入计算后端区间:\033[0m').strip())
7 while True:
8 cho_dic = """
9 '1':'质数、合数'
10 '2':'偶数、奇数'
11 '3':'完全数'
12 '4':'斐波那契数列'
13 'QUIT':'退出系统'
14 """
15 print(cho_dic)
16 cho = input('请输入将要进行的操作代号:')
17 # 质数、合数
18 if cho == '1':
19 str_time = time.time()
20 print('正在计算中,请稍等...\n')
21 zhi_li = []
22 for num in range(start, end):
23 for i in range(2, num):
24 if num % i == 0:
25 break
26 else:
27 if num >= 2:
28 zhi_li.append(num)
29 if start == 0 or start == 1:
30 he_li = [i for i in range(2, end)]
31 else:
32 he_li = [i for i in range(start, end)]
33 for i in zhi_li:
34 if i in he_li:
35 he_li.remove(i)
36 print('区间{0}-{1}的质数一共有{2}位,分别为:\n{3}'.format(start, end, len(zhi_li), zhi_li))
37 print('区间{0}-{1}的合数一共有{2}位,分别为:\n{3}'.format(start, end, len(he_li), he_li))
38 end_time = time.time()
39 time_ac = round(end_time - str_time, 4)
40 print('\n本次计算共耗时[%s]秒\n' % time_ac)
41 # 偶数、奇数
42 if cho == '2':
43 str_time = time.time()
44 print('正在计算中,请稍等...\n')
45 ji_li = []
46 ou_li = []
47 for i in range(start, end):
48 if i % 2 == 0:
49 ou_li.append(i)
50 else:
51 ji_li.append(i)
52 print('区间{0}-{1}的偶数一共有{2}位,分别为:\n{3}'.format(start, end, len(ou_li), ou_li))
53 print('区间{0}-{1}的奇数一共有{2}位,分别为:\n{3}'.format(start, end, len(ji_li), ji_li))
54 end_time = time.time()
55 time_ac = round(end_time - str_time, 4)
56 print('\n本次计算共耗时[%s]秒\n' % time_ac)
57 # 完全数
58 def s(aa, bb):
59 l = []
60 for n in range(aa, bb):
61 s = 0
62 for a in range(1, n):
63 if n % a == 0:
64 s = s + a
65 if n == s:
66 l.append(n)
67 return l
68 if cho == '3':
69 str_time = time.time()
70 print('正在计算中,请稍等...\n')
71 o = s(start, end)
72 if 0 in o:
73 o.remove(0)
74 print('区间{0}-{1}的完全数一共有{2}位,分别为:\n{3}'.format(start, end, len(o), o))
75 end_time = time.time()
76 time_ac = round(end_time - str_time, 4)
77 print('\n本次计算共耗时[%s]秒\n' % time_ac)
78 # 斐波那契数列
79 def feiBo():
80 num = end - start + 1
81 a = 0
82 b = 1
83 m = 0
84 li = []
85 while m < num:
86 a, b = b, a + b
87 m += 1
88 if a >= start and a <= end:
89 li.append(a)
90 return li
91 if cho == '4':
92 str_time = time.time()
93 print('正在计算中,请稍等...\n')
94 ll = feiBo()
95 print('区间{0}-{1}的斐波那契数列一共有{2}位,分别为:\n{3}'.format(start, end, len(ll), ll))
96 end_time = time.time()
97 time_ac = round(end_time - str_time, 4)
98 print('\n本次计算共耗时[%s]秒\n' % time_ac)
99 # 退出
100 if str.upper(cho) == 'QUIT':
101 print('\n\n\033[1;33m系统退出成功...\033[0m\n\n')
102 break
2 随机图片验证码

1 import random
2 from PIL import Image, ImageDraw, ImageFont
3
4
5 width = 160
6 height = 45
7 # 生成随机颜色
8 def getRandomColor():
9 r = random.randint(0, 255)
10 g = random.randint(0, 255)
11 b = random.randint(0, 255)
12 return (r, g ,b)
13
14
15 # 生成随机字符
16 def getRandomChar():
17 num = str(random.randint(0, 9))
18 lower = str(chr(random.randint(97, 122)))
19 upper = str(chr(random.randint(65, 90)))
20 random_char = random.choice([num, lower, upper])
21 return random_char
22
23
24
25 # 干扰元素(随机点、随机线条)
26 def drawLine(draw):
27 for i in range(5):
28 x1 = random.randint(0, width)
29 x2 = random.randint(0, width)
30 y1 = random.randint(0, height)
31 y2 = random.randint(0, height)
32 draw.line((x1, y1, x2, y2), fill=getRandomColor())
33
34
35
36 def drawPoint(draw):
37 for i in range(40):
38 x = random.randint(0, width)
39 y = random.randint(0, height)
40 draw.point((x, y), fill=getRandomColor())
41
42
43 # 最终图片生成
44 def creatImg():
45 bg_color = getRandomColor()
46 # 创建一张随机背景色图片
47 img = Image.new(mode='RGB', size=(width, height), color=bg_color)
48 # 创建图片画笔,用于描述文字
49 draw = ImageDraw.Draw(img)
50 # 修改字体
51 font = ImageFont.truetype(font='arial.ttf', size=34)
52 for i in range(5):
53 # 随机生成五种颜色和五种字符
54 random_txt = getRandomChar()
55 txt_color = getRandomColor()
56 # 保证字符颜色和背景色不一致
57 while txt_color == bg_color:
58 txt_color = getRandomColor()
59 # 根据坐标填充文字
60 draw.text((10 + 30 * i , 3), text = random_txt, fill=txt_color, font=font)
61 drawLine(draw)
62 drawPoint(draw)
63 with open('test.png', 'wb') as f:
64 img.save(f, format='png')
65
66
67 creatImg()
3 随机文字验证码

1 import random
2 import tkinter
3
4
5 root = tkinter.Tk()
6 root.geometry('400x400')
7 root.title('SkyGrass random')
8 root.resizable(width=False, height=False)
9
10 # # 随机码位数选择
11 label = tkinter.Label(root,text='请在文本框中填入操作的代号',font=('黑体',12),fg='#4F4F4F')
12 label.place(x=75, y=10, width=250, height=30)
13 label_three = tkinter.Label(root,text='1.三位数随机码',font=('黑体',13),fg='#4F4F4F')
14 label_three.place(x=10, y=60)
15 label_four = tkinter.Label(root,text='2.四位数随机码',font=('黑体',13),fg='#4F4F4F')
16 label_four.place(x=210, y=60)
17 label_five = tkinter.Label(root,text='3.五位数随机码',font=('黑体',13),fg='#4F4F4F')
18 label_five.place(x=10, y=100)
19 label_six = tkinter.Label(root,text='4.六位数随机码',font=('黑体',13),fg='#4F4F4F')
20 label_six.place(x=210, y=100)
21 label_change1 = tkinter.Label(root,text='请选择随机码位数:',font=('黑体',12),fg='#4F4F4F')
22 label_change1.place(x=10, y=140)
23 var_num = tkinter.Variable()
24 entry_1 = tkinter.Entry(root,textvariable=var_num,).place(x=155, y=140)
25
26 # # 是否生成有字母的随机码
27 label_true = tkinter.Label(root,text='A.有字母',font=('黑体',13),fg='#4F4F4F')
28 label_true.place(x=10, y=180)
29 label_false = tkinter.Label(root,text='B.无字母',font=('黑体',13),fg='#4F4F4F')
30 label_false.place(x=210, y=180)
31 label_change2 = tkinter.Label(root,text='请选择有无字母',font=('黑体',12),fg='#4F4F4F')
32 label_change2.place(x=10, y=220)
33 var_mul = tkinter.Variable()
34 entry_2 = tkinter.Entry(root,textvariable=var_mul,).place(x=150, y=220)
35
36 # # 运行按钮
37 but_run = tkinter.Button(root,text='生成随机码',font=('黑体',11),fg='black',bg='orange',command=lambda:Change_Random())
38 but_run.place(width=120,height=30, x=140, y=260)
39
40 # # 结果返回界面
41 result = tkinter.Variable()
42 result.set('')
43 label_result = tkinter.Entry(root,font=('黑体',25),textvariable=result)
44 label_result.place(x=50, y=300, width=300, height=80)
45
46
47
48
49 # # 随机码生成函数
50 def Change_Random():
51 num = var_num.get()
52 mul = var_mul.get()
53 res = ''
54 nn = int(num) + 2
55 for i in range(nn):
56 if mul == 'A':
57 n = random.randint(0, 9)
58 s1 = chr(random.randint(65, 90))
59 s2 = chr(random.randint(97, 122))
60 bar = str(random.choice([n, s1, s2]))
61 res += bar
62 result.set(res)
63 elif mul == 'B':
64 n1 = random.randint(0, 9)
65 n2 = random.randint(0, 9)
66 bar = str(random.choice([n1, n2]))
67 res += bar
68 result.set(res)
69
70 root.mainloop()
4 24点游戏

1 import random
2
3 func1 = [] # 存储用户数据
4 func2 = [] # 数据全排列
5 op2 = [] # 运算符全排列
6 func_op2 = [] # 数据+运算符全排列
7 result1 = [] # 加上一对括号(括两个数)的全排列
8 result2 = [] # 加上一对括号(括三个数)的全排列
9 result3 = [] # 加上两对括号的全排列
10 result = [] # 最终结果输出列表
11 result_end = []
12 result_out = []
13
14
15 # 产生四个随机数
16 def randomNum():
17 usr = []
18 num_li = range(1, 13)
19 usr = random.sample(num_li, 4)
20 return usr
21
22
23
24 def gameStart():
25 # 用户输入的数字全排列并去重后存储进列表func2
26 func1 = randomNum()
27 func_dic = {
28 1:'A', 2:'2', 3:'3', 4:'4', 5:'5',
29 6:'6', 7:'7', 8:'8', 9:'9', 10:'10',
30 11:'J', 12:'Q', 13:'K'
31 }
32 da = []
33 name = ['梅花', '黑桃', '红桃', '方片']
34 for i in func1:
35 name_num = random.randint(0, 3)
36 d = name[name_num] + func_dic[i]
37 da.append(d)
38 print('卡牌为:\n', da)
39 for i in func1:
40 for j in func1:
41 for k in func1:
42 for l in func1:
43 if i != j and i != k and i!= l and j != k and j != l and k != l:
44 func2.append([i, j, k, l])
45 # 运算符全排列后去重并存储进列表op2
46 op1 = ['+', '-', '*', '/']
47 op = []
48 for i in op1:
49 for j in op1:
50 for k in op1:
51 if i != j and i !=j and i !=k and j != k:
52 op2.append([i, j ,k])
53 # 数字+运算符全排列
54 for num in func2:
55 for ope in op2:
56 # 将三个运算符插入到数字列表中
57 num1 = num.copy()
58 num1.insert(1, ope[0])
59 num1.insert(3, ope[1])
60 num1.insert(5, ope[2])
61 func_op2.append(num1)
62 # 加入一对括号后全排列
63 # 括两个数的括号
64 for i in range(0, 5, 2):
65 for res in func_op2:
66 res1 = res.copy()
67 res1.insert(i, '(')
68 res1.insert(i+4, ')')
69 result1.append(res1)
70 # 括三个数的括号
71 for i in range(0, 3, 2):
72 for res in func_op2:
73 res2 = res.copy()
74 res2.insert(i, '(')
75 res2.insert(i+6, ')')
76 result2.append(res2)
77 # 加入两对括号的排列
78 for res in func_op2:
79 res3 = res.copy()
80 res3.insert(0, '(')
81 res3.insert(4, ')')
82 res3.insert(6, '(')
83 res3.insert(10, ')')
84 result3.append(res3)
85 # 综合整理
86 result = result1 + result2 + result3
87 for res in result:
88 res = [str(i) for i in res]
89 result_end.append(''.join(res))
90 # 计算结果
91 for end in result_end:
92 try:
93 if eval(end) == 24:
94 result_out.append(end)
95 except:
96 pass
97 cont = len(result_out) + 1
98 if len(result_out) == 0:
99 print('此组卡牌无法得出24点\n请换一组卡牌再次尝试...')
100 else:
101 for i in range(cont):
102 endd = '({0}):{1} = 24'.format(i+1, result_out[i-1])
103 print(endd)
104
105
106 gameStart()
5 简易五子棋

1 # 创建棋盘的程序
2 def initBoard():
3 global board # 调用全局的board
4 board = [None] * 16
5 for i in range(len(board)):
6 board[i] = ["+ "] * 16
7
8
9 # 打印棋盘的程序
10 def printBoard():
11 global board
12 for i in range(len(board)):
13 for j in range(len(board[i])):
14 print(board[i][j], end=" ")
15 print("")
16
17
18 # 开始下棋的程序
19 def startGame():
20 global board
21 player = 0
22 while isGameContinue():
23 if player % 2 == 0:
24 # 黑方下棋
25 print("==>黑方下棋")
26 if not playChess("●"):
27 continue
28 else:
29 # 白方下棋
30 print("==>白方下棋")
31 if not playChess("○"):
32 continue
33 player += 1
34
35
36 def playChess(chess):
37 # 获取位置
38 x = int(input("==> X=")) - 1
39 y = int(input("==> Y=")) - 1
40 if board[x][y] == "+ ":
41 board[x][y] = chess
42 printBoard()
43 return True # 落子成功
44 else:
45 print("==> 已有棋子 请重新落子\a")
46 printBoard()
47 return False # 落子失败
48
49
50 def isGameContinue():
51 for i in range(len(board)):
52 for j in range(len(board[i])):
53 if board[i][j] != "+ ":
54 # 横向
55 if j <= 11:
56 if board[i][j] == board[i][j + 1] == board[i][j + 2] == board[i][j + 3] == board[i][j + 4]:
57 whoWin(i, j)
58 return False
59 # 竖向
60 if i <= 11:
61 if board[i][j] == board[i + 1][j] == board[i + 2][j] == board[i + 3][j] == board[i + 4][j]:
62 whoWin(i, j)
63 return False
64 # 反斜
65 if i <= 11 and j <= 11:
66 if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2] == board[i + 3][j + 3] == board[i + 4][
67 j + 4]:
68 whoWin(i, j)
69 return False
70 # 正斜
71 if i >= 4 and j <= 11:
72 if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2] == board[i - 3][j + 3] == board[i - 4][
73 j + 4]:
74 whoWin(i, j)
75 return False
76 return True
77
78
79 def whoWin(i, j):
80 if board[i][j] == "●":
81 print("黑方胜!")
82 else:
83 print("白方胜!")
84 for i in range(10):
85 print("\a")
86
87
88 board = []
89 initBoard()
90 printBoard()
91 startGame()
6 摇骰子猜大小

1 import random
2
3
4 # 产生随机数并且判断大小
5 def roll_game(roll_poi=None):
6 while True:
7 print('\033[4;33m The Game Is Start... \033[0m')
8 print('\033[4;33m You Can Enter 0 To Exit Game... \033[0m')
9 roll = int(input('Please Enter The Number Of The Roll:\n'))
10 if roll_poi is None:
11 roll_poi = []
12 if roll == 0:
13 print('Exit Game Successful...')
14 break
15 num_li = []
16 for i in range(roll):
17 roll_num = random.randint(1, 6)
18 num_li.append(roll_num)
19 cont = 0
20 for i in num_li:
21 cont = cont + i
22 if cont > 0 and cont < roll * 3 + 1:
23 roll_poi = ['小']
24 elif cont > roll * 3 and cont < roll * 6 + 1:
25 roll_poi = ['大']
26 # 用户判断
27 usr_in = input('Please enter your chose:\n')
28 if usr_in == roll_poi[0]:
29 print('\033[0;33mThe All Numbers Is %s\033[0m' % num_li)
30 print('\033[0;34mPerfect! You Are Right!\033[0m\n\033[0;34mThe Number_Adds Is %s\033[0m' % cont)
31 elif usr_in != roll_poi[0]:
32 print('\033[0;33mThe All Numbers Is %s\033[0m' % num_li)
33 print('\033[0;31mOh...No! You Are False!\033[0m\n\033[0;31mThe Number_Adds Is %s\033[0m' % cont)
34 roll_poi.clear()
35 print('\n\n=================== PLAY AGAIN ================\n\n')
36
37
38 roll_game()
来源:https://www.cnblogs.com/skygrass0531/p/12298957.html
