【问题标题】:Why it inly loops 4 times?为什么只有4次便便?
【发布时间】:2021-02-02 08:33:55
【问题描述】:

为什么我的命令只循环 4 次,但我将 x 设为 100 次而不是 4。有人可以帮我解决这个问题吗?我不明白这个错误,我需要在星期五之前修复它

import discord
from discord.ext import commands, tasks
import asyncio
import keyboard
import time
from pynput.mouse import Button, Controller
from pynput.keyboard import Key, Controller
from pynput.keyboard import Controller
from pynput import mouse
import mouse

TOKEN = 'mytoken...'

client = commands.Bot(command_prefix = '.')

@client.command(name='play')
async def play(ctx):

    await ctx.channel.send("Hello! welcome to a game where you play my game through discord messages! How yo play: if you want to go write - 'go', left - 'left', right - 'right', back - 'back', sprint 'lgo', click - 'click', jump - 'jump'")

    
    
    x = '100'
    for x in 'play':


        
        msg = await client.wait_for('message')
        response = (msg.content)
        print(response)
    
    
        if response == "go":

            
            keyboard.press('w')
            time.sleep(2)
            keyboard.release('w')
    
        if  response == "left":   
            
            keyboard.press('a')
            time.sleep(2)
            keyboard.release('a')
        
        if response == "right":

            
            keyboard.press('d')
            time.sleep(2)
            keyboard.release('d')
    
        if  response == "back":   
            
            keyboard.press('s')
            time.sleep(2)
            keyboard.release('s')
        
        if response == "jump":

            
            keyboard.press('b')
            keyboard.release('b')
    
        if  response == "click":   
            
            mouse.click('left')
        
        if response == "lgo":

            
            keyboard.press('shift + w')
            time.sleep(5)
            keyboard.release('w')

            

client.run(TOKEN)

我正在制作一个不和谐的机器人,它可以通过不和谐的消息来玩我的游戏,但是我有一个奇怪的错误,它循环了 4 次而不是 100 次,因为它是做的

【问题讨论】:

  • x = '100' 和 for x in 'play': - 这两行都不会使循环运行 100 次,无论您在给它一个值后立即覆盖变量
  • 那该如何解决呢?

标签: python loops discord cycle


【解决方案1】:

它只循环了 4 次,因为您正在遍历字符串 play。

x = '100' 
for x in 'play':
  print(x)

这个输出:

p
l
a
y

(完全忽略 100,因为它在循环中被覆盖)

循环 100 次使用:

x = 100 # number, not string
for i in range(x):
  print(i)

这个输出:

0
1
2
3
...
98
99

而x 保持值 100

【讨论】:

    【解决方案2】:

    用途:

    for x in range(1, 100):
    

    而不是:

     x = '100'
        for x in 'play'
    

    【讨论】:

      猜你喜欢
      • 2021-08-23
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 2019-11-18
      • 2011-06-21
      相关资源
      最近更新 更多