insanitymax30 卡路里:python下怎么在同一行中输入用空格分开的多项内容?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/25 17:05:13
python下的什么语句相当于C中的:
scanf("%d,%d,%s",&a,&b,&c);

--〉python下的什么语句相当于C中的scanf("%d,%d,%s",&a,&b,&c);?

你给的C代码是读取一行用逗号分开的值。
这代码假设读取的值全都肯定会是对的类型,而且肯定只有三个值,所以我觉得Python里这样写最接近了:

a, b, c = raw_input( ).split( ',' )
a = int( a )
b = int( b )
c = c.strip( )

若读取的值是用空格分开的,则只需把第一行改成:

a, b, c = raw_input( ).split( )

咦?
C比Python省了那么多行?!
等一下。那行C代码之前的变量声明也必须算进去,所以其实差别是不多的。还有。。。

。。。刚刚所提到的那种假设通常都是危险的,因为读取的值可能类型或数量不对,所以塞进变量之前应该先检查。
但是scanf( )并没有提供任何事先检查的余地,所以细心的C编程员在非要读取一行多项的输入时,都会先把整行输入读为字符串,然后切割,逐项检查,没问题才做类型转换然后塞进变量里。
整个过程需要的C代码很多,但若是用Python,可以省掉很多功夫。

Python使好的程序更容易写。