python代码中的错误
我的pythoncod不断地给我诸如缩进和语法之类的错误,我一直在修复它们,但都没有用。下面是我正在使用的代码,我仍然不确定我做错了什么(顺便说一句,这只是因为我和一个朋友就我不能做的事情发生了争论)python代码中的错误,python,python-3.x,syntax-error,Python,Python 3.x,Syntax Error,我的pythoncod不断地给我诸如缩进和语法之类的错误,我一直在修复它们,但都没有用。下面是我正在使用的代码,我仍然不确定我做错了什么(顺便说一句,这只是因为我和一个朋友就我不能做的事情发生了争论) 导入请求 导入子流程 导入json 导入系统 导入线程 导入时间 从队列导入队列 numberOfViewers=int(sys.argv[1]) builderThreads=int(sys.argv[2]) startTime=time.time() numberOfSockets=0 并发=
导入请求
导入子流程
导入json
导入系统
导入线程
导入时间
从队列导入队列
numberOfViewers=int(sys.argv[1])
builderThreads=int(sys.argv[2])
startTime=time.time()
numberOfSockets=0
并发=25
URL=[]
urlsUsed=[]
def getURL():#获取令牌
output=subprocess.Popen([“livestreamer”、“twitch.tv/CHANNEL_NAME”、“-j”],stdout=subprocess.PIPE)。communicate()[0]
返回json.loads(output)['streams']['best']['url']#解析json并返回url参数
def build():#构建一组令牌,也称为查看器
全局套接字数
全球观众人数
尽管如此:
如果numberOfSockets
您需要缩进代码。Python不喜欢这样做,例如:
def main():
print "Hello World!"
Python需要缩进(我认为是4个空格)
有语法和缩进错误的行号是多少?顺便说一下,您需要缩进代码。Python不喜欢这样做,例如:
def main():
print "Hello World!"
Python需要缩进(我认为是4个空格)
有语法和缩进错误的行号是多少?顺便说一下,Python使用缩进来定义块,而不是{} 此外,您还应该在所有文档期间继续使用第一个缩进格式。这意味着,如果您从选项卡开始,您必须始终使用选项卡,即使空间在视觉上看起来相同,如果您使用的是4个空间,则以后在代码中无法更改选项卡或更多空间 您提到的错误通常是因为您从internet粘贴了代码,而它使用的是选项卡,而您使用的是空格,反之亦然
我建议重新索引整个代码,因为它很短 Python使用缩进来定义块,而不是{} 此外,您还应该在所有文档期间继续使用第一个缩进格式。这意味着,如果您从选项卡开始,您必须始终使用选项卡,即使空间在视觉上看起来相同,如果您使用的是4个空间,则以后在代码中无法更改选项卡或更多空间 您提到的错误通常是因为您从internet粘贴了代码,而它使用的是选项卡,而您使用的是空格,反之亦然
我建议重新索引整个代码,因为它很短 您的代码中有几个错误: 1:
打印:
如果您正在使用Python3-
print语句已替换为print()函数,具有
关键字参数来替换旧的大多数特殊语法
打印报表
更多
2:缩进:
如果您遇到此错误:
缩进错误:应为缩进块
这意味着你的压痕不合适。作为一种解释语言,适当的缩进对于Python来说是必要和重要的:
逻辑字符串开头的前导空格(空格和制表符)
line用于计算线的缩进级别,在
turn用于确定语句的分组
有关更多信息,请参阅
固定代码示例:
我为您修复了这些错误,下面是它的外观:
import requests
import subprocess
import json
import sys
import threading
import time
from Queue import Queue
numberOfViewers = int(sys.argv[1])
builderThreads = int(sys.argv[2])
startTime = time.time()
numberOfSockets = 0
concurrent = 25
urls = []
urlsUsed = []
def getURL(): # Get tokens
output = subprocess.Popen(["livestreamer", "twitch.tv/CHANNEL_NAME", "-j"],
stdout=subprocess.PIPE).communicate()[0]
return json.loads(output)['streams']['worst']['url'] # Parse json and return the URL parameter
def build(): # Builds a set of tokens, aka viewers
global numberOfSockets
global numberOfViewers
while True:
if numberOfSockets < numberOfViewers:
numberOfSockets += 1
print ("Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers))
urls.append(getURL())
def view(): # Opens connections to send views
global numberOfSockets
while True:
url=q.get()
requests.head(url)
if (url in urlsUsed):
urls.remove(url)
urlsUsed.remove(url)
numberOfSockets -= 1
else:
urlsUsed.append(url)
q.task_done()
if __name__ == '__main__':
for i in range(0, builderThreads):
threading.Thread(target = build).start()
while True:
while (numberOfViewers != numberOfSockets): # Wait until sockets are built
time.sleep(1)
q=Queue(concurrent*2)
for i in range(concurrent):
try:
t=threading.Thread(target=view)
t.daemon=True
t.start()
except:
print ('thread error')
try:
for url in urls:
print (url)
q.put(url.strip())
q.join()
except KeyboardInterrupt:
sys.exit(1)
您的代码中有几个错误: 1:
打印:
如果您正在使用Python3-
print语句已替换为print()函数,具有
关键字参数来替换旧的大多数特殊语法
打印报表
更多
2:缩进:
如果您遇到此错误:
缩进错误:应为缩进块
这意味着你的压痕不合适。作为一种解释语言,适当的缩进对于Python来说是必要和重要的:
逻辑字符串开头的前导空格(空格和制表符)
line用于计算线的缩进级别,在
turn用于确定语句的分组
有关更多信息,请参阅
固定代码示例:
我为您修复了这些错误,下面是它的外观:
import requests
import subprocess
import json
import sys
import threading
import time
from Queue import Queue
numberOfViewers = int(sys.argv[1])
builderThreads = int(sys.argv[2])
startTime = time.time()
numberOfSockets = 0
concurrent = 25
urls = []
urlsUsed = []
def getURL(): # Get tokens
output = subprocess.Popen(["livestreamer", "twitch.tv/CHANNEL_NAME", "-j"],
stdout=subprocess.PIPE).communicate()[0]
return json.loads(output)['streams']['worst']['url'] # Parse json and return the URL parameter
def build(): # Builds a set of tokens, aka viewers
global numberOfSockets
global numberOfViewers
while True:
if numberOfSockets < numberOfViewers:
numberOfSockets += 1
print ("Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers))
urls.append(getURL())
def view(): # Opens connections to send views
global numberOfSockets
while True:
url=q.get()
requests.head(url)
if (url in urlsUsed):
urls.remove(url)
urlsUsed.remove(url)
numberOfSockets -= 1
else:
urlsUsed.append(url)
q.task_done()
if __name__ == '__main__':
for i in range(0, builderThreads):
threading.Thread(target = build).start()
while True:
while (numberOfViewers != numberOfSockets): # Wait until sockets are built
time.sleep(1)
q=Queue(concurrent*2)
for i in range(concurrent):
try:
t=threading.Thread(target=view)
t.daemon=True
t.start()
except:
print ('thread error')
try:
for url in urls:
print (url)
q.put(url.strip())
q.join()
except KeyboardInterrupt:
sys.exit(1)
嗨@flamelier欢迎来到StackOverflow。请发布您的错误以改进您的帖子。那边,伙计
$ sudo pip install requests --upgrade