sys.stdin.readline() 读取时没有提示,返回“两者之间没有任何内容”

2024-01-11

我有一个执行以下操作(除其他外)的函数:

userinput = stdin.readline()
betAmount = int(userinput)

应该从 stdin 获取输入整数作为字符串并将其转换为整数。

然而,当我调用该函数时,它返回一个换行符(它甚至不等待我输入任何内容)。

在程序的早期,我得到了一些以下形式的输入:

stdin.read(1)

捕获单个字符。

难道这跟这有什么关系吗?我是否以某种方式将换行符写入标准输入的下一行?

我怎样才能解决这个问题?


stdin.read(1)从中读取一个字符stdin。如果此时要读取多个字符(例如,读入的一个字符后面的换行符),则该字符或多个字符仍将在缓冲区中等待下一个字符read() or readline().

举个例子,给定rd.py:

from sys import stdin

x = stdin.read(1)
userinput = stdin.readline()
betAmount = int(userinput)
print ("x=",x)
print ("userinput=",userinput)
print ("betAmount=",betAmount)

...如果我按如下方式运行此脚本(我已输入234):

C:\>python rd.py
234
x= 2
userinput= 34

betAmount= 34

... 所以2正在被首先拾取,留下34以及要拾取的尾随换行符readline().

我建议通过使用来解决问题readline()而不是read()大多数情况下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sys.stdin.readline() 读取时没有提示,返回“两者之间没有任何内容” 的相关文章

随机推荐

  • 如何在 Chutzpah 的无头浏览器中使用 templateUrl 测试指令

    有谁知道如何让像 Chutzpah 的 Visual Studio 测试适配器这样的无头浏览器允许指令访问其 html 模板文件 Chutzpah 使用 PhantomJS 作为无头浏览器 这似乎限制了我的选择 我正在使用 Chutzpah
  • azure apim中的JWT验证失败错误

    我目前正在尝试使用以下文档实施 Oauth2 0 来保护 API https learn microsoft com en us azure api management api management howto protect backe
  • 您在实体框架中发现的最烦人的功能(或缺乏功能)是什么?

    我从实体框架开始 听起来不错 但我想知道我是否应该留意某个地方的弱点 那里有什么经验吗 您可能需要开始在这些问题前加上您正在讨论的版本的前缀 NET 4 0 即将发布的版本中已经修复了大量的烦恼 这是我在使用第一个版本大约 6 个月后在 s
  • 当触发新管道时取消之前的管道 GitHub Actions

    我遇到了拦截器 我确信其他人一定也遇到过这个问题 所以只需检查是否有任何解决方法 这是一个 Github 工作流程示例 name Test Build on pull request types opened synchronize reo
  • Flutter 能否消除使用 Mac 创建 IOS 应用程序的需要?

    所以我想构建 Android 和 IOS 应用程序 有一天我发现了 flutter 我知道 IOS 需要 MacOS 但 flutter 可以在 Windows 上运行 我的问题是 我可以使用flutter在Windows计算机上开发和发布
  • 文件存在时 os.rename 不会引发 FileExistsError

    我有一个file rename我想通过一个简单的改进机制try except块将检查重命名的文件是否已存在于目录中 我在我的目录中准备了2个文件 data txt and old data txt 函数应该抛出异常 如下所示old data
  • LoadLibraryW() 无法加载 System32 中的 DLL

    我尝试使用以下代码加载 C Windows System32 文件夹中与打印机驱动程序一起安装的 DLL LoadLibraryW L C Windows System32 MagAPI dll GetLastError 报告 找不到指定的
  • 在没有 cron 的情况下在 AWS 中运行计划任务

    目前我在亚马逊有一台服务器 我把所有的 cronjobs 都放在里面 我想消除这个单点故障 并将所有任务公开为 Web 服务 我想将 VPC ELB 背后的服务公开给一些服务器 这些服务器将在调用时运行任务 Amazon AWS 是否提供某
  • 在驱动程序安装期间重新扫描设备树以了解硬件更改

    我在用着安装盾安装我的应用程序 驱动程序和服务 仅当在设备管理器中找到其硬件 ID 时 我才需要安装即插即用驱动程序 驱动程序安装是使用 DPInst exe 完成的 我的问题是 用户有时可以手动卸载驱动程序 安装后甚至卸载驱动程序 未知司
  • 在Http get请求上调用Https url

    我有一个https 网址并希望发送请求以从该 URL 获取数据 场景 1 从我的浏览器如果我点击 Url 我会得到响应 而从我的 Angularjs 应用程序我总是得到错误 401 但如果我从浏览器点击 Api 我总是得到正确的响应 出于安
  • Python-停止 FuncAnimation

    有谁知道停止 FuncAnimation 的首选方法 我正在使用它来记录示波器中的数据 并且希望能够按需暂停和重新启动数据 有什么方法可以向其发送按钮单击事件吗 谢谢 德里克 The FuncAnimation是一个子类TimedAnima
  • 将一个类中的值绑定到另一类中的另一个值

    我有以下课程课程要点 https gist github com anonymous 9306399 我想将 Item Visible 绑定到 Items ItemsVisible 可能吗 如果可以 如何 Item cs using Sys
  • 应如何处理变量扩展产生的反斜杠?

    我运行了以下命令 sh是一个名字sh实现 以及我能找到的所有 shell 虽然我期待所有的打印match 我得到了不一致的结果 我不知道哪种行为是正确的 可靠的 sh c case 1 in 2 echo match esac f oo f
  • Rails - 包括与动态条件的关联

    给定一个学校模型和一个学生模型 其中学校与学生有 has many 关系 has many students conditions gt proc year id send active year id 其中 active year id
  • 使用 ffmpeg 从 rtsp 源每 5 或 10 分钟截屏一次

    你好 我尝试制作脚本 每 5 或 10 分钟从 ip 摄像头获取屏幕截图 这个脚本可以工作 ffmpeg rtsp transport tcp i SOURCE vf fps fps 1 20 update 1 picture1 jpg 但
  • gnuplot 热图颜色范围

    我的文件中有一些 X Y Z 数据 我正在使用 gnuplot 来显示它 我正在创建一个热图 即 使用颜色呈现 Z 值的 2D 图 现在我正在使用以下脚本 set palette defined 0 blue 1 red plot xyz
  • Oracle:在更新一个字段时复制行

    请注意 我am问我想要回答的问题 我知道这个问题意味着数据库设置得不好 因此 我将否决任何建议更改表格设置方式的答案 我需要复制一堆行 同时更改一个值 name col1 col2 dave a nil sue b nil sam c 5
  • PHP htaccess 将查询字符串从大写重定向到小写

    我有这个小的 php 脚本和 htaccess 中的几行 用于将带有查询字符串的 URL 从大写重定向到小写 但是 仅当 url 文件或 url 的目录部分中有大写字符时 它才会将查询字符串中的大写字符重定向为小写字符 大写目录示例 dom
  • Java Spring JMS:JmsTemplate 到 IBM MQ

    Update 这是我的错误 我忘记了 ssl 调试正在运行 它现在非常快并且像魔术一样工作 我有一个使用 Spring JMS 连接到 IBM MQ 的 Spring Boot 应用程序 我意识到与根本不使用 Spring 相比 jmsTe
  • sys.stdin.readline() 读取时没有提示,返回“两者之间没有任何内容”

    我有一个执行以下操作 除其他外 的函数 userinput stdin readline betAmount int userinput 应该从 stdin 获取输入整数作为字符串并将其转换为整数 然而 当我调用该函数时 它返回一个换行符