如果输入包含空格分隔的int行,则 -
1 3
Run Code Online (Sandbox Code Playgroud)
我可以使用该map()函数将其存储在数组中
arr = map(int,sys.stdin.readline().split())
Run Code Online (Sandbox Code Playgroud)
或者甚至在两个单独的变量中
n,m = map(int,sys.stdin.readline().split())
Run Code Online (Sandbox Code Playgroud)
有没有办法使用相同的方法来读取包含混合数据类型的输入行.例如.-
foo 3
Run Code Online (Sandbox Code Playgroud)
where foo是一个字符串,3是一个整数?
如果你总是有一个字符串和非负整数:
import sys
n, m = map(lambda x: (str, int)[x.isdigit()](x) ,sys.stdin.readline().split(None, 1))
print(n,m)
Run Code Online (Sandbox Code Playgroud)
但最安全的方法始终是在转换用户输入时使用 try/ except,即使只期望一种类型。
根据要求,可以检查是否为阴性:
import sys
n, m = map(lambda x: (str, int)[x.isdigit() or x.strip("-").isdigit()](x) ,sys.stdin.readline().split())
print(n, m)
Run Code Online (Sandbox Code Playgroud)
但--10 --10--也可能通过测试但会导致错误,因此仅针对您的具体情况。
| 归档时间: |
|
| 查看次数: |
4229 次 |
| 最近记录: |