比如你在键盘输入的时候,input().split()
split()不给参数就是默认以空格进行分割
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
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使好的程序更容易写。