python - 我不知道交互式任务中的标准输出有什么问题,测试系统说发生了空闲限制超出
问题描述
交互器在新行上给出程序要求的答案,但是刷新存在一些问题。它在测试服务器上不起作用,但在我的计算机上一切正常
from sys import stdin, stdout
islier = False
print('? 1')
stdout.flush()
t = int(stdin.read().rstrip('\n'))
if t == 1:
islier = True
l = 1
r = 100000
while l != r:
print('? ' + str((l + r) // 2))
stdout.flush()
t = int(stdin.read().rstrip('\n'))
if islier:
t = abs(t - 1)
if t == 1:
r = (l + r) // 2
else:
l = (l + r) // 2
print('! ' + str((l + r) // 2))
解决方案
问题可能与冲洗无关。在我的机器上,运行sys.stdin.read()
会阻塞系统,这可能会导致超出空闲限制的错误。使用sys.stdin.readline()
它将返回用户输入输入的那一刻:
t = int(stdin.readline().rstrip('\n'))
推荐阅读
- javascript - 服务器如何将 JWT 令牌发送到浏览器
- python - numpy.str_ 转换为字节或字符串数据类型错误
- noise - 陀螺角漂移的原因
- html - 如何让 Div A 的孩子与其兄弟 Div B 重叠?
- java - Java 和 MySQL 中的 NullPointerException
- excel - 根据选择隐藏行
- python - 使用 pytest 为实例方法编写单元测试的正确方法
- php - php 在命名空间内使用所有带有“use”的类| 不是“包括”而是“使用”
' | 香草PHP - postgresql - postgresql:在列更新中分组 - 语法错误
- java - 在覆盖 toString 后在类中使用自定义打印方法已经完成