【问题标题】:declare multiple variables to same value将多个变量声明为相同的值
【发布时间】:2013-12-12 14:09:01
【问题描述】:

使用 Python 3.3.3 和 pywin32 api。

我是 python 新手,正在尝试简化我的脚本。我正在尝试将单个值分配给多个变量,但它说

扩充赋值的非法表达式

import win32api
import win32con
import time

#makes sure your computer doesnt lock when idle for too long...
def move(x, y):
    for i in range(10):
        win32api.SetCursorPos((x,y))

        if(i % 1 == 0): x, y += 10 #this is where it crashes
        if(i % 2 == 0): x, y -= 10

        time.sleep(5)

move(500, 500)

【问题讨论】:

    标签: python


    【解决方案1】:

    你可以这样做:

    if(i % 1 == 0): x+=10; y+=10
    if(i % 2 == 0): x-=10; y-=10
    

    无论如何要小心 i%1,它总是会计算为 0,因此你的第一个 if 总是会执行。也许你想这样写来改变光标移动的方向:

    if(i % 2 == 1): x+=10; y+=10
    if(i % 2 == 0): x-=10; y-=10
    

    更多阅读:How to put multiple statements in one line?

    【讨论】:

      【解决方案2】:
      if(i % 1 == 0): x, y += 10 #this is where it crashes
      if(i % 2 == 0): x, y -= 10
      

      这是不可能的。当您在 Python 中解包元组时,左侧的变量数必须等于编号。右侧元组中的项目数。

      【讨论】:

        【解决方案3】:

        您可以将多个简单的分配链接在一起,例如:

        a = b = 5
        

        这不适用于像+= 这样的增强型任务。您必须单独编写这些内容。

        if i % 1 == 0:
            x += 10
            y += 10
        

        (另外,if 不需要括号。)

        【讨论】:

          猜你喜欢
          • 2022-01-11
          • 1970-01-01
          • 1970-01-01
          • 2017-01-04
          • 2016-03-17
          • 1970-01-01
          • 1970-01-01
          • 2020-11-10
          • 2016-11-28
          相关资源
          最近更新 更多