2、其次写文穗燃件通过csv.writer。
3、最孙凳后如果要一次写入一行,可以使用writerow。如果要一次写多行,可以使用writerows。
with open('xxxx.csv','w',newlines='') as f:
writer = csv.writer(f) #创建初始化写入对象
writer.writerow(['color','red'唯并桥]) # 一行一行写入 ['color','red']
* 在windows里,指猛csv保存得到的文件是每空一行储存一条数据,使用newlines=''可保证蔽敏存储存的数 据不空行。
with open('xxxx.csv','w') as f:
writer = csv.writer(f)
writer.writerows([('color','red'),('size','big'),('male','female')]) #多行写入
Python中通过csv的writerow输出的内容有多余的空行main(){
int i=1
while(i<=5)
printf("%d\n",SQ(i++))
}
SQ(int y)
{
return((y)*(y))
}
【例9.10】
#define SQ(y) ((y)*(y))
main(){
int i=1
while(i<=5)
printf("%d\n",SQ(i++))
}
在例9.9中函数名为SQ,形参为Y,函数体表达式为((y)*(y))。在例9.10中宏名为SQ,形参也为y,字符串表达式为(y)*(y))。 例9.9的函数调用为SQ(i++),例9.10的宏调用桐侍为SQ(i++),实参也是相同的。从输出结果来看,却大不相同。
分析如下:在例9.9中,函数调用是把实参i值传给形参y后自增1。 然后输出函数值。因而要循环5次。输出1~5的平方值。而在例9.10中宏调用时,只作代换。SQ(i++)被代换为((i++)*(i++))。在第一次循环时,由于i等于1,其计算过程为:表达式中前一个i初值为1,然后i自增1变为2,因此表达式中第2个i初值为2,两相乘的结果也为2,然后i值再高塌自增1,得3。在第二次循环时,i值已有初值为3,因此表达式中戚轮圆前一个i为3,后一个i为4,乘积为12,然后i再自增1变为5。进入第三次循环,由于i 值已为5,所以这将是最后一次循环。计算表达式的值为5*6等于30。i值再自增1变为6,不再满足循环条件,停止循环。
从以上分析可以看出函数调用和宏调用二者在形式上相似,在本质上是完全不同的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)