ywyang commited on
Commit
2014802
·
verified ·
1 Parent(s): b48f9ec

Update app.py

Browse files

貼上chatGPT的程式碼,咒語如下:

請用Gradio幫我寫一個抽籤系統,規格如下:
可以輸入班級座號的最大值
有一個按鈕可以抽籤
點擊之後隨機找出一個號碼
有一個按鈕可以選擇號碼會不會重複,並記錄抽到幾次

Files changed (1) hide show
  1. app.py +51 -0
app.py CHANGED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import random
3
+
4
+ # 初始化全域變數
5
+ drawn_numbers = []
6
+ draw_count = {}
7
+
8
+ # 抽籤邏輯
9
+ def draw_number(max_number, allow_duplicates):
10
+ global drawn_numbers, draw_count
11
+
12
+ if allow_duplicates or len(drawn_numbers) < max_number:
13
+ while True:
14
+ number = random.randint(1, max_number)
15
+ if allow_duplicates or number not in drawn_numbers:
16
+ break
17
+
18
+ # 記錄抽中的號碼和次數
19
+ if number in draw_count:
20
+ draw_count[number] += 1
21
+ else:
22
+ draw_count[number] = 1
23
+
24
+ if not allow_duplicates:
25
+ drawn_numbers.append(number)
26
+
27
+ return f"抽到的號碼是: {number}\n目前號碼被抽中的次數: {draw_count}"
28
+ else:
29
+ return "所有號碼都已經被抽完!"
30
+
31
+ # 重置系統
32
+ def reset():
33
+ global drawn_numbers, draw_count
34
+ drawn_numbers = []
35
+ draw_count = {}
36
+ return "系統已重置!"
37
+
38
+ # 介面設計
39
+ with gr.Blocks() as demo:
40
+ max_number_input = gr.Number(label="輸入班級座號的最大值", value=30, precision=0)
41
+ allow_duplicates_checkbox = gr.Checkbox(label="允許重複抽籤", value=True)
42
+ output = gr.Textbox(label="結果")
43
+
44
+ draw_button = gr.Button("抽籤")
45
+ reset_button = gr.Button("重置系統")
46
+
47
+ draw_button.click(draw_number, inputs=[max_number_input, allow_duplicates_checkbox], outputs=output)
48
+ reset_button.click(reset, outputs=output)
49
+
50
+ # 運行應用程式
51
+ demo.launch()