Python Learning-while循环

不出所料,小红的食物摊经营得越来越好,来她这里购买食物的顾客也越来越多,她简直有点应对不睱,她需要我们为她制作一个可以帮助她与顾客沟通的应用——用户可以在应用软件界面输入他们想要的食物名称,如果食物摊的食物清单里有该食物,就通知小红为将食物提供给顾客,如果食物摊的食物清单里没有该食物名称,则提示顾客这里没有他想要的食品。当然,为小红开发这样一个程序,她会付给你一笔费用的!

input()函数

input()函数可以让程序暂停运行,等待用户的输入;当用户输入完毕,并按下回车键时,input()函数将用户的输入返回,这样就可以得到顾客想要的食物名称了

food_name = input("Please tell me what kind of food you want:")
print(food_name)

首先,第一行代码会输出input()参数中的请输入您想要的食物名称:作为提示,如下

Please tell me what kind of food you want:

当用户有输入,并按下回车后,input()函数将把获得的输入信息返回,并赋值给food_name变量,然后程序接着向下执行,如下

Please tell me what kind of food you want:apple
apple

用户输入了apple,并且按下了回车,程序将用户想要的食物名称打印出来

目前只是简单的获取到了顾客想要的食物,还需要去小红的食品清单里查找是否有相应的食物

# 假设这是目前小红手头的食物清单 
foods = [
    {
  'tomato': 3, 'potato': 2, 'onion': 4},
    {
  'apple': 5, 'banana':3.3},
    {
  'beef': 23, 'pork': 14, 'chicken': 19.8, 'fish': 9.7}
]

# 获取用户输入的食物名称
food_name = input("Please tell me what kind of food you want:")
find_food = ""

# 从小红的食物清单里查看是否有顾客想要的食物
for food_list in foods:
    if food_name in food_list.key
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Q-learning是一种基于值的强化学习算法,它可以学习到一个最优的策略,使得在某个环境下,智能体可以最大化累计的奖励。下面是一个简单的Python实现示例: ```python import numpy as np # 定义环境 env = np.array([[0, 0, 0, 0, 0], [0, 0, -1, 0, 0], [0, 0, 0, -1, 0], [0, -1, 0, 1, 0], [0, 0, 0, 0, 0]]) # 定义参数 gamma = 0.8 # 折扣因子 alpha = 0.5 # 学习率 epsilon = 0.1 # 探索率 num_episodes = 1000 # 训练轮数 # 初始化Q表 Q = np.zeros((env.shape[0], env.shape[1], 4)) # 定义动作 actions = ['up', 'down', 'left', 'right'] # Q-learning算法主循环 for episode in range(num_episodes): # 初始化状态 state = (0, 0) # 循环直到到达目标状态 while True: # 选择动作 if np.random.uniform(0, 1) < epsilon: action = np.random.choice(actions) else: action = actions[np.argmax(Q[state[0], state[1]])] # 执行动作 if action == 'up': next_state = (max(state[0]-1, 0), state[1]) elif action == 'down': next_state = (min(state[0]+1, env.shape[0]-1), state[1]) elif action == 'left': next_state = (state[0], max(state[1]-1, 0)) elif action == 'right': next_state = (state[0], min(state[1]+1, env.shape[1]-1)) # 计算奖励 reward = env[next_state[0], next_state[1]] # 更新Q表 Q[state[0], state[1], actions.index(action)] += alpha * (reward + gamma * np.max(Q[next_state[0], next_state[1]]) - Q[state[0], state[1], actions.index(action)]) # 更新状态 state = next_state # 判断是否到达目标状态 if env[state[0], state[1]] == 1: break # 输出最优策略 state = (0, 0) while True: action = actions[np.argmax(Q[state[0], state[1]])] print(action) if action == 'up': state = (max(state[0]-1, 0), state[1]) elif action == 'down': state = (min(state[0]+1, env.shape[0]-1), state[1]) elif action == 'left': state = (state[0], max(state[1]-1, 0)) elif action == 'right': state = (state[0], min(state[1]+1, env.shape[1]-1)) if env[state[0], state[1]] == 1: break ``` 在这个例子中,我们使用了一个简单的5x5环境,其中0表示空格,-1表示障碍物,1表示目标状态。我们使用Q表来存储智能体对每个状态和动作的估计值,通过不断与环境交互,智能体可以学习到一个最优的Q表,从而得到最优的策略。 在主循环中,我们按照Q-learning算法的步骤循环执行,直到到达目标状态。在每个时间步,我们首先根据当前状态和Q表选择一个动作,然后执行该动作并观察下一个状态和奖励,最后更新Q表。在每个时间步中,我们使用贪心策略或epsilon-greedy策略来选择动作。 最后,我们使用已经学习到的Q表输出最优的策略。在这个例子中,我们从初始状态开始,按照Q表中估计值最大的动作依次执行,直到到达目标状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值