import gym
env = gym.make("CartPole-v0") # 定义使用gym库中的环境:CartPole
env = env.unwrapped # 打开包装
# 以上两句可换成 env = gym.make('CartPole-v0').unwrapped
print(env.action_space) # 动作空间,输出的内容看不懂
print(env.action_space.n) # 输出动作个数
print(env.action_space.sample()) # 从动作空间中随机选取一个动作 (0或1)
print(env.observation_space) # 查看状态空间
print(env.observation_space.shape[0]) # 输出列数,即输出状态个数
print(env.observation_space.high) # 查看状态的最高值
print(env.observation_space.low) # 查看状态的最低值
# # # 证明随机抽取的动作(0或1)为int型 # # #
ENV_A_SHAPE = 0 if isinstance(env.action_space.sample(), int) else env.action_space.sample().shape
print(ENV_A_SHAPE)
# # # # # # # # # # # # # # # # # # # # #
# 显示CartPole环境
for i_episode in range(400): # 400个episode
s = env.reset() # 重置环境
while True: # 开始一个episode
env.render() # 显示动画
a = env.action_space.sample() # 随机选取动作
s_, r, done, info = env.step(a) # 执行动作,获得反馈
if done: # 如果符合终止条件
break # 跳出本次的episode
运行,得到
Discrete(2)
2
0
Box(4,)
4
[4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38]
[-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38]
0
显示动画