(準備中)
例えば、 C 言語の次のようなプログラムと同じようなことをするにはどうしたら良いか。
#include <stdio.h> #include <math.h> int main(void) { int N, i; double dx, x; FILE *f; char line[512]; f=fopen("test.txt", "w"); N=90; dx=4*atan(1.0)/2/N; for (i = 0; i <= N; i++) { x = i * dx; printf("%d %f %f\n", i, sin(x), cos(x)); } fclose(f); f=fopen("test.txt", "r"); while (fgets(line,sizeof(line),f) != NULL) { double s, c; sscanf(line, "%d%lf%lf", &i, &s, &c); printf("%d %f %f\n", i, s, c); } } |
さすがに scanf() 系統の関数は Python には用意されていないようだ。 空白などで区切られているならば、split() を使えばバラせるだろう。
# sincostable.py import math with open('test.txt', mode='w') as f: N=90 dx=math.pi/2/N for i in range(N+1): x=i*dx print('%d %f %f' % (i,math.sin(x),math.cos(x)), file=f) with open('test.txt', mode='r') as f: line=f.readline() while line != '': s=line.split() print('%d %f %f' % (int(s[0]), float(s[1]), float(s[2]))) line=f.readline() |