Python:运行并发增量函数时出现问题
我正在Mu上开发一个类似cookieclicker的增量游戏脚本。每次输入“.”时,它会将名为“dots”的变量增加1。但是,我在同时运行一个函数时遇到了问题,这个函数每秒增加一个“dots”变量Python:运行并发增量函数时出现问题,python,python-3.x,multithreading,function,concurrency,Python,Python 3.x,Multithreading,Function,Concurrency,我正在Mu上开发一个类似cookieclicker的增量游戏脚本。每次输入“.”时,它会将名为“dots”的变量增加1。但是,我在同时运行一个函数时遇到了问题,这个函数每秒增加一个“dots”变量 import threading import time dots = 0 def func1(): global dots while True: user_input = input() if user_input == '.':
import threading
import time
dots = 0
def func1():
global dots
while True:
user_input = input()
if user_input == '.':
dots = dots + 1
print(dots)
def func2():
global dots
while True:
time.sleep(1)
dots = dots + 1
print(dots)
func1_thread = threading.Thread(target=func1)
func2_thread = threading.Thread(target=func2)
if __name__ == '__main__':
func1_thread.start()
func2_thread.start()
此代码会导致用户每次输入“.”时出现语法错误:
文件“”,第1行.
^
SyntaxError:无效语法 提前感谢您对我的帮助
(修复了这个问题,我运行的python版本是3.6,所以我在3.9版上切换到pycharm,效果很好。)您是如何运行这个的?它是否来自交互式Python shell?很可能您的程序使用了一个“.”,然后shell获取下一个,并说这是一个语法错误。当我在Linux控制台/终端上运行它时,它会正常工作。Glen,我正在脚本上运行它。您确定这是Python 3吗?似乎您对
input
的调用正在评估用户的输入,在Python 2中就是这样。Davis,我在Windows PowerShell上检查过,它说它正在3.9.0版上运行。您是如何运行它的?它是否来自交互式Python shell?很可能您的程序使用了一个“.”,然后shell获取下一个,并说这是一个语法错误。当我在Linux控制台/终端上运行它时,它会正常工作。Glen,我正在脚本上运行它。您确定这是Python 3吗?您对input
的调用似乎是在评估用户的输入,在Python 2中就是这样。Davis,我在Windows PowerShell上检查过,它说它在3.9.0版上运行