>>941 grep -c "^#" /etc/termcap
>>952 それを popen2.popen3() または subprocess で書いたら許してやってもいい
954 :
デフォルトの名無しさん :2009/11/14(土) 14:49:50
1000よりも小さいすべての「3または5の倍数」の合計を計算し,結果を表示するプログラムを作成せよ.
>>> sum(e for e in range(1000) if e % 3 == 0 or e % 5 == 0) 233168 ほんとかしら
956 :
デフォルトの名無しさん :2009/11/14(土) 16:28:36
次の手順に従って,入力された値の最大値を求めるプログラムを作成せよ. 1. 空のリストを変数intlistにセットする. 2. キーボードから整数を1つ読み込み, * 整数が負の値だったら,読み込みは終了して3.へ進む. * それ以外だったら,intlistの最後にその数を追加して2.を繰り返す. 3. 最大値を覚える変数maxnumを用意し,初期値として適切な値(各自で考えること)を代入する. 4. リストに入っている整数を順に変数iに代入しながら,リストの値がなくなるまで次の操作を繰り返す. * maxnumとiの値を比較し,iの方が大きければ,maxnumの値をiで置き換える. 5. 最後にmaxnumに入っている値が最大値なので,それを表示する.
957
>>956 #coding: UTF-8
intlist = []
while 0 == 0:
i = raw_input(u"整数を入力してください\n".encode("cp932"))
if not i.isdigit() and (not i[1::].isdigit() or i[0] != "-"):
print u"\n数値ではありませんでした".encode("cp932")
continue
i = int(i)
if i < 0:
if len(intlist) == 0:
continue
break
intlist.extend([i])
maxnum = -1
for i in intlist:
if i > maxnum: maxnum = i
print maxnum
いかにも素人が書いたみたいな雰囲気で完璧だ
"100".isdigit() とか初めて知った try: n = int(raw_input()); except ... とかやるよりいいね
負数が入力できない
962 :
961 :2009/11/14(土) 19:13:46
>isdigit( ) > >文字列中に数字しかない場合には真を返し、その他の場合は偽を返します。 (*´・ω・)
964 :
デフォルトの名無しさん :2009/11/15(日) 11:07:38
1. キーボードから氏名と電話番号を読み込み,氏名をキー,電話番号を値としてディクショナリに格納する. 2. 氏名として"END"が入力されるまで1.を繰り返す. 3. "END"が入力されたら,ディクショナリの内容を "氏名\t電話番号\n" の形式でファイルに書き出す.
とりあえず脳内でほぼ完成した
>>964 #!/usr/bin/python
# -*- coding: utf-8 -*-
import os.path, sys
OUTPUT_FILE_PATH = os.path.expanduser("~/address_book.txt")
address_book = {}
while True:
name = raw_input(u"氏名: ".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
pnum = raw_input(u"電話番号 :".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
if name == u"END": break
address_book[name] = pnum
fp = file(OUTPUT_FILE_PATH, "w+")
for name in address_book:
text = u"%s\t%s\n" % (name, address_book[name])
fp.write(text)
fp.close()
>text = u"%s\t%s\n" % (name, address_book[name]) text = "%s\t%s\n" % (name.encode("utf-8"), address_book[name].encode("utf-8"))
968 :
デフォルトの名無しさん :2009/11/15(日) 11:50:39
>>986 name = raw_input(u"氏名: ".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
pnum = raw_input(u"電話番号 :".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
こんな面倒なことしないとだめなん?
>>968 あんまり環境(OS)に依存しないようにしてみた。
Windows持ってないからテストできないんだけどちゃんと動いた?
970 :
デフォルトの名無しさん :2009/11/15(日) 12:15:04
ファイル出力の円コーディングは指定されていないようですが この場合はどうなるんでしょうか?
971 :
デフォルトの名無しさん :2009/11/15(日) 12:16:07
972 :
デフォルトの名無しさん :2009/11/15(日) 13:33:28
1. コンピュータは乱数を用いて正解となる値を生成する.値は1以上100以下の整数とする. 2. 人間はその数を推測し,キーボードから入力する. 3. 入力された値が正解であれば,「正解です」というメッセージと何回目の入力で正解したかを表示して終了する. 4. 入力された数が正解より大きければ,「大きすぎます」と表示して2.へ戻る 5. 入力された数が正解より小さければ,「小さすぎます」と表示して2.へ戻る
>>972 #coding=utf-8
import random
A=random.randint(1,100)
i=0
while True:
i+=1
a=int(raw_input("数字を入力してください"))
if a==A:
print "%d回目で正解です"%i
break
elif a>A:print "大きすぎます"
else:print "小さすぎます"
import random import itertools ans = random.randint(1, 100) for i in itertools.count(1): try: n = int(raw_input("# ")) except ValueError: print "数字を入力してください" continue if n == ans: print "正解です" print i, "回目" break elif n < ans: print "小さすぎます" else: print "大きすぎます"
975
976
978
979 :
デフォルトの名無しさん :2009/11/16(月) 07:32:34
979
980 :
デフォルトの名無しさん :2009/11/16(月) 09:02:53
980
ゼータ関数をgeneratorで出力するプログラムを書いてください
982 :
デフォルトの名無しさん :2009/11/16(月) 09:10:26
982
983 :
デフォルトの名無しさん :2009/11/16(月) 09:35:18
983
984 :
デフォルトの名無しさん :2009/11/16(月) 09:36:21
984
985 :
デフォルトの名無しさん :2009/11/16(月) 09:37:05
985
986 :
デフォルトの名無しさん :2009/11/16(月) 10:34:44
986
987 :
デフォルトの名無しさん :2009/11/16(月) 10:37:30
987
988 :
デフォルトの名無しさん :2009/11/16(月) 10:57:24
988
989 :
デフォルトの名無しさん :2009/11/16(月) 11:06:08
989
990
992
991
990
998
999
996
997
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。