stdin为什么不可迭代?

本文介绍了一种统计不同料理所需材料数量的方法。通过读取输入并使用集合来去除重复项,最终输出所需的材料种类总数。提供了两种实现方式:一种利用Python标准库进行迭代更新,另一种采用循环读取输入直到结束。
题目描述
牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
输入描述:
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。
输出描述:
输出一行一个数字表示完成所有料理需要多少种不同的材料。
示例1
输入


BUTTER FLOUR
HONEY FLOUR EGG
输出


4

看到讨论区有大佬是这样做的,但在pycham里编译却通不过,提示TypeError: 'DebugConsoleStdIn' object is not iterable

我就郁闷了,为什么其他人都可以这么做,我就不行呢?最后我只能换一个写法

链接:https://www.nowcoder.com/questionTerminal/ca5c9ba9ebac4fd5ae9ba46114b0f476
来源:牛客网

import sys
lines=set({})
for temp in sys.stdin:
    lines.update(i for i in temp.split())
print(len(lines))

换一个写法,用while

import  sys
need = []

while True:
    line = sys.stdin.readline()
    if not line:
        break
    needline = line.split()
    need.extend(needline)
lastLine = set(need)
print (len(lastLine))

### VSCode连接服务器失败的原因及解决方案 #### 可能原因分析 1. **SSH服务未启动** 如果目标服务器上的SSH服务未正常运行,则可能导致无法建立连接。这通常表现为`Permission denied, please try again`错误消息[^3]。 2. **网络配置问题** 当本地机器与远程服务器之间的网络不通畅时,可能会导致连接超时或中断。例如,防火墙阻止了特定端口的访问或者DNS解析出现问题[^2]。 3. **插件设置不当** 使用VS Code中的Remote-SSH插件时,如果插件的相关参数没有正确配置(比如监听套接字选项),也可能引发连接失败的情况[^4]。 4. **版本兼容性问题** 更新软件后可能出现不兼容现象,如更新后的VS Code可能不再支持旧版协议,从而造成短暂性的连接异常[^1]。 5. **身份验证失败** 错误的身份凭证会阻碍登录过程,“permission denied”的提示往往暗示着密钥文件损坏或是密码输入有误等问题存在。 #### 解决方案详解 针对上述提到的各种可能性,以下是具体的处理办法: 1. **确认并启用SSH服务** - 登录到目标Linux系统下执行如下命令来安装和激活SSH服务: ```bash sudo apt-get update sudo apt-get install openssh-server ``` - 验证SSHD进程状态以及必要时重启该服务: ```bash sudo ps -e | grep ssh sudo service ssh restart ``` 2. **调整Windows环境下的OpenSSH客户端/服务器设定** - 对于基于Windows系统的开发人员来说,需确保本机已正确安装并启用了Microsoft Store里的官方OpenSSH工具集。 3. **优化VS Code内部配置项** - 开启Command Palette(`Ctrl+Shift+P`)搜索“Remote-SSH: Settings”,找到名为`Remote.SSH: Remote Server Listen On Socket`这一字段将其设为True值以便改善某些特殊场景下的链接稳定性。 4. **应对升级带来的影响** - 若发现最近刚完成过程序迭代却遭遇功能性障碍的话,建议先退出应用程序再彻底重开机一次看能否恢复正常运作状况;另外考虑回滚至先前稳定使用的发行版本作为临时折衷手段直至新漏洞修复为止。 5. **仔细核验认证资料准确性** - 检查私钥路径是否填写无误、公钥是否已被加入授权列表当中(.ssh/authorized_keys),同时注意区分大小写字母以防细微差异引起不必要的麻烦。 ```python import paramiko def test_ssh_connection(host, port=22, username='root', key_filename=None): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: client.connect(hostname=host, port=port, username=username, key_filename=key_filename) stdin, stdout, stderr = client.exec_command('whoami') output = stdout.read().decode('utf-8').strip() error_output = stderr.read().decode('utf-8').strip() if output == 'root': print(f'Successfully connected as {output}') elif error_output != '': raise Exception(error_output) else: raise Exception('Connection failed with unknown reason.') except Exception as e: print(e) test_ssh_connection('your_server_ip', key_filename='/path/to/private/key') ``` 此脚本可用于初步测试通过Python库Paramiko实现自动化检测是否存在基本层面的技术壁垒前兆迹象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值