繁体   English   中英

在python中读取多个输入

[英]Reading multiple inputs in python

如何在python中取3个以空格隔开的输入,等效于scanf("%d%d%d",&a,&b,&n); 在C中

a, b, n = map(int, input('enter three values: ').split())

enter three values: 3 5 6

>>> a
3
>>> b
5
>>> n
6

此解决方案适用于raw_input 。在Python 2.x中,用raw_input替换input

使用raw_input()从键盘获取值。

  1. 要求用户通过raw_input()从键盘输入值
  2. 拆分用户按空格输入值。
  3. 使用类型转换将字符串转换为整数。

演示:

>>> a = raw_input("Enter three number separated by space:")
Enter three number separated by space:1 3 2
>>> print a
1 3 2
>>> print type(a)
<type 'str'>
>>> a1 = a.split()
>>> a1
['1', '3', '2']
>>> int(a1[0])
1
>>> 

异常处理:

在类型转换期间处理异常的最佳实践,因为用户也可能输入alpha值。

演示:

>>> try:
...    a = int(raw_input("Enter digit:"))
... except ValueError:
...    print "Enter only digit."
...    a = 0
... 
Enter digit:e
Enter only digit.

注意:对于Python 3.x使用input() ,对于Python 2.x raw_input()

文档中所述,您可以使用正则表达式来解析字符串,如scanf

input_string = raw_input()
import re
m = re.search("([-+]?\d+) ([-+]?\d+) ([-+]?\d+)", input_string)
if m is None:
   raise ValueError("input not valid %s" % input_string)
input_numbers = map(int, input_string_splitted)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM