mixiの課題丸投げをひたすら解く、Pythonで(2)
30分プログラム、その396。mixiの(mixi)C/C++の課題丸投げコミュニティにある問題をひたすら解いてみる。ただし、Pythonで。
割と無茶な丸投げがおおい。「論理式をパースして実行するプログラムを書いてください」とか「形態素解析をしてください」とかできるわけがないだろうが。
ファイルからのデータ読み込み
http://mixi.jp/view_bbs.pl?id=36012333&comm_id=602606
姓,名,身長\n ・・・以下、同様に数人分というフォーマットのファイルからデータを読み込み(ただし姓、名はローマ字であるとする)、それぞれ
char FamilyName[50]; char FirstName[50]; int height;に格納。たとえば
asou,tarou,170
だったら、「asou」をFamilyNameに「tarou」をFirstNameに「170」はheightに…としたいのですが、","までだけを読み込む方法が分かりません
言語はCです。よろしくお願いします
import csv class Person: def __init__(self,family,first,height): self.family = family self.first = first self.height = int(height) def __repr__(self): return '<Person family="%s" first="%s" height=%d>' % (self.family,self.first,self.height) people = [] for (family,first,height) in csv.reader(file("sample.csv")): people.append(Person(family,first,height)) print people
身長データの平均値、最大値、最小値
http://mixi.jp/view_bbs.pl?id=35449139&comm_id=602606
キーボードから身長データ20個入力し、平均値、最大値、最小値を求め、その値を出力せよ
- 関数のみで作成せよ。プログラム名をprog1.cとする。
- 演算部を算術型関数heikin、saidai、saishoの3つに分割し、作成せよ。 プログラム名はprog2.cとする。
- 手続き型関数shoriの1つで、平均値、最大値、最小値の演算を一括して
処理できるように作成せよ。プログラム名はprog3.cとする。
わかる方いましたらよろしくお願いします。
def average(xs): return float(sum(xs)) / len(xs) data = map(lambda _: input(),range(0,20)) print "average: %g" % average(data) print "max: %g" % max(data) print "min: %g" % min(data)
関数型言語/Functional Styleに関しての質問です。
http://mixi.jp/view_bbs.pl?id=34895062&comm_id=602606
関数型言語/Functional Styleに関しての質問です。
命令型プログラミング/Imperative programmingと比べらられているのを本などでをよく読むのですがなかなか関数型言語の本質的な意味が理解できません。
仮に下記に書きました簡単なCのファンクションは打込んだ一値のintegerの数を数えるというもので、おそらく命令型になると思うのですが、これを関数型言語のファンクションに直すとするとどういった形になるでしょうか。
関数言語でpseudecodeを書いていただけると助かります。よろしくお願いします。int numdigits(int x){ int t = x, n = 1; while(t >=10){ n++; t = t / 10; } return n; }
def numdigits(x): t = x n = 1 while(t >=10): n += 1 t = t / 10 return n def unfold(f,n): m = f(n) if m == None: return [] else: (a,b) = m return [a] + unfold(f,b) def numdigits_func(n): return len(unfold(lambda x: (x % 10, x / 10) if x > 0 else None, n)) print numdigits_func(2008)
ファイル入力→そのままコンソール出力
http://mixi.jp/view_bbs.pl?page=1&id=34328978&comm_id=602606
aaa.txtファイルを読み込み、ファイルの内容をコンソールにそのまま出力せよ!
という問題なのですが、以下のようにやっても出力されません。実行ファイルと同じディレクトリにaaa.txtも置いてあります。
理由が検討もつかずまいっております。
もし、分かる方いらっしゃいましたらご教授願います。
print file('aaa.txt').read()