Python随机食物生成器:复用random.choice结果实现就近搜索
随机食物生成器技术实现方案
核心实现逻辑
你不需要为每个食物选项单独编写if分支:random.choice() 方法会直接返回选中的食物字符串,只要把返回值赋值给独立变量,后续的交互提示、门店搜索逻辑直接调用这个变量即可,变量会自动承载当前随机选中的食物值。
你原有待完善代码存在几个明显问题:
- 重复使用
list作为变量名,既存储食物列表又存储随机选中的结果,还和Python内置的列表类型重名,极易引发逻辑错误 if list == list是恒成立的无效判断,完全可以删除- 字符串拼接语法不完整,函数没有闭合结构
修正后可运行代码
import random import requests def random_food_picker(): # 食物列表单独命名存储 food_options = [ "Crab Rangoon", "Sushi", "Ramen", "Bubble Tea", "Hot Pot", "Ice Cream", "Tostec", "Ovinhos", "Mango", "Pineapple", "Pad Thai", "Udon", "Lamb Corma", "Rice Beans and Steak with Plaintains and Tostones", "Tacos" ] # 随机选中结果存入独立变量,后续所有逻辑直接复用该变量 picked_food = random.choice(food_options) print(f"随机抽中的食物是:{picked_food}") # 直接拼接变量生成交互提示,无需任何分支判断 user_confirm = input(f"是否需要搜索你所在区域内提供{picked_food}的最近门店?(输入y确认,其他键取消):").strip().lower() if user_confirm == "y": print(f"正在搜索附近售卖{picked_food}的门店...") # 谷歌搜索逻辑直接调用picked_food作为关键词即可,无需针对单个食物写适配 # 下方为搜索逻辑预留位,补充你的谷歌API鉴权、用户位置参数后即可使用 # search_params = { # "keyword": picked_food, # "location": "传入用户所在位置经纬度/地址", # "rankby": "distance", # "key": "你的谷歌接口密钥" # } # resp = requests.get("谷歌附近搜索接口地址", params=search_params) # 对resp返回的门店结果做解析展示即可 else: print("已取消搜索") if __name__ == "__main__": random_food_picker()
后续扩展注意点
- 所有依赖随机选中食物的逻辑,都直接使用
picked_food变量传参即可,不管随机结果是什么,变量都会自动对应选中值,不需要新增判断分支 - 调用谷歌附近搜索时,只需要把
picked_food作为关键词参数传入,搭配用户位置信息就能返回对应门店结果,不需要为每种食物单独写搜索逻辑
内容的提问来源于stack exchange,提问作者kingslyr
相关产品推荐
相关产品推荐

