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個入力し、平均値、最大値、最小値を求め、その値を出力せよ

  1. 関数のみで作成せよ。プログラム名をprog1.cとする。
  2. 演算部を算術型関数heikin、saidai、saishoの3つに分割し、作成せよ。 プログラム名はprog2.cとする。
  3. 手続き型関数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()