此循环不起作用,代码需要改进,您有什么建议吗?

问题描述 投票:0回答:1

我对Python还是很陌生,一般来说都可以进行编码,目前正在使用Python 3.5。我想学习自动化需要填充文本框才能运行的东西。我在电子游戏中尝试了以下代码,作为一种学习方法。

我希望将列表中的不同项目编号替换为consolecommand文本。

谢谢您的时间。

代码:

from pynput.keyboard import Key, Controller
import time
from keyboard import press

keyboard = Controller()

def submit():
    press('enter')

def Keyboardpress1():
    keyboard.press('/')
    keyboard.release('/')

def waitone():
    time.sleep(1)

def consolecommand():
    keyboard.type("giveitem 172 49000")

def deepsix():
    time.sleep(6)

def main():
    deepsix()
    submit()
    waitone()
    Keyboardpress1()
    waitone()
    consolecommand()
    waitone()
    submit()
    deepsix()


if __name__ == '__main__':
    main()

如您所见,该代码旨在击中一个数字以激活游戏中的命令控制台,然后键入命令。键入/键盘之间的停顿是因为没有它们,代码将无法流畅运行。

感谢,感谢您的帮助。

编辑:我实施了从建议的资源材料中学到的修复程序。现在我的问题更少了。谢谢评论部分的人。

Edit1:我实施了新代码来解决先前的问题。现在获得console命令来更改数字。

python python-3.x loops keypress
1个回答
0
投票

@@ Connor Winterton,这是一个非常简单的示例,使用参数来保存重复的自己。考虑func1(),它执行简单的计算并输出硬编码的消息。考虑func2()几乎相同,除了消息不同。通过将参数传递给func3(),您可以编写仅一个函数,该函数既可以执行以下任务,又可以减少代码并减少混乱,并使您能够传递将来可能需要的任何其他消息:

def func1():
    a = 1+2
    print(a,'hello')

def func2():
    a = 1+2
    print(a,'goodbye')

def func3(my_msg):
    a = 1+2
    print(a,my_msg)

# call the hardcoded functions
func1()
func2()

# call the new versatile function
func3('hello')
func3('goodbye')
func3('See you later!')
© www.soinside.com 2019 - 2024. All rights reserved.