Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jiangtao
写一个抽奖程序
提交
2096676e
写
写一个抽奖程序
项目概览
jiangtao
/
写一个抽奖程序
与 Fork 源项目一致
Fork自
inscode / Streamlit
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
写
写一个抽奖程序
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2096676e
编写于
3月 25, 2024
作者:
J
jiangtao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mon Mar 25 18:07:00 CST 2024 inscode
上级
0520122c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
112 addition
and
15 deletion
+112
-15
main.py
main.py
+112
-15
未找到文件。
main.py
浏览文件 @
2096676e
import
streamlit
as
st
import
streamlit
as
st
from
streamlit_option_menu
import
option_menu
import
random
import
inscode
# 设置Streamlit应用程序的标题
# Helper function to generate random ASCII strings for demonstration purposes
st
.
set_page_config
(
page_title
=
"app name"
,
layout
=
"wide"
)
def
random_string
(
length
):
return
''
.
join
(
chr
(
random
.
randint
(
33
,
126
))
for
_
in
range
(
length
))
menu1
=
"菜单1"
# Use inscode.ai to generate a random prompt if not provided
menu2
=
"菜单2"
def
generate_prompt
(
prompt
):
if
not
prompt
:
prompt
=
"Please provide a prompt for the AI to generate a random one for you."
st
.
warning
(
prompt
)
prompt
=
inscode
.
ai
(
"Generate a random prompt"
,
random_string
(
20
))
return
prompt
with
st
.
sidebar
:
# Define Streamlit app
menu
=
option_menu
(
"菜单"
,
[
menu1
,
menu2
],
def
app
():
icons
=
[
'house'
,
"list-task"
],
st
.
set_page_config
(
page_title
=
"Lottery App"
)
menu_icon
=
"cast"
,
default_index
=
0
)
st
.
title
(
"Lottery App"
)
# Initialize variables
num_awards
=
0
awards
=
{}
winners
=
[]
def
main
():
# Define function to add an award
def
add_award
(
award
,
prize
):
nonlocal
num_awards
awards
[
award
]
=
prize
num_awards
+=
1
if
menu
==
menu1
:
# Define function to remove an award
st
.
subheader
(
f
"
{
menu1
}
"
)
def
remove_award
(
award
):
nonlocal
num_awards
if
award
in
awards
:
del
awards
[
award
]
num_awards
-=
1
if
menu
==
menu2
:
# Define function to clear all awards
st
.
subheader
(
f
"
{
menu2
}
"
)
def
clear_awards
():
nonlocal
num_awards
,
awards
num_awards
=
0
awards
=
{}
# Define function to draw a winner
def
draw_winner
():
if
num_awards
<
1
:
st
.
warning
(
"Please add at least one award before drawing a winner."
)
return
winner
=
random
.
choice
([
x
for
x
in
range
(
num_awards
)
if
x
not
in
winners
])
winners
.
append
(
winner
)
award
=
list
(
awards
.
keys
())[
winner
]
prize
=
awards
[
award
]
st
.
success
(
f
"Congratulations! You won
{
prize
}
-
{
award
}
"
)
# Define function to display the awards
def
display_awards
():
st
.
header
(
"Awards"
)
if
num_awards
<
1
:
st
.
warning
(
"No awards added. Click 'Add Award' to add an award."
)
else
:
for
i
,
award
in
enumerate
(
awards
.
keys
()):
st
.
write
(
f
"
{
i
+
1
}
.
{
award
}
-
{
awards
[
award
]
}
"
)
# Define function to display the winners
def
display_winners
():
st
.
header
(
"Winners"
)
if
len
(
winners
)
<
1
:
st
.
warning
(
"No winners drawn. Click 'Draw Winner' to draw a winner."
)
else
:
for
i
,
winner
in
enumerate
(
winners
):
award
=
list
(
awards
.
keys
())[
winner
]
prize
=
awards
[
award
]
st
.
write
(
f
"
{
i
+
1
}
.
{
award
}
-
{
prize
}
"
)
# Define function to clear all winners
def
clear_winners
():
nonlocal
winners
winners
=
[]
# Define sidebar
with
st
.
sidebar
:
st
.
header
(
"Options"
)
add
=
st
.
button
(
"Add Award"
)
remove
=
st
.
button
(
"Remove Award"
)
clear
=
st
.
button
(
"Clear Awards"
)
st
.
write
(
" "
)
draw
=
st
.
button
(
"Draw Winner"
)
clear_win
=
st
.
button
(
"Clear Winners"
)
st
.
write
(
" "
)
prompt
=
st
.
text_input
(
"Enter prompt for AI to generate random prompt (optional):"
)
generate
=
st
.
button
(
"Generate Random Prompt"
)
# Process sidebar input
if
add
:
award
=
st
.
text_input
(
"Award:"
)
prize
=
st
.
text_input
(
"Prize:"
)
if
award
and
prize
:
add_award
(
award
,
prize
)
if
remove
:
if
num_awards
<
1
:
st
.
warning
(
"No awards to remove!"
)
else
:
award
=
st
.
selectbox
(
"Select award to remove:"
,
list
(
awards
.
keys
()))
remove_award
(
award
)
if
clear
:
clear_awards
()
if
draw
:
draw_winner
()
if
clear_win
:
clear_winners
()
if
generate
:
prompt
=
generate_prompt
(
prompt
)
# Display awards and winners
display_awards
()
display_winners
()
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
main
()
app
()
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录