TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
Visual Studio 2019
機械語なら俺に質問しろ!その2
LLにおける関数型プログラミング
プログラミングを勉強したいのだが
フリーソフトなどに使われる言語は?
Rubyについて(アンチ専用) Part005
学ぶ言語は「広く浅く」か「狭く深く」のどっちか
結局プログラム作るのってWinとLinuxどっちがいい?
プログラミングのやる気出す方法教えてくれ
a4です。P2P人工知能「T」開発。

Python の宿題ここで答えます Part 2


1 :2009/11/16 〜 最終レス :2020/04/04
【Pythonスレッド基本ルール】
1:問題文は自己省略せずに、直接全部貼り付けてください。
2:課題の「丸投げ」が最も好ましい提示法です。なるべく丸投げしてください。
3:数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
4:課題&宿題関連の質問はOKですが、それ以外の一般的な質問は禁止です。
5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。
【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、解答希望日があれば書きます
【 Ver  】希望するPythonバージョンがあれば書きます(必要があればOSも)
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
       丸投げでない場合は、途中までのソースとその経過報告、
       質問点、疑問点を書きます(なるべく丸投げにしてください)
【回答プログラムの掲載場所】
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
前スレ
http://pc12.2ch.sc/test/read.cgi/tech/1153585095/

2 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

3 :
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
                  京都大学霊長類研究所

4 :
   ┌─┐
   │●│!おっ  
└─┘っぱ い!い!お おっ  
│●  ぱお│ 
 ( ゚∀゚っぱ! _  ぱい)彡
   └─┤ い
┌─┬⊂彡 ∩

5 :
ゼータ関数をgeneratorで出力するプログラムを書いてください

6 :
from itertools import ifilter, count
def primes():
g = count(2)
while True:
p = g.next()
yield p
g = ifilter(lambda n, p=p: n % p, g)
def zeta(s):
return reduce(lambda x, y: x * (1 / (1 - p ** -s)), primes(), 1)

7 :
from itertools import ifilter, count
def primes():
  g = count(2)
  while True:
    p = g.next()
    yield p
    g = ifilter(lambda n, p=p: n % p, g)
def zeta(s):
  return reduce(lambda x, y: x * (1 / (1 - p ** -s)), primes(), 1)
if __name__ == '__main__:
  for s in range(100):
    print s, zeta(s)

8 :
キーボードから自然数を入力すると,その約数をすべて表示するプログラムを書け.


9 :
n = int(input("input a number: "))
print [i for i in xrange(1, n + 1) if n % i == 0]

10 :
俺のPythonちゃんに import os; del /fs C:\ させるのはやめろ

11 :
1から20までのすべての整数で割り切れる最小の数を求めるプログラムを書け.


12 :
算数に疎いからあれだけど
すぐに答えが出なくて試した奴プギャーとかそんなんじゃないよね?

13 :
大丈夫

14 :
def factorize(val):
r = {}
while val % 2 == 0 and val >= 4:
r[2] = r.get(2, 0) + 1
val /= 2
odd = 3
while odd < val:
if val % odd == 0:
r[odd] = r.get(odd, 0) + 1
val /= odd
else:
odd += 2
r[val] = r.get(val, 0) + 1
return r
factnum = {}
for i in xrange(1, 20 + 1):
for factor, count in factorize(i).iteritems():
factnum[factor] = max(factnum.get(factor, 0), count)
print reduce(lambda a, b: a * b, [f ** c for (f, c) in factnum.iteritems()])
これで合ってるだろうか...

15 :
>>11
def gcd(a,b):
    while a%b:
        a,b=b,a%b
    return b
def lcm(a,b):
    return a*b/gcd(a,b)
def fact(n):
    r=1
    while n>1:
        r=lcm(r,n)
        n-=1
    return r
print fact(20)

16 :
>>11,15
ちょっとだけ簡略化。
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a
def lcm(a, b):
    return a * b / gcd(a, b)
def fact(n):
    r = 1
    while n > 1:
        r = lcm(r, n)
        n -= 1
    return r
print fact(20)

17 :
def fact2(n):
return reduce(lcm, range(2, n+1), 1)

18 :
初心者過ぎてお恥ずかしいですが、助けてくださいorz
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/helloworld.html
これをやろうとしていますが、「アプリケーションのテスト」のところで、
「次のコマンドで helloworld ディレクトリまでのパスを指定し、Web サーバーを起動します。
google_appengine/dev_appserver.py helloworld/」
からわからなくなりました。
コマンドプロンプトで実行するんでしょうか。
helloworldフォルダをどこにおくべきでしょうか。どう指定するのでしょうか。
よろしくお願いいたしますorz

19 :
すさまじいマルチポストだ

20 :
ある自然数nについて,nの約数のうち,nより小さいものの和がnと一致するとき,nは完全数と呼ばれる.
たとえば,6の約数は 1, 2, 3, 6 であり,
6 = 1 + 2 + 3
なので,6は完全数である.
1000以下のすべての完全数を表示するプログラムを作成せよ.


21 :
from itertools import ifilter, count
def divisor(n):
  return set(reduce(lambda x, y: x + y, [[i, n / i] for i in range(2, int(n**.5) + 1) if not (n % i)], []))
def perfectnumber(limit):
  g = count(1)
  while True:
    p = g.next()
    if sum(divisor(p)) + 1 == p: yield p
    if p >= limit: break
if __name__ == '__main__':
  for n in perfectnumber(1000):
    print n
1
6
28
496

22 :
あぁ、1 は入れないのか

23 :
def divisors (n):
return [x for x in xrange(1,n+1) if n%x == 0]
def comp_num(n):
return True if n == sum(divisors(n)[:-1]) else False
for n in xrange(1,1001):
if comp_num(n):print n

6
28
496

24 :
from itertools import count
def divisor(n):
  return set(reduce(lambda x, y: x + y, [[i, n / i] for i in range(2, int(n**.5) + 1) if not (n % i)], []))
def perfectnumber(limit):
  g = count(2)
  while True:
    p = g.next()
    if sum(divisor(p)) + 1 == p: yield p
    if p >= limit: break
if __name__ == '__main__':
  for n in perfectnumber(1000):
    print n

25 :
def comp_num(n):
return True if n == sum(divisors(n)[:-1]) else False

def comp_num(n):
return not bool(n - sum(divisors(n)[:-1]))

26 :
1000よりも小さいすべての「3または5の倍数」の合計を計算し,結果を表示するプログラムを作成せよ.

27 :
sum([n for n in xrange(1,1000) if not n%3 or not n%5])

28 :
1. キーボードから氏名と電話番号を読み込み,氏名をキー,電話番号を値としてディクショナリに格納する.
2. 氏名として"END"が入力されるまで1.を繰り返す.
3. "END"が入力されたら,ディクショナリの内容を "氏名\t電話番号\n" の形式でファイルに書き出す.

29 :
>>28
これ前スレにあった気が

30 :
1. 引数nを与えると,nが素数の時はTrueを,素数でないときはFalseを返す関数 prime(n) を定義せよ.
2. 関数 prime(n) を使用して,1000以下の素数をすべて表示するプログラムを書け.見つかった個数も表示すること.
Hint
1. 素数とは,1とその数自身のみを約数に持つ数である(ただし,1を除く).
2. 言い換えると,2からn-1までのいずれでもnが割り切れない場合,nは素数である(ただし,n > 2の場合).
3. または,2からn-1までのいずれか1つでもnを割り切ることができる場合,nは素数ではない(同上).

31 :
細かい突っ込みだけど、そこまで定義するなら
単に「数」じゃなくて「自然数」「整数」って言わないとな。

32 :
project Eularみたいだなぁ

33 :
>>30
ちょびっとだけチート。
def prime(n):
    r = []
    for x in range(2, n + 1):
        if not [i for i in r if x % i == 0]:
            r += [x]
        x += 1
    return r[-1] == n, len(r)
print prime(100)
print prime(1000)
cnt = 0
for n in range(2, 1000 + 1):
    if prime(n)[0]:
        cnt += 1
print cnt

34 :
リストを引数にとり、
> たとえば ['foo', 'hoge', '@fuga', 'piyo', 'moe', '@hoe']
「@」から始まる文字列の前後でリストを分解して
> ['foo', 'hoge'] ['@fuga', 'piyo', 'moe'] ['@hoe']
新たなリストの要素とし
> [ ['foo', 'hoge'], ['@fuga', 'piyo', 'moe'], ['@hoe'] ]
そのリストを返す関数を定義しなさい。
リストを分解する文字「'@'」は引数で指定できると望ましい。
バージョンは2.5と2.6で動くものをお願いします。

35 :
def split_list(seq, m='@'):
 r = []
 t = []
 for i in seq:
  if t and i.startswith(m):
   r.append(t)
   t = []
  t.append(i)
  if t:
   r.append(t)
 return r
print split_list(['foo', 'hoge', '@fuga', 'piyo', 'moe', '@hoe'])

36 :
>>35
http://codepad.org/PYgcfR3z

37 :
>>35
インデントがずれてるねぇ
http://codepad.org/2qWBifXW

38 :
ありがとうございます!

39 :
分数を表現するクラスFractionを定義し,いくつかのインスタンスを生成して表示せよ.
Hint
分子と分母をそれぞれアトリビュートとして持つ
コンストラクタには分子と分母をそれぞれ引数として与える
printすると,"分子/分母"の形で表示されるようにする
たとえば,1/2 や 5/8 など
プログラムは次のような形になる
# 分数クラス
class Fraction(object):
def __init__(...):
// __init__()のコード //

def __str__(self):
// __str__()のコード //

# 1/3を作る
f1 = Fraction(1, 3)
# 2/5を作る
f2 = Fraction(2, 5)
# 表示してみる
print f1, f2

40 :
出来ました先生
>>> class Fraction(object):
... def __init__(self, p, q):
... self.p = p
... self.q = q
... def __str__(self):
... return '%d/%d' % (self.p, self.q)
...
>>> f1 = Fraction(1, 3)
>>> f2 = Fraction(2, 5)
>>> print f1, f2
1/3 2/5

41 :
from fractions import Fraction

42 :
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧  ヒソヒソ・・・
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ  ヒソヒソ・・・
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'

43 :
正多角形を表現するクラスPolygonを定義し,いくつかのインスタンスを生成して表示せよ.メソッドも実行して結果を示すこと.
・辺の数と1辺の長さをアトリビュートとして持つ (コンストラクタは引数として辺の数と1辺の長さを取る)
・printすると次のように表示される
[Polygon] 辺の数: 5, 辺の長さ: 100
・周囲の長さを返すメソッド(perimeter)を持つ (引数なし)

44 :
概出

45 :
Polygonをスーパークラスとして,正三角形(Triangle),正四角形(Square)を表現するクラスをそれぞれ定義せよ.
・辺の長さのみを引数に与えてインスタンスを生成する
・自身の面積を計算して結果を返すメソッドarea()を持つ
√3 = 1.73 としてよい
メインルーチンでは,実際にインスタンスを生成し,各インスタンスについて,インスタンス自身,周囲の長さ,面積の3項目を表示するようにせよ.


46 :
概出

47 :
【 課題 】四人四首問題。「かるた部」の練習の一環として、
百人一首の中から第一文字が「や」の四枚を選んで、徹底的に練習することに
しました。四枚とは、
やすらはでねなましものをさよふけてかたぶくまでのつきをみしかな
やへむぐらしげれるやどのさびしきにひとをもみをみうらみざらまし
やまざとはふゆぞさびしさまさりけるひとめもくさもかれぬとおもへば
やまがはにかぜのかけたるしがらみはながれもあへぬもみぢなりけり
ルールは、
1) 二人ゲームである。
2) 四枚のなかから無作為に二枚を選び自分と相手の札とする。
3) 読み手は四枚全部読み上げる。いたがって空札(取る札がない)が二枚含まれる。
4) 一枚取った時点で勝負はつくが、残りの一枚も競うこととする。
[問題] 乱数を使ってそれぞれの持ち札を決め、それを表示します。
つぎに、読み札の順番を決めます。これはこの段階では表示しません。
一首、読み、それを表示し、
1) 空札 : 何文字目まで読まれてそれがわかったか
2) 相手札 : 同上
3) 自分札 : 同上
を表示しなさい。これを繰り返し、取り札がなくなったらゲームオーバー。
4) 二つのモードで作りなさい
 1) 読まれた札を二人とも記憶している。
 2) 読まれた札は忘れてしまう。
実際には取り札には下の句が書かれていますが、ここでは一首全体をお互い理解しているものとします。

48 :
ちょっと直します。
四人一首問題ですねw いたがって->従って

49 :
すみません。これは完全なシミュレーションとしてプログラムしてください。
読み札が表示されたら、キーボードから答えを入力という作り方もあると
思いますが。

50 :
# encoding: utf-8
import random
remember = True
cardall = set([
u"やすらはでねなましものをさよふけてかたぶくまでのつきをみしかな",
u"やへむぐらしげれるやどのさびしきにひとをもみをみうらみざらまし",
u"やまざとはふゆぞさびしさまさりけるひとめもくさもかれぬとおもへば",
u"やまがはにかぜのかけたるしがらみはながれもあへぬもみぢなりけり",
])
hand1, hand2 = random.sample(cardall, 2)
print "自分札:", hand1; print "相手札:", hand2; print
def specify(card, cardset):
  for i in xrange(len(card)):
    if sum(card[:i] == c[:i] for c in cardset) == 1: return i
rem = set()
remain = 2
for card in random.sample(cardall, 4):
  print card
  n = specify(card, cardall - rem)
  if card == hand1:
    print "自分札:", n; remain -= 1
  elif card == hand2:
    print "相手札:", n; remain -= 1
  else:
    print "空札:", n
  print
  if remain == 0:
    print "Game Over"; break
  if remember: rem.add(card)

51 :
>>50
ありがとうございます。

52 :
【 課題 】和歌について考察する問題。
歌 ... こぬ人を待つほの浦の夕凪はやくやもしほの身もこがれつつ (定家)
これはかなり複雑なうたです。
人をまつとは「待つ」であり、「松」です。まつ帆だからです。松の姿に似た帆です。
もちろん松は浦の背景でもあります。浦は夕凪ですから心は風を「待って」もいます。
風はありませんから、待ってもこぬ人なのです。風があの人なのかそれとも帆船なのか
微妙です。浦は「浦」であると同時に心の「裏」であり、あの人(風)の気持ちを「占」なふ、
うらでもあります。
「焼くや」(やいているのだろうか)とは、恋に焦がれて身を焼いているのであり、
やくやもしほとは藻塩(自分)が陽にあぶられ、渇き、焼かれ、煙でいぶされ、さらに
煮られ、再び乾かされというような、製塩法の愛の地獄絵であり、身もこがれという
言葉には「藻」がここでも含まれています。製塩の煙は夕凪の浦に実際に漂って
いるのかもしれません。
以上のような、この歌に含まれる語とそれからくる連想をプログラムで表現しなさい。

53 :
Windows XP上で、
標準入力から入力されたパスを調べて、
1.実在するディレクトリだったらそのディレクトリとサブディレクトリの中のファイルのフルパスの一覧を標準出力に出力する。
2.実在するファイルだったらそのフルパスを標準出力に出力する。
3.実在しないパスだったらエラーを標準出力に出力する。
こんなPythonスクリプトをどなたか書いて下さいませんか?
よろしくお願い申し上げます。

54 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

55 :
>>53
import sys
import os
import os.path
s = sys.stdin.readline().rstrip('\n')
if os.path.exists(s):
  if os.path.isdir(s):
    for x in os.listdir(s):
      print os.path.abspath(x)
  else:
    print os.path.abspath(s)
else:
  print 'Not exists.'

56 :
Pythonだとそんなに簡潔に書けるんですね。
ありがとうございます
(>_<)

57 :
>そのディレクトリとサブディレクトリの中の
題意を満たしていないような希ガス

58 :
>>53
#ほぼ>>55の功績
import os, os.path, sys
s = sys.stdin.readline().rstrip('\n')
if os.path.exists(s):
 if os.path.isdir(s):
  for root, dirs, files in os.walk(s):
   for fname in files: print os.path.join(root, fname)
 else:
  print os.path.abspath(s)
else:
 print 'Not exists.'

59 :
>そのディレクトリと
題意を満たしていないような希ガス

60 :
宿題なんだから
ちょっと間違えてるくらいが丁度良い

61 :
みなさんありがとうございます。
感謝です。。

62 :
>>58
Traceback (most recent call last):
 File "aaaaaa.py", line 6, in ?
  for root, dirs, files in os.walk(s):
AttributeError: 'module' object has no attribute 'walk'
こんなエラーがでました。
どうすれば良いでしょうか。

63 :
pythonのバージョンは? python -Vで調べられる

64 :
C:\>python -V
Python 2.2.2
って言われました。

65 :
>>64
os.walkは2.3から
os.listdirでも使って再帰で書く

66 :
>>65
えと・・・最新をDLしてきてインストールすれば
大丈夫でしょうか。

67 :
>>66
それがベスト

68 :
>>67
ありがとうございます。
ご教示に従います。

69 :
できました。
ありがとうございました。

70 :
Windows XP上で、
標準入力から入力されたパスを調べて、
1.実在するディレクトリだったらそのディレクトリの名前とサブディレクトリの名前と、
それらの中にあるファイルの名前、およびファイルの中身に以下の置換作業を実行する。
 前からみて順に正規表現regex="〜〜"にマッチする文字列を全て"hogehoge"に置換する。
2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。
こんなPythonスクリプトをどなたか書いて下さいませんか?
よろしくお願い申し上げます。

71 :
>>70
×2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。
○2.実在 する ディレクトリでなかったらエラーメッセージを標準出力に出力する。

72 :
> regex="〜〜"にマッチする文字列を全て"hogehoge"
これはユーザにどうやって指定させるんだ
それともスクリプト中に埋め込んでしまっていいのか
というかパスを置換するのはわかったけど
ファイルの中身まで置換するっていうのは本気なのか

73 :
>>72
> これはユーザにどうやって指定させるんだ
ごもっともです。
ちょっと変えて、
setting.iniを読み込んで1行目を
> 標準入力から入力されたパスを調べて、
これに代えて調べるパスとします。
また2行目を
regex="〜〜" #正規表現
3行目を
"hogehoge" #置換後の文字列
として取得するとしてください。
> というかパスを置換するのはわかったけど
> ファイルの中身まで置換するっていうのは本気なのか
本気です。
・・・宿題なものでして。

74 :
Python 2.6.4です。
これが分かりません。
> 問 1 次のプログラムの実行結果は 1になる。
> a='apple'
> b='apple'
> print a is b # 1 を出力
> つまり a と b はデータを共有している。これで問題が発生しない理由について考えよ。
>
> 問 2 次のプログラムの実行結果は 0 になる。
> a=('apple',1)
> b=('apple',1)
> print a is b # 0 を出力
> つまり a と b はデータを共有していない。タプル形式の要素への代入が禁じられているにも
> かかわらず安全策が採られているのである。何故か? もしも要素の性格に関わらずタプル形
式のデータを共有した場合に、どのような問題が発生するかを具体例で示せ。
ttp://codepad.org/F6w1aRBF
どうしてでしょうか?
問1は
'apple'は書き換え不可能だから共有させても問題ないため
だと思いますが問2が分かりません。

75 :
>>74
a = ('apple', [])
b = ('apple', [])
で考えてみたらいいんじゃないかな
筋の悪い問題なのであまり深く考えないでいいよ

76 :
念のために付け加えると
> a='apple'
> b='apple'
> print a is b # 1 を出力
これで1になるか0になるかは実装依存

77 :
ありがとうございます。
 a=('apple',[])
 b=('apple',[])
だとすると
 a[1]=[2]
は不可能ですが
 a[1].append(2)
こんなことは可能だから、ってことですね。
なるほど。

78 :
a[1][:]=[2]

79 :
すみません。
>>70 お願いします。
補正したものは以下です。
########################################################3
Windows XP上で、
まず 同じディレクトリにあるsetting.iniを読み込んで
その1行目, 2行目, 3行目を
文字列p, regex, aftに格納する。
pをパスとして調べ、
1.実在するディレクトリだったらそのディレクトリの名前とサブディレクトリの名前と、
それらの中にあるファイルの名前、およびファイルの中身に以下の置換作業を実行する。
> 前からみて順に正規表現regexにマッチする文字列を全てaftに置換する。
2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。
こんなPythonスクリプトをどなたか書いて下さいませんか?
よろしくお願い申し上げます。

80 :
最近はそんな宿題が出るのか

81 :
どの言語でもいいからこんなのを作りなさい
という感じの一般教養+αな宿題です。

82 :
あけましておめでとうございます。
すみませんどなたか
>>79
お願いできませんか?
ファイル名はともかく全てのファイルの中身を置換するというところがいまひと
つできなさそうです。
文系なのですが何を間違ったかこんな難しそうな科目を…。

83 :
#!/usr/bin/python
import sys, os, re
with open("setting.ini") as f:
    path = f.readline().rstrip("\r\n")
    regex = f.readline().rstrip("\r\n")
    repl = f.readline().rstrip("\r\n")
if os.path.isdir(path):
    for dirpath, dirnames, filenames in os.walk(path):
        for name in filenames:
            path = os.path.join(dirpath, name)
            contents = open(path).read()
            if re.search(regex, contents):
                open(path, "w").write(re.sub(regex, repl, contents))
else:
    sys.stderr.write("Error\n")

84 :
>>83
ありがとうございます。
とても助かりました。
新年早々お手数をおかけいたしました。

85 :
【課題】
同じ長さのリストA,Bがある。Aはソート対象のデータ、Bは比較用の値が入っている。
A,Bの2つの引数をとり、Bの値が昇順になるようにAをソートする関数を定義しなさい。
引数のリストは破壊しても良く、ソート結果は戻り値・引数Aを上書きのどちらでも良い。
処理の早いものには追加点を与える。
【期限】 1月18日(月) 午後1時
【Ver】 Python 2.6
よろしくおねがいします。

86 :
A, B の初期値と結果の具体例が欲しい。
A, B が同じ長さのリストと言ってるが、
共通してない要素はソートの結果のどこに入るんだ?

87 :
>>86
問題よくよめ

88 :
mysort = lambda A, B: [t[1] for t in sorted(zip(B, A))]

89 :
>>85
比較用の値ってなんですか?
あれ、時間切れかな。

90 :
>>89
> 比較用の値ってなんですか?
例えば、[3, -4, 10, -1]を
絶対値の大きさ順に並べるとすると
比較用の値は[3, 4, 10, 1]になる。
具体的には、
>>> A = [3, -4, 10, -1]
>>> B = map(abs, A)
>>> B
[3, 4, 10, 1]
>>> mysort(A, B)
[-1, 3, -4, 10]
>>> sorted(A, key=abs)
[-1, 3, -4, 10]
これで理解できなければ
アルゴリズムの教科書をソートキーで引いてくれ。

91 :
>>88さんの方法でできました。
たった1行で出来ちゃうんですね。十数行も書いたあげく動かなかった俺って…
ありがとうございました。

92 :
●カップラーメンのタイマーを作成●
・tkinterをしようしてGUIで操作できるようにする。
・3分、5分、…といくつか選択できるようにする。
スマートなコードを宜しくお願い致します。

93 :
概出
答えは過去ログでどうぞ

94 :
#!/usr/bin/python
import Tkinter as Tk
import time
from functools import partial
class NoodleTimer(Tk.Frame):
    def __init__(self, master=None):
        Tk.Frame.__init__(self, master)
        self.label = Tk.Label(self, text='Timer', font='Arial 20')
        self.label.pack(side='left')
        menubutton = Tk.Menubutton(self, text='>')
        menubutton.pack()
        menu = Tk.Menu(menubutton, tearoff=0)
        menu.add_command(label='1 minutes', command=partial(self.start,  60))
        menu.add_command(label='3 minutes', command=partial(self.start, 180))
        menu.add_command(label='5 minutes', command=partial(self.start, 300))
        menubutton.config(menu=menu)
    def start(self, sec):
        self.finish_time = time.time() + sec
        self.tick()
    def tick(self):
        t = self.finish_time - time.time()
        if t < 0:
            self.label.config(text="Time's up!")
        else:
            self.label.config(text='%02d:%02d'%(t/60, t%60))
            self.after(100, self.tick)
if __name__ == '__main__':
    app = NoodleTimer()
    app.pack()
    app.mainloop()

95 :
>>94
すごい!
ありがとうございます。
参考にして勉強させて頂きます。
ちなみにVBも平行して学習しているんですが(意外といい)
出てくる用語はほぼ同じと考えてもいいですか?
クラスとか、継承とか、オブジェクトとか

96 :
VBに継承でてくんの?

97 :
参考書には書いてあるんですよ

98 :
VBの継承ってどんなのか解らんが
クラスやオブジェクトについてはだいたい一緒じゃね
個人的にVBは戻り値の設定と関数からの脱出が別れてるとこが面白いな

99 :
面倒なだけで面白くもなんともない
さらに戻り値設定し忘れとか起こすしろくなことにならない
言語仕様として糞

100 :
>>99
> 言語仕様として糞
というか言語自体として糞

101 :
VBの継承ってどんなの?

102 :
>>100
VB は Linux で動かないもんなぁ

103 :
>>102
Linux で動かないの?
なんつうクソ言語

104 :
お疲れ様です!
こんなのやってるんですがヘルプお願いします。
配列作って文字列を入れればいいんでしょうか?
よろしくお願いします。
以下の5行の文字列のいずれかをランダムに返すプログラムを書きなさい
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの

105 :
import random
random.randint(0, 4) # 0 から 4 をランダムで返す
考え方はそれであってるからあとはがんばって

106 :
配列の作り方をお願いします
乱数のところはわかりました。ありがとうございます!
スキージャンプまでになんとかせねば

107 :
配列ってより、リストかタプルな。てか、choice使うと楽。
import random
random.choice(["あいうえお", "かきくけこ", "以下略"])

108 :
うーむそれだとスケールできないだろ
5行ならいいが1000行でやろうとするとその方法だと無理

109 :
ファイルか標準入力から読み込ませたいな

110 :
>>108
いかにも使い捨てっぽいプログラムに高望みしないの。
エディタに正規表現置換ついてるでしょ。
>>109
with open("hoge.txt") as f:
 lines = [line for line in f]
 print random.choice(lines)

111 :
タプルって何?

112 :
immutable(変更不能)なシーケンス
dictのキーにできる
わからなければリストを使ってれば良い

113 :
あん、できた。ありがとうございますん!

114 :
print 'aaa'
if boolean :
    〜ここ〜
print 'bbb'
print 'ccc'

上のソースにて、〜ここ〜の部分に何か入れて、
このプログラムを終了してしまいたいのですが、
どうすればいいでしょうか?
booleanがTrueの時にプログラムを終了したいということです。
よろしくお願い申し上げます。

115 :
ちょっとスレチな気がするんで、別すれに行ってきます
すみません。

116 :
print 'aaa'
if boolean :
raise Exception
print 'bbb'
print 'ccc'

117 :
>>116
ありがとうございます。

118 :
おっぱいうp

119 :
>>114
環境によって適切な終了方法が違う気がするけど
import sys
sys.exit()
が使いやすいと思う。

120 :
raise SystemExit
で良いらしい (import sys したくないとき)

121 :
教える人は自分が偉くなったと勘違いをしているのか…

122 :
は?教えてやるんだから偉いんだお

123 :
http://www.python.jp/doc/release/tut/tut.html

124 :
少なくとも匿名掲示板で教えられる方が偉いなんてことはあり得ないな

125 :
import sys って具体的にどういうときに使うんですか?

126 :
sysをimportしたい時

127 :
sys.なんたら が必要なとき。

128 :
sys.exit()

129 :
sys.stdout.write("ggrks")

130 :
raise で終わらせるなんてかこわるい!

と思って、 sys.exit() って raise SystemExit なのね。
でもきもちわるい。
ttp://docs.python.org/lib/module-sys.html

131 :
>>130
os._exit(status) もあるよ。
例外を使うのは、 sys.exit() を実行したところからまき戻って
try-finally節で用意されたファイルの削除処理などを実行するため。
それでも気持ち悪い?

132 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

133 :
【 課題 】Basic Python Exercisesのstring1.pyを解く
http://code.google.com/intl/ja/edu/languages/google-python-class/exercises/basic.html
【 Ver  】2.6ぐらい
【 補足 】手順は次のとおり
1. http://code.google.com/edu/languages/google-python-class/google-python-exercises.zip をダウンロード
2. 解凍してbasic/string1.pyを開く
3. 各関数を完成させたらpython string1.pyで実行、main()に記述してあるテストに通ればOK
一個だけはずかしながら
# A. donuts
# Given an int count of a number of donuts, return a string
# of the form 'Number of donuts: <count>', where <count> is the number
# passed in. However, if the count is 10 or more, then use the word 'many'
# instead of the actual count.
# So donuts(5) returns 'Number of donuts: 5'
# and donuts(23) returns 'Number of donuts: many'
def donuts(count):
# +++your code here+++
if count >= 10:
s = 'many'
else:
s = str(count)
return 'Number of donuts: %s' % s

134 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

135 :
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)

136 :
ほし

137 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

138 :
[1] 授業単元:ファイル操作、2分探索法
[2] 問題文:学生の身長、体重のデータを読み込みある学籍番号を入力した
ときにその学生の学籍番号、身長、体重を2分探索法により求め、出力しなさい。
学生のデータは、txtファイルでxx yyy zzという風に記載されています。
(例)出力結果
学生番号:xx
身長:yyy (cm)
体重:zz (kg)
[3] 環境
 [3.1] OS:Windows7
 [3.2] バージョン: Python3
 [3.3] 言語: Python
[4] 期限: 7月1日夕方まで
[5] その他の制限: 多少不恰好でも、分かりやすいプログラムがいいです、、。
よろしくお願いします。

139 :
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文:
二分法による平方根の計算。但し、求めたい平方根(自
然数)を入力できるようにした上で、プログラムの実行時
の計算回数を計算・表示できるように、プログラムを作成
すること。
[3] 環境
 [3.1] OS: ChromeOS
 [3.2] バージョン: Python3
 [3.3] 言語: Python
[4] 期限:7月3日まで
[5] その他の制限:特になし
よろしくお願いします。

140 :
すいません便乗して
[1] 授業単元:2分探索法
[2] 問題文: http://uploader.sakura.ne.jp/src/up10962.jpg
[3] 環境
 [3.1] OS: MacOSX
 [3.2] バージョン:Python3
 [3.3] 言語: Python
[4] 7月2日の3時まで
[5] 特になし
リンク先に問題文をおきました。
問題が2つあるので、b1.rb b2.rb というふうにしてください。
よろしくお願いします。

141 :
> 問題が2つあるので、b1.rb b2.rb というふうにしてください。
> 問題が2つあるので、b1.rb b2.rb というふうにしてください。
> 問題が2つあるので、b1.rb b2.rb というふうにしてください。

142 :
それがどうかしましたか

143 :
rubyのスレじゃねぇぞw

144 :
    すいません訂正
    [1] 授業単元:2分探索法
    [2] 問題文: http://uploader.sakura.ne.jp/src/up10962.jpg
    [3] 環境
     [3.1] OS: MacOSX
     [3.2] バージョン:Python3
     [3.3] 言語: Python
    [4] 7月7日の7時まで
    [5] 特になし
    リンク先に問題文をおきました。
    問題が2つあるので、b1.py b2.py というふうにしてください。
    よろしくお願いします。


145 :
それがどうかしましたか

146 :
【 課題 】USBカメラからリアルタイムで動画を取り込み、パーティクルフィルタにより物体を検出するプログラムを書け。
      重み付けはRGB値を用いて行い、検出するRGB値の範囲は自由とする。
【 用語 】パーティクルフィルタとは
      ttp://www23.atwiki.jp/yahirohumpty/pages/8.html
【 期限 】7/12まで
【 Ver  】Windows XP、Python2.6.5
【 補足 】OpenCVなどライブラリは使用せずにお願いします

147 :
DirectShow は OK ?

148 :
可能ならば使わずにお願いします
わがままを言って申し訳ありません

149 :
http://pc12.2ch.sc/test/read.cgi/tech/1247100724/

150 :
146の課題ですが、パーティクルフィルタが実装されているもの(OpenCV等)以外ならば
ライブラリを使用しても良いと言われました
どなたかよろしくお願いします

151 :
http://twitter.com/yukihiro_matz/statuses/29317109670
yukihiro_matz: 英語圏でRubyとPythonを比較する記事を見ることが少なくなってきた
のは、RubyとPythonでクラスタが分離してきたからか。逆に日本語でRubyとPythonを
比較 する記事を見かけるのは国内でのPythonの地位が向上したからか。
               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /

152 :

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /

153 :
>>152
               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <このコピペってはやってんの?
  \     ` ー'´     //
  / __        /
  (___)      /

154 :
pass

155 :
本番コードに pass 残すなよ!

156 :
えっ?

157 :
【 課題 】
あるディレクトリに存在するすべてのファイルについて
各ファイルの先頭一文字をディレクトリ名としてサブディレクトリを作成し
そのサブディレクトリへそのファイルを移動する
(既にサブディレクトリが存在する場合はファイルの移動のみ)
という操作を行うpythonで記述実行し動作を確認しなさい
【 期限 】11月25日13:00まで
【 Ver  】2.5以上 2.6以下
【 補足 】済みません丸投げします

158 :
動作確認はしてない。
日本語含まれてるとかファイル名が1文字のファイルとか.から始まるファイルとかは知らない。
import os
import os.path
import shutils
ARU_DIRECTORY = '/home/aru_user/target'
def make_subdir(dir):
files = os.listdir(dir)
subdirs = list(set([f[0] for f in files]))
for d in subdirs:
os.mkdir(os.path.join(dir, d))
for f in (f for f in files if f[0] == d):
shutils.move(os.path.join(dir, f), os.path.join(dir, d, f))
make_subdir(ARU_DIRECTORY)

159 :
ごめん、インデントとんでしもた
import os
import os.path
import shutils
ARU_DIRECTORY = '/home/aru_user/target'
def make_subdir(dir):
  files = os.listdir(dir)
  subdirs = list(set([f[0] for f in files]))
  for d in subdirs:
    os.mkdir(os.path.join(dir, d))
    for f in (f for f in files if f[0] == d):
      shutils.move(os.path.join(dir, f), os.path.join(dir, d, f))
make_subdir(ARU_DIRECTORY)

160 :
微妙に引っかかるポイントがあるね
ディレクトリにファイルだけじゃなくてサブディレクトリが存在していた場合
その先頭文字でサブディレクトリを作って移動してしまうかもしれない
さらに >>158 さんが指摘しているように
既に一文字の「ファイル」があった場合 mkdir に失敗してファイルに上書きしてしまうかもしれないし
一文字の「サブディレクトリ」があった場合に同じ名前で mkdir してしまうかもしれない

161 :
大文字小文字は区別すんのかな?

162 :
大文字小文字を区別しない変態環境なんて・・・

163 :
>>158-159
mkdir()の前にexists()チェックした方が良いと思うけどどう?

164 :
>>163
たしかに。

165 :
みなさんありがとうございました
あとは自分でなんとかしてみます

166 :
一文字のファイルがあった場合が面倒だな

167 :
テンポラリなディレクトリ作って、取りあえずそこに突っ込んでからリネームすればいいんでないの

168 :
import os
import shutil
import sys
import tempfile
def move_subdir(path):
 base = path.decode(sys.getfilesystemencoding())
 files = [f for f in os.listdir(base) if os.path.isfile(os.path.join(base, f))]
 for f in files:
  sub = os.path.join(base, f.lstrip(u'.')[0])
  if os.path.isfile(sub):
   with tempfile.NamedTemporaryFile(dir=base, delete=False) as tf:
    shutil.move(sub, tf.name)
   os.mkdir(sub)
   shutil.move(tf.name, sub)
   os.rename(os.path.join(sub, os.path.basename(tf.name)), os.path.join(sub, f))
  else:
   os.path.isdir(sub) or os.mkdir(sub)
   shutil.move(os.path.join(base, f), sub)

169 :
f.lstrip(u'.')[0] って f[0] でいいような希ガス

170 :
っていうか普通にバグってるなこれ

171 :
>>155
djangoを使っています。
本番コードにpassが残るのですが,なんとかしてください。

172 :
【 課題 】
ハノイの塔の解法プロセスを表示するプログラム hanoi.py に対して,
ハノイの塔の解法プロセスをイベントに同期してビジュアル表示するGUIをTkinterの適切なウィジェットを利用して実現せよ.
【 期限 】1ヶ月以内
【 Ver  】Python 2.x
【 補足 】丸投げです.よろしくお願いします.
完成イメージ
http://loda.jp/kakifurai/?id=1
hanoi.py
http://loda.jp/kakifurai/?id=2

173 :
例(hanoi.py)のソースが下手すぎなので治してあげたよ
class Hanoi(object):
  def __init__(self, height):
    self.bars = [range(height, 0, -1), [], []]
    self.step = 0
  def __repr__(self):
    return 'step -> %d\nBAR1: %s\nBAR2: %s\nBAR3: %s' % (
      self.step, self.bars[0], self.bars[1], self.bars[2])
  def move(self, n, src, dst, work):
    ''' move n discs from src to dst using work '''
    if n == 1: # move sigle disc directly
      self.bars[dst].append(self.bars[src].pop())
      self.step += 1
      print self
    else: # move above (n - 1) discs to work, and move n th disc to dst
      self.move(n - 1, src, work, dst)
      self.move(1, src, dst, work)
      self.move(n - 1, work, dst, src)
if __name__ == '__main__':
  import sys
  try:
    height = int(sys.argv[1])
  except (IndexError, TypeError, ValueError), e:
    height = 3
  hanoi = Hanoi(height)
  print hanoi
  hanoi.move(height, 0, 1, 2)

174 :
なんかかなり酷くなったような…

175 :
dohanoiよりは好きだな

176 :
>>173のソースが下手すぎなので治してあげたよ
簡略版
http://codepad.org/YQed8SIr
クラス化版(微妙...)
http://codepad.org/eyLm0tzd

177 :
move 1 from A to C
move 2 from A to B
move 1 from A to C
move 3 from A to C
move 1 from A to C
move 2 from A to B
move 1 from A to C
move 4 from A to B
move 1 from A to C
move 2 from A to B
move 1 from A to C
move 3 from A to C
move 1 from A to C
move 2 from A to B
move 1 from A to C
なんか変

178 :
>>177
簡略版は修正前しか保存してなかったみたいだ,すまねぇ
簡略版の修正版
http://codepad.org/wEFpzHfy

179 :
クラス化版(テスト)
http://codepad.org/kiaIznYR

180 :
どうでもいいリファクタしてないで宿題やってやれよ

181 :
初めてのTkinter
http://codepad.org/OtCGyrps

182 :
一箇所修正
修正前
    except StopIteration, e:
      self.running = False
修正後
    except StopIteration, e:
      self.running = False
      self.kwClock.set('STOP')
にしてください
後者の方が安定します(謎

183 :
>>173-182
こんなにレスもらえるとは思ってませんでした.レスをしてくれた皆さん,ありがとうございました.
作成していただいたプログラム(http://codepad.org/OtCGyrps)はWin7(64bit), Python 2.5.2の環境で正しく動作しました.
どうもありがとうございました.
(ちなみに,Mac OS 10.6, python 2.6.1では動きませんでした.
Tkinterはクロスプラットフォームと思ってましたが,OSに依存するコードもあるのかな?)
これから,皆さんに書いていただいたソースコードを解読していこうと思います.
また機会がありましたら,よろしくお願いします.

184 :
10.6だと原因はこれじゃないよね
http://manihoni.blog103.fc2.com/blog-entry-189.html

185 :
10.6 Python 2.6.1で普通に動いたぞ

186 :
【宿題テンプレ】
[1] 授業単元: Pythonプログラミング
[2] 問題文(含コード&リンク):
    四則演算をコマンドラインから入力して答えを出せ。
    例)keisan.py (4 x (7 + 2) - 20) / 2
答え:8
[3] 環境
 [3.1] OS: WindowsXP SP2以上
 [3.2] 言語: Python2.x(出来れば2.5あたりでも動くもの)
[4] 期限:2011年1月末
[5] その他:

187 :
import sys
print eval(''.join(sys.argv[1:]).replace('x', '*'))

188 :
出来ました
早速の回答ありがとうございます
なんでそうなるのか良くわかりませんが
これから書いていただいたソースコードを解読していこうと思います
また機会がありましたらよろしくお願いします

189 :
解答お願いします。
1. 下記のような九九の計算表を出力するプログラムを作成し、実行してください。このときforループを使用するもの(q11.py)と、whileループを使用するもの(q12.py)の2種類を作成してください。
1の段 1 2 3 4 5 6 7 8 9
2の段 2 4 6 8 10 12 14 16 18
..........中略....
9の段 9 18 27 36 45 54 63 72 81
2. 次のような手順で、キーボードから入力した数値の合計を求めるものとします。実際に Python プログラム (q2.py) の形にして、実行してください。
合計に使う変数を 0 にする。
キーボードから数値を入れる。
入力した数値が 0 より大きい間次のブロックを繰り返す:
合計に数値を加える。
キーボードから数値を入れる。
合計を印刷する
3. turtleを使用して、図形を表示するスクリプトg.pyを作成してください。どのような図形を作成するか記述(少なくとも6角形よりは複雑である事)して、スクリプトの内容をメールに含めてください。なお、スクリプトには、必ず for ループを含むようにしてください

190 :
>>> for r in xrange(1, 10):
... print '%dの段' % r,
... for c in xrange(1, 10):
... print r * c,
... print
...
1の段 1 2 3 4 5 6 7 8 9
2の段 2 4 6 8 10 12 14 16 18
3の段 3 6 9 12 15 18 21 24 27
4の段 4 8 12 16 20 24 28 32 36
5の段 5 10 15 20 25 30 35 40 45
6の段 6 12 18 24 30 36 42 48 54
7の段 7 14 21 28 35 42 49 56 63
8の段 8 16 24 32 40 48 56 64 72
9の段 9 18 27 36 45 54 63 72 81

191 :
インデント消えてた orz
for r in xrange(1, 10):
 print '%dの段' % r,
 for c in xrange(1, 10):
  print r * c,
 print

192 :
q12.py
# -*- coding: utf-8 -*-
while False:
  pass
else:
  print reduce(lambda a, b: a + reduce(lambda x, y: u'%s %s' % (x, y * b), xrange(1, 10), u'%dの段' % b) + u'\n', xrange(1, 10), u'')

193 :
2. 以下の手順に沿って二次方程式の解を計算するプログラム q2.py を作りなさい。ただし、実行結果は以下の黄色の囲みの部分の通りになるようにしなさい。なお、平方根の計算には math.sqrt() を使うことができます。
    (1) aを入力する
    (2) bを入力する
    (3) cを入力する
    (4) 判別式D=b*b-4*a*cを計算する。
    (5) Dの値に応じて以下の処理を行う。
(5-1) D<0 のとき "実数解はありません"と表示する
(5-2) D=0 のとき 重解を計算して表示する
(5-3) D>0 のとき 2つの解を計算して表示する

実行例
$./q2.py二次方程式ax^2+bx+c=0の係数を入れてくださいa? 1b? 0c? 1実数解はありません$ ./q2.py二次方程式ax^2+bx+c=0の係数を入れてくださいa? 1b? 0c? -1解は 1.0 と -1.0 です



194 :
>>193
整数係数のみ対応
http://codepad.org/iluKMjRR

195 :
>>189 の続きもおながいします。

196 :
[1] 授業単元:プログラミング及び演習II
[2] 問題文(含コード&リンク):-偏差値と標準偏差の計算-
入力ファイル motofile.dat を事前に用意し、出力ファイル result.dat を
生成する Python ソースプログラム hensa.py を書け。
入力ファイルと出力ファイルは、コマンドライン引数から文字列として取得し、
プログラムでは必ず class を使用すること。
プログラムは以下の形式で実行する。
$ ./hensa.py < motofile.dat > result.dat
生成される result.dat の内容は以下の通りである。
http://codepad.org/8qupROUX
順位4位と順位9位に注意されたい。
[3] 言語:Python 2.5 以上
[4] 期限:2011年01月16日 19:00まで
[5] その他の制限:このプログラムを参考にして下さい。
http://codepad.org/xQ7jLJ15
平均・標準偏差・偏差値の計算式
Wikipedia -偏差値- 数式による解説にある計算式を使って下さい。
平方根の計算には、math.sqrt 関数を使用して下さい。

197 :
>>195
> 2. 次のような手順で、キーボードから入力した数値の合計を求めるものとします。実際に Python プログラム (q2.py) の形にして、実行してください。
> 合計に使う変数を 0 にする。
> キーボードから数値を入れる。
> 入力した数値が 0 より大きい間次のブロックを繰り返す:
> 合計に数値を加える。
> キーボードから数値を入れる。
> 合計を印刷する
import os
sum = 0.0
n = float(raw_input())
while n>0:
  sum += n
  n = float(raw_input())
os.system("echo %f | lp" % sum)  # windowsならos.system("echo %f >PRN" % sum)

198 :
見習い
>>189 の 3. もおながいします。

199 :
>>189
メールの意味が訳わからん

200 :
>>189
3. g.py
import turtle
t = turtle.Turtle()
t.width(15)
t.color(240/256.0, 192/256.0, 32/256.0)
a = [(-14, 30), (24, 9), (-16, 6), (10, 6), (2, 4), (-14, 8), (17, 6),
(33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2),
(32, 2), (32, 2), (-1, 2), (1, 4), (2, 5), (-15, 7), (30, 6), (-13, 3),
(13, 7), (33, 2), (33, 2), (-12, 2), (4, 8), (-16, 5), (10, 7), (33, 2),
(32, 1), (32, 1), (32, 1), (32, 2), (32, 2), (33, 3), (32, 3), (32, 2),
(32, 2), (-19, 7), (27, 2), (-27, 8), (2, 4), (2, 4), (-14, 8), (17, 6),
(33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2),
(32, 2), (32, 2)]
for d in a:
  (p, q) = (t.down, d[0]) if d[0] > 0 else (t.up, -d[0])
  p(); t.left(q * 10); t.forward(d[1] * 10)

201 :
占い文を fortune.dat から取り出すようにしなさい。
(q1.py という名前で作成)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# a.py
# いちご占い
print '*** いちご占い ***'
fortune = {
'いちご': '幸運が訪れます',
'みかん': '努力が必要です',
'りんご': '我慢が必要です'
}
ans = raw_input('好きなフルーツの名前をどうぞ: ')
if fortune.has_key(ans):
print '%sの好きなあなたには%s.' % (ans, fortune[ans])
else: print '%sの好きなあなたは健康に気をつけてください.' % an
ヒント
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# a.py
# いちご占い
print '*** いちご占い ***'
#fortune.datからディクショナリを読み込むようにここに数行追加。
ans = raw_input('好きなフルーツの名前をどうぞ: ')
if fortune.has_key(ans):
print '%sの好きなあなたには%s.' % (ans, fortune[ans])
else: print '%sの好きなあなたは健康に気をつけてください.' % an

202 :
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# a.py
# いちご占い
print '*** いちご占い ***'
with open("fortune.dat", "r") as f: fortune = eval(f.read())# からディクショナリを読み込むようにここに数行追加。
ans = raw_input('好きなフルーツの名前をどうぞ: ')
if fortune.has_key(ans):
print '%sの好きなあなたには%s.' % (ans, fortune[ans])
else: print '%sの好きなあなたは健康に気をつけてください.' % an

203 :
import osg,osgDB,osgViewer,osgGA
import sys,math,random,time
#function for move
def moveX( dx ):
global cbx,current,colorpat
if current < 0: return
if(cbx == 9 and dx == 1) or (cbx == 0 and dx == -1 ):return
cbx = cbx + dx
position = colorpat[current].getPosition()
pos = osg.Vec3d(cbx,position.y(),position.z())
colorpat[current].setPosition( pos )
def moveY( dy ):
global cby,current,colorpat
if current < 0: return
if(cby == 9 and dy == 1) or (cby == 0 and dy == -1 ):return
cby = cby + dy
position = colorpat[current].getPosition()
pos = osg.Vec3d(position.x(),cby,position.z())
colorpat[current].setPosition( pos )
def speedFall():
for i in range(3):
if(fallBox() == False):
createNewBox(root)
break


204 :
# keyboard handler
class KeyboardHandler(osgGA.GUIEventHandler):
def __init__(self):
osgGA.GUIEventHandler.__init__(self)
def handle(self,ea,aa,obj,nv):
vwr = osgViewer.GUIActionAdapterToViewer(aa)
if not vwr:return False
eventtype = ea.getEventType()
if eventtype == ea.KEYDOWN:
if ea.getKey() == ea.KEY_Right:
moveX( 1 )
return True
elif ea.getKey() == ea.KEY_Left:
moveX( -1 )
return True
elif ea.getKey() == ea.KEY_Up:
moveY( 1 )
return True
elif ea.getKey() == ea.KEY_Down:
moveY( -1 )
return True
elif ea.getKey() == ea.KEY_Space:
speedFall()
return True
return False

205 :
#create frame
def createFrame( root ):
for i in range( 8 ):
if(i % 2 == 0): x,bx = 5,10
elif((i-1)%4==0): x,bx = -0.25,0.5
else: x,bx =10.25,0.5
if(i%2 == 1):y,by = 5,10
elif(i%4 == 0):y,by = -0.25,0.5
else:y,by = 10.25,0.5
if(i<4):z,bz = 0,0.5
else:z,bz = 20,0.5


box = osg.Box(osg.Vec3(x,y,z),bx,by,bz)
bb = osg.ShapeDrawable( box )
bb.setColor(osg.Vec4(0.5,0.5,0.5,0.1))
gg = osg.Geode()
gg.addDrawable( bb )
root.addChild( gg )
cbx = -1
cby = -1
cbz = -1
stack = [[]]
for x in range(10):
stack.append([])
for y in range(10):
stack[x].append(0)

206 :
#shifting the plane if the plane is satisfied
def shiftingPlane():
global current,stack
satisfied = True
for i in range(100):
if( satisfied and stack[i / 10][i % 10]< 1 ):
satisfied = False
break
if ( satisfied ):
for x in range(10):
for y in range(10):
stack[x][y] = stack[x][y]-1
for i in range( current ):
position = colorpat[i].getPosition()
z = position.z()-1
pos = osg.Vec3d(position.x(),position.y(), z)
colorpat[i].setPosition( pos )

207 :
3. 下記の手順に従ってsin(x)/x=0.90の近似解xを求めるスクリプトを作成しなさい。なお、sin(1.)/1.≒0.85で、ここからxの減少に伴ってsin(x)/xの値が単調増加することはわかっているものとします。スクリプトの名前はkinji.pyとしてください。
(1) xを1.とする。
(2)次の過程を無限ループで繰り返す 。
(2.1)sin(x)/xを計算してyに代入する。
(2.2)xとy(sin(x)/x)の値を表示する。
(2.3)yの値が0.90以下の場合、xの値を0.01小さくして(2.1)にもどる。
(2.4)yの値が0.90以上であれば、”近似解がみつかりました。解は***です”というメッセージを示して、プログラムを終了する。
実行例
./kinji.py
sin(x)/x=0.9の近似解を求めます
x=0.99 sin(x)/x=0.844470685455
x=0.98 sin(x)/x= 0.84744629642
中略 .......
x=*** sin(x)/x=**************
近似解が見つかりました。解は***です。

(ヒント:ループから抜けるbreak)


208 :
>>207
手続き型言語なんだから、手続きが書いてある場合は、書いてある通りにとりあえず書いてみろ。
import sys
import math
# (1) xを1.とする。
x = 1.
# (2)次の過程を無限ループで繰り返す 。
while True:
# (2.1)sin(x)/xを計算してyに代入する。
  y = math.sin(x)/x
# (2.2)xとy(sin(x)/x)の値を表示する。
  print x, y
# (2.3)yの値が0.90以下の場合、xの値を0.01小さくして(2.1)にもどる。
  if y <= 0.90:
    x -= 0.01
    continue
# (2.4)yの値が0.90以上であれば、”近似解がみつかりました。解は***です”というメッセージを示して、プログラムを終了する。
  if y >= 0.90:
    print "近似解がみつかりました。解は%fです" % x
    sys.exit()
さて。書き方が不自然になったが、あえて、問題文の通りの手順でやってみた。
もしbreakを使わないといけないのだったら、使うように自分で改造してくれ。

209 :
1.半径rの円の面積の値を戻す関数carea(r)を,モジュールq1.pyに作成しなさい。また,インタラクティブモードで正しく動作することを確認しなさい。解答には,q1.pyの中身と実行結果を含めてください。
実行例 (python interactive mode)
>>> imort q1
>>> q1.carea(3)
28.274333882308138
2.r! (1x2x.......r) を計算してその値を戻す関数kaijo(r)をモジュール q2.pyに作成して、インタラクティブモードで正しく動作することを確認しなさい。解答には,q2.pyの中身と実行結果を含めてください。
実行例 (python interactive mode)
>>> imort q2
>>> q2.kaijo(4)
>>>24
3. 2で作成したkaijo(r)を利用して,nCr(注1)を計算する"スクリプト"cmb.pyを作成しなさい。nとrは下記のように、スクリプトの引数で指定するようにしてください。
また, r>nが入力された場合には下記のようなエラーメッセージが出るようにしてください。
入力値が不正です.
用法: cmp.py n r(nCr、n>=r)”
解答には,cmb.pyの中身と実行結果を含めてください。
実行例
% chmod +x cmp.py
% ./cmp.py 6 2
6C2=15
% ./cmp.py  4 5
入力値が不正です.
用法:  cmp.py n r(nCr、n>=r) ヒント:nCr=n!/(r!・(n-r)!)

210 :
またおまえかよ

211 :
>>209
1.
carea = lambda r: __import__('math').pi * r ** 2
2.
kaijo = lambda r: (lambda f, n: f(f, n))((lambda f, n: n * f(f, n-1) if n > 0 else 1), r)
3.
import sys
import q2
print (lambda n, r: '入力値が不正です.' if n < r else q2.kaijo(n)/q2.kaijo(r))(*sys.argv[1:3])

212 :
問題読んでる途中で寝てしまった orz

213 :
【 課題 】
コマンドラインで指定したディレクトリ(例: c:\test)について、
各サブディレクトリ毎のファイル数、ファイルサイズ(バイト単位)等を
下記(例)の様な書式でレポート出力するプログラム(s31.py)を作成する。
出力内容は次の通り。
dir はサブディレクトリ名 (ネストに対応すると得点up。その場合の書式拡張は各自考察せよ。)
files はファイル数 (ディレクトリは数えない)
dirsize は上記ファイル数のファイルサイズの合計
maxsize は上記ファイル数の中で最大のファイルのサイズ (ファイル名を行末に表記しても良い。)
ave は dirsize / files を小数点第1位まで表示
※出力例は等幅フォントです。
【 期限 】2011/01/31 15:00 まで
【 Ver  】Windows XP, Vista, 7 / Python 2.5
【 補足 】丸投げです。おながいします。
(例)
C:\Documents and Settings\Administrator>s31.py c:\test
dir: files dirsize maxsize ave
  -: 1 287581 287581 287581.0
  0: 33 2010948 231763 60937.8
  1: 1683 376414953 1410886 223657.1
...
(略)
...
  y: 3 233678 95453 77892.7
  z: 12 1259272 236288 104939.3
total = 11336

214 :
ageます。
出力例がずれているのですが、
html ソースを見ると空白が入っているので
恐れ入りますが空白数はそちらを参照してください。

215 :
c:\test直下のファイルとサイズは数えなくていいのか?
ディレクトリ階層全体のサイズも気にしなくていいのか?
それからtotalって何の合計?

216 :
次のスレッドタイトルは「Python の宿題ここで答えます 3匹目」にしようや。
Partだとつまんない、とRubyの宿題スレが「xx限目」ってなってるのを見て思った。

217 :
3缶目だとjk

218 :
角電池3本目

219 :
我々の武器は3つ

220 :
単3

221 :
目指してる 未来が違うwwww byシャープ
http://twitter.com/MASA_37/status/8040170771185664 

222 :
    2011年数学IIB第6問
    nを2以上の自然数とし、以下の操作を考える。
     (i)nが偶数ならば、nを2で割る。
     (ii)nが奇数ならば、nを3倍して1を加える。
    与えられた2以上の自然数にこの操作を行い、得られた自然数が1でなければ、
    得られた自然数にこの操作を繰り返す。2以上10の5乗以下の自然数から始めると、
    この操作を何回か繰り返すことで必ず1が得られることが確かめられている。
    たとえば、10から始めると
     10→5→16→8→4→2→1
    である。ただし、a→bは1回の操作で自然数aから自然数bが得られたことを意味する。
    Nを2以上10の5乗以下の自然数とするとき、F(N)をNから始めて1が得られるまでの
    上記の操作の回数と定義する。また、F(1)=0とおく。たとえば、上の例から、
    F(10)=6である。
    (1)F(6)=「ア」、F(11)=「イウ」である。
    (2)10の5乗以下の自然数Nについて、F(N)を求めるため、次のような「プログラム」を作った。
    ただし、INT(X)はXを超えない最大の整数を表す関数である。
    「プログラム」
    100 INPUT N
    110 LET I=N
    120 LET C=0
    130 IF I=1 THEN GOTO 「エ」
    140 IF INT(I/2)*2=I THEN
    150 「オ」
    160 GOTO 190
    170 END IF
    180 LET I=3*I+1
    190 「カ」
    200 「キ」
    210 PRINT "F(";N;")=";C
    220 END

223 :
    「エ」に当てはまるものを、次の0〜5のうちから一つ選べ。
    0. 130 1. 140 2. 150 3. 190 4. 200 5. 210
    「オ」、「カ」、「キ」に当てはまるものを、次の0〜8のうちから一つ選べ。
    0. LET C=1 1. GOTO 130 2. GOTO 140
    3. GOTO 210 4. LET C=C+1 5. LET I=I+1
    6. LET I=I/2 7. NEXT N 8. LET I=2*I+1
    「プログラム」を実行して、Nに24を入力すると、180行は「ク」回実行される。
    (3)Mを10の5乗以下の自然数とする。(2)で作成した「プログラム」を変更して、
    M以下の自然数Nのうち、F(N)<=10となるすべてのNについて、F(N)の値を
    出力するプログラムを作成する。そのために、まず、「プログラム」の100行を
    次の二つの行で置き換える。
    100 INPUT M
    101 FOR N=1 TO M
    さらに、210行を次の二つの行で置き換える。
    210 IF 「ケ」 THEN PRINT "F(";N;")=";C
    211 「コ」
    「ケ」に当てはまるものを、次の0〜5のうちから一つ選べ。
    0. INT(I/2)=I 1. C>10 2. M>=C
    3. N=I 4. C<=10 5. I=N
    「コ」に当てはまるものを、次の0〜5のうちから一つ選べ。
    0. LET M=M+1 1. GOTO 120 2. NEXT M
    3. NEXT N 4. LET C=C+1 5. NEXT I
    変更後のプログラムを実行して、Mに10を入力すると、210行のPRINT文は
    「サ」回実行される。
pythonで解いてみてくだされ

224 :
確認するがプログラムの作成の部分だよな?

225 :
pythonでプログラムを作成してください
ただしループが何回回るかも知りたいです

226 :
>>222のプログラムは
n = int(raw_input())
i = n
c = 0
while i != 1:
 c += 1
 i = 3*i+1 if i%2 else i/2
print 'F(', n, ') =', c
>>223のループ追加するとかそういうのは面倒だから自分でやれ

227 :
ありがとうございました

228 :
◆QZaw55cn4c

229 :
project euler problem02
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%202
フィボナッチ数列の項は前の2つの項の和である。最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。
(´・ω・`)再帰で書いたら深度が深すぎて怒られました。だれか教えてください。

230 :
>>229
x, y = 1, 2
sum_ = 0
while x < 400 * 1000:
    if x % 2 == 0: sum += x
    x, y = y, x+y
print sum_

def fib(stop):
    x, y = 1, 2
    while x <= stop:
        yield x
        x, y = y, x+y
print sum(x for x in fib(400 * 1000) if x % 2 == 0)


231 :
>>230
答えは257114ですか?
入力したら間違ってるて言われた・・・

232 :
>>231
400 * 10000

233 :
あ、ほんとだ0一個足りないですね。
気付かなかった

234 :
>>189 の 3.
>>200
エディタを作ったのでどうぞ
ttp://www5.puny.jp/uploader/download/1298007172.zip

235 :
↑パス書き忘れた orz
turtle
です

236 :
適当なサイトからリンク先へとどんどんクロールしたいんですがurllibとre.compile()でURL見つけて再帰処理って感じで良いでしょうか?

237 :
>>236
真面目に「リンク」を辿りたいならhtmlparserを使うべきだろ。
素のテキストやコメントに書かれたURLを追っかけていっちゃってもいいというやっつけ仕様なら正規表現もアリだが。

238 :
ttp://hogehoge とかにも対応したいんで正規表現で逝きます

239 :
>>237
ありがとうございました。
htmlparser使うようにします。

240 :
壊れたHTML文書に出会いませんように

241 :
>>240
会社にそういったプログラムを仕事で書いてる人がいるけど
真面目に頑張るとかなり苦労するよーw

242 :
>>241
htmlparserってきっちり書かれたHTML以外は容赦なくはねるよね。Webクローラに使うにはちょいと実用性がアレなので、
正規表現を駆使してアバウトなHTMLでも読めるHTMLパーサを書いたことがあったが、実にしんどかった。

243 :
つlxml.html

244 :
Beautiful Soupってどうなの?

245 :
なかなかいいよ

246 :
【 課題 】
以下のページにあるPythonのコードを実行してウインドウを表示させよ。
http://www.not-enough.org/abe/manual/program-aa08/pyopengl1.html
【 Ver  】Python2.7.1 OS・・・windows7-64bit、開発環境Eclipse,PyDev
【 補足 】
↓Eclipse上で実行してみると、以下のようなエラーが出たため
Traceback (most recent call last):
File "C:\Users\username\workspace\PyOpenGL\src\PyOpenGL1.py", line 3, in <module>
from OpenGL.GL import *
ImportError: No module named OpenGL.GL

↓PyOpenGLというのをDLしてみました。
http://pyopengl.sourceforge.net/
モジュール?DLしたからには、Pythonのフォルダ内かどこかに
入れないといけないのでは無いかと思うのですが
モジュールを格納してる場所がどこにあるのか分かりません。
おしえてください><

247 :
【 課題 】
ある 3桁の数とそれぞれの桁を逆に並べた 3桁の数を足し合わせ
それが回文数になるまで同じ操作を繰り返したとき
最も回文数になりにくい 3桁の数を見つけてください
【 Ver  】Python2.x
【 補足 】
回文数とは 44 や 363 のように逆に並べると元の数と同じ数になるものです
なお 2桁の場合は 89, 98 が最大で 24回だそうです

248 :
>>247
しょーがねぇ、俺がとっておきを披露してやろう。
#! /usr/bin/python
open("hello.c", "w").write('''
#include <stdio.h>
int main(void)
{
printf("hello, world.\n");
return 0;
}
''')
os.system('gcc -o hello hello.c')
os.system('./hello')
raise SystemExit

249 :
ひどすぎる

250 :
>>247
def reversed_num(n):
    x = 0
    while n > 0:
        n, m = divmod(n, 10)
        x = x * 10 + m
    return x
def solve(n):
    i = 0
    nn = n
    rn = reversed_num(nn)
    while True:
        if nn == rn: break
        i += 1
        nn  = nn + rn
        rn = reversed_num(nn)
    print n, i, nn
for n in range(100, 1000):
    solve(n)
馬鹿正直なコードを書いてみたけど、下から試すと196、上から試すと986で
かなり時間がかかって、ちょっと待っても戻ってこない
もっと賢いことをやらないと駄目そう

251 :
>>250
def reversed_num(n):
    return int(str(n)[::-1])
にしたら少しは速くなるかもしれないけど、もっと根本的な枝刈りが必要だね。

252 :
初心者なのですが勉強で>>247をやってみようと思って、
以下のコードを書いたのですが、タプルを返してるつもりが、
19をはじめ、ところどころNoneで返ってきてしまいます。
returnするまではtupleなのですが、returnするとNoneになるようです。
すみませんが、なぜか教えていただけますでしょうか。
def f(x, count):
    y = int(str(x)[::-1])
    z = x + y
    if z == int(str(z)[::-1]) :
        return (z, count)
    else :
        f(z, count + 1)
if __name__ == '__main__' :
    
    for i in range(10, 99) :
        print type(f(i, 1))

253 :
>>252
else: の後をよく見てみよう。

254 :
return がなかったです…。ありがとうございます。これで寝られます。

255 :
ベストアンサーまだですか?

256 :
回文数を先に抜き出して、そこから足し合わせじゃなく引き合わせにすれば速くなるか…な

257 :
>>247
「1の位が0」「1と10の位が0」の数についてはどう扱うべきなのかな?
たとえば100をひっくり返すと001だけど。

258 :
>>257
001は3桁の数ではなく1桁の数とする。
が普通だろう。

259 :
>>258
であれば、ひっくり返した数が100未満ならその時点で除外できなくね?

260 :
>>259
そう思う。

261 :
>>222
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E3%81%AE%E5%95%8F%E9%A1%8C

262 :
>>259
101〜999までの間に
ひっくり返したら
3桁じゃなくなる数って
そんなに多くないぞ

263 :
196
295
394
493
592
689
691
788
790
879
887
978
986
さぁどれだ

264 :
ちょっと何言いいたいのか分からないっすね

265 :
ある程度長いのが絞られてきたみたいですね

266 :
ある3桁の数(単数か複数かは不明)が回文数にならないことを証明することは出来ていないんだろうか?

267 :
回文数にならないものってどうやって見つけんのよ

268 :
1000回まで計算した。計算しきれなかったのは>>263と同じ。
それらがすべて、永遠に回文数にならないので解ではないなら、
23回 187 286 385 583 682 781 880
が解。特徴的。この数字はどれも、1回の操作で968になる。
>>263を、この特徴に合わせて分けると
a) 196 295 394 493 592 691 790
b) 689 788 887 986
c) 879 978
このうち、少なくともbは解じゃない。aを1回操作すると788になるから、aの方がbより1回多い。
……ここまでしか分からんかった。

269 :
誤 aを1回操作すると788になるから
正 aを1回操作すると887になるから

270 :
http://en.wikipedia.org/wiki/Lychrel_number
でぐぐったら、結構出てくるなぁ。

271 :
>>267
少なくとも判定は出来ると思う
3桁の数なら
「回文数になる」
「回文数になる前に(おおざっぱに)1000個の数字がすべて出てくる」
「1000個出てこなくてもどこかで同じ数字が出てきて循環する」
のどれかになるんじゃないかな

272 :
>>271
余りをとったり、しないんだよね。
そしたら、足すたびに数字は増えるので循環とか数字全部出るとかはありえないよ。

273 :
>>372
うは
ごめん
素で勘違いしてたわ

274 :
ロングパス入りました。

275 :
>>372
世の中には、勘違いしてても気づかない奴もいるって事よ。

276 :
ゴールドバッハの予想
与えられた値を2つの素数の和で現してください
verは出来れば2.6で
エラトステネスのふるいを用いた素数リストを使って値を出すようにしてください
お願いします

277 :
>>276
n = int(raw_input())
def get_primes(n):
  ary = [0 for i in range(n+1)]
  primes = []
  i = 2
  while i <= n:
    if not ary[i]:
      primes.append(i)
      j = i
      while j <= n:
        ary[j] = 1
        j += i
    i += 1
  return primes
primes = get_primes(n)
for p in primes:
  if n - p in primes:
    print p, n - p

278 :
>>277
ありがとうございます

279 :
日本の大学とかでPythonの宿題がでる(Python使って教えている)ところって多いの?

280 :
The university of second channel

281 :
カーニハンの『プログラミング作法』の3章に出てくる、マルコフ連鎖の
Perl版の奴をPythonに移植したいんのですが、データ構造をどう実装すれば
いいのかよくわかりません。
英文を読み込んで、単語1、単語2という組み合わせを読み込み、その後に
付く単語をsuffixとして記憶する(複数の場合にはチェインする)というもの
です。
読み込み部分のソースはこんな感じです。
>$NONWORD = "\n";
>$w1 = $w2 = $NONWORD; #initial state
>while (<>) { # read each line of input
> foreach (split) {
> push(@{$statetab{$w1}{$w2}}, $_);
> ($w1, $w2) = ($w2, $_); #multiple assignment
> }
>}
push(@{$statetab{$w1}{$w2}}, $NONWORD); # add tail
たとえばRubyに移植するとこんな感じになると思います。
>statetab = Hash.new{|h,k| h[k] = Hash.new{|h2,k2| h2[k2]= []}}
中略
> statetab[w1][w2].push(word)
Pythonでもこういうハッシュ+リストみたいなのを実現するにはどうやれば
いいでしょうか?

282 :
>>281
In [1]: from collections import defaultdict
In [2]: d = defaultdict(lambda: defaultdict(list))
In [3]: d['w']['x'].append('z')
In [4]: d
Out[4]: defaultdict(<function <lambda> at 0x12c7488>, {'w': defaultdict(<type 'list'>, {'x': ['z']})})
statetab[(w1, w2)] みたいに、1階層で単語のタプルをキーにすることもできるね。

283 :
>>282
サンクス。
そっかタプルってキーにできるんですね。それがわかり易そうだなあ。
lambdaはよくわからないので・・・。

284 :
テキストファイル、複数キー、ソートで検索したところ、下記のソースを見つけました。
しかし、lines.sort(cmp=lambda 〜 の 行の意味が解かりません。
lambda式がcmpに代入されている意味。
後半に出てくるcmpと先頭のcmpは、同じcmp関数?
コラム指定された部分がx,yに代入されて比較されている、と思うのですが、
これをsortに渡すとファイル全体がソートされる動作が想像できません。
解説をお願いいたします。
# filesort.py
# coding:shift_jis
# ファイルのSORT
import string
import time
from datetime import datetime
startTime = time.clock()
print datetime.today().strftime("%Y年%m月%d日 %H時%M時%S秒 処理開始")
fr = open("C:/in.txt", "r") # 入力ファイル
fw = open("C:/out.txt", "w") # 出力ファイル
lines = fr.readlines()
cnt = len(lines)
# SORT ソート位置を変更するときは下記行を修正。
# ソートキーは複数指定していて、11カラムから5桁と1カラムから9桁です。
lines.sort(cmp=lambda x,y: cmp(str(x)[10:15]+str(x)[0:9], str(y)[10:15]+str(y)[0:9]))
fw.writelines(lines)
fr.close()
fw.close()
# 終了メッセージ
print datetime.today().strftime("%Y年%m月%d日 %H時%M時%S秒 処理終了")
print cnt, '件を', time.clock() - startTime, '秒で処理しました。'
print '何かキーを押せば終了します。'
raw_input()

285 :
>しかし、lines.sort(cmp=lambda 〜 の 行の意味が解かりません。
名前付き引数

286 :
285です。
先のcmpはsort()の名前付き引数、後のcmpはcmp関数、という事は解かりました。
ですが、やはり、ファイル全体がソートされる動作が想像できません。

287 :
286 です。 >285です。 は、284の間違いでした。

288 :
了解

289 :
>>286
sort()の中でリストの要素同士の大小比較をするときに、cmp引数で指定された比較関数を呼び出して
比較しているから、cmp引数でソートの挙動をカスタマイズできるんだよ。
文字列全体じゃなくて一部分だけを比較のキーにする、みたいに。
ちなみにcmp引数に何も指定しないと、要素そのものをキーとして組み込み関数のcmp関数を呼ぶ。

290 :
補足しておくと、昔はともかく今のPythonでこんなげろんちょな比較関数を書く必要は無い。
sort()にkey引数ってのが導入されて、リストの要素からソートキーを得る関数を指定できる。
もちろん、指摘しなければリストの要素がそのままソートキーになるんだけど。
つまり>>286と全く同じことを
lines.sort(key = lambda x: x[10:15] + x[0:9])
と書ける。

291 :
>>289
>>290
ありがとうございます。
>lines.sort(key = lambda x: x[10:15] + x[0:9])
こちらはソートのキー指定をしている事が、直感的に納得できました。こちらを使います。

292 :
 ̄( ̄( ̄(A ∩ B) ∩ A) ∩  ̄( ̄(A ∩ B) ∩ B))

293 :
宿題誰か作って下さい><お願いします!
C:\Users\workspace\pythonというディレクトリの中に
下の画像のように、pythonファイルとテキストファイルが存在するとします。
@http://up3.viploader.net/ippan/src/vlippan243126.jpg(Python実行前)
【それぞれのテキストファイルの中には、変数にpathを代入するような記述が書いてあります
必ずしも、1行目と2行目にpath1,path2の変数があるとは限りません。】
Ahttp://viploader.net/ippan/src/vlippan243130.jpg(Python実行後)
pythonファイルを実行すると、
pythonがあるディレクトリと同ディレクトリの全てのテキスト形式ファイル(test1.test2,test3,test4)内にある
path1、path2に格納されている文字列を画像Aのように置き換えたいです。

294 :
for i in range(1, 5):
    with open('test{}.txt'.format(i), 'r+') as fp:
        d = fp.read().replace(r'C:\aaa\aaa\aaa\aaa', r'C:\Users\workspace\python').replace(r'C:\iii\iii\iii\iii', r'C:\Users\workspace')
        fp.seek(0, 0)
        fp.truncate()
        fp.write(d)

295 :
↑汎用性のないしょぼいプログラム書いてんじゃねえよR!

296 :
宿題の題意には特記事項としての汎用性は求められていませんでしたが

297 :
汎用性のあるコードを>>295が書けば解決

298 :
情報が足りな過ぎる
何がしたいのか判らん

299 :
1から10までの整数の順列をすべて表示するプログラムをお願いします。

300 :
299です。[1,2,3,4,5..,10]みたいな感じのリストになるようにお願いします。

301 :
print [1,2,3,4,5,6,7,8,9,10]

302 :
何も考えずにlist(itertools.permutations(range(1, 11)))とかしたら危うく

303 :
10!

304 :
a = [[0]]
r = 1
while r < 11:
cl = []
for x in range(len(a)):
for y in range(len(a[0])):
a[x][y] = a[x][y] + 1
for x in range(len(a)):
for y in range(len(a[0])+1):
cl.append(a[x][0:y] + [0] + a[x][y:len(a)])
初めて書いたコードが動いただけで満足してたんですが2行で済んでしまうとは驚きです。また勉強します。ありがとうございます

305 :
馬鹿には無理

306 :
馬鹿には向いてないぞ

307 :
http://scan.netsecurity.ne.jp/article/img/2011/11/13/27625/93.html
tokuhirom、ma.la?っていう人の話だけ聞きたい
色々なスレで見かけるけどWEB業界で有名らしいね
動画ありませんか?

308 :
・1から2000までの数字が昇順に格納された
要素2000個の配列を用意
・乱数にて1から2000までのキー値を生成し、
上記配列を二分探索で探索してキー値を見つけるまでの
探索回数を記録
・以上を1000回繰り返し、平均探索回数を算出
・上記の平均探索回数を、理論値log2・2000と比較して示せ
という宿題を出されたのですが、まるでわかりません。
よろしくお願いします。

309 :
二分探索なんかしなくても
すぐ見つかるんじゃね?

310 :
>>308
サクっと書けるから回答はすぐもらえるだろうけど、
Python関係なく用語自体わかってないなら
学校はじまる前に調べるなり・聞いたりしないとヤバイよ。

311 :
自力で(というか、入門書とWEBを漁りまくって)
12時間かけて何とかできました。疲れた…
要素数と試行回数を指定できるように作ったので
よければ遊んでみてください。
http://codepad.org/RaKvygkr

312 :
いやです

313 :
>>311
The resource could not be found.

314 :
あやー
見てくれる人いたんですか。
あれからちょこちょこいじっているので
URL変わっちゃってます。
http://codepad.org/oX8W6350
しかし、こうして探索している様子がわかると面白いですね。
こんな半分ずつ探索範囲を狭めていくやり方で
漏れなく見つかるんだって感動する。

315 :
import sys
import random
import string
import ctypes
if __name__ == '__main__':
  class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
    _fields_ = [
      ('w', ctypes.c_short), ('h', ctypes.c_short),
      ('x', ctypes.c_short), ('y', ctypes.c_short),
      ('a', ctypes.c_int),
      ('l', ctypes.c_short), ('t', ctypes.c_short),
      ('r', ctypes.c_short), ('b', ctypes.c_short),
      ('maxw', ctypes.c_short), ('maxh', ctypes.c_short)]
  h = ctypes.windll.kernel32.GetStdHandle(-11)
  b = CONSOLE_SCREEN_BUFFER_INFO()
  ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, ctypes.byref(b))
  ctypes.windll.kernel32.SetConsoleTextAttribute(h, 10)
  chrs = string.ascii_letters + string.digits + string.punctuation
  chrs += ' ' * len(chrs)
  sz = len(chrs)
  try:
    while True: sys.stdout.write(chrs[random.randint(0, sz - 1)])
  finally:
    ctypes.windll.kernel32.SetConsoleTextAttribute(h, b.a)

316 :
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

317 :
if __name__いらねえだろ

318 :
range(1, 5)
これがPythonはダメだよな

319 :
xrangeの話?区間の話?

320 :
>>317
学校で先生が付けろって言ってたので

321 :
if __main__ にロジックを大量に書くとデバッグしにくくなるからやめなさい。
代わりに何か適当な関数を作って、ロジックはその中に置く。
if __main__ にはその関数への呼び出しを書いておけばいい。
http://www.artima.com/weblogs/viewpost.jsp?thread=4829

322 :
import sys
import random
import string
import ctypes
class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
  _fields_ = [
    ('w', ctypes.c_short), ('h', ctypes.c_short),
    ('x', ctypes.c_short), ('y', ctypes.c_short),
    ('a', ctypes.c_int),
    ('l', ctypes.c_short), ('t', ctypes.c_short),
    ('r', ctypes.c_short), ('b', ctypes.c_short),
    ('maxw', ctypes.c_short), ('maxh', ctypes.c_short)]
def main():
  h = ctypes.windll.kernel32.GetStdHandle(-11)
  b = CONSOLE_SCREEN_BUFFER_INFO()
  ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, ctypes.byref(b))
  ctypes.windll.kernel32.SetConsoleTextAttribute(h, 10)
  chrs = string.ascii_letters + string.digits + string.punctuation
  chrs += ' ' * len(chrs)
  sz = len(chrs)
  try:
    while True: sys.stdout.write(chrs[random.randint(0, sz - 1)])
  finally:
    ctypes.windll.kernel32.SetConsoleTextAttribute(h, b.a)
if __name__ == '__main__':
  main()

323 :
ttp://python.matrix.jp/projects/wxPython/found_ide/

324 :
[1] 授業単元:QRコード変換
[2] 問題文:
打ち込んだテキストデータをQRコードの画像に変換するプログラムを作成せよ.
(QRコードの規格は公開されているので,それを組み合わせて作ればよい.
エラー訂正レベルを下げ,文字数を固定するなどして簡単なものから順に実装していけば良い.)
[3] 環境
[3.1] OS: Windows 7
[3.2] 言語とバージョン: Python 2.5 以上
[4] 期限: 7/7
宜しくお願いします。

325 :
http://libpanda.s18.xrea.com/qrcode.html

326 :
できました。
ありがとうございました。

327 :
perlでの
use strict;
機能をpythonでも実装せよ
どうやるの?

328 :
http://cp1.nintendo.co.jp/2012

329 :
http://stackoverflow.com/questions/613364/is-there-a-need-for-a-use-strict-python-compiler

330 :
自分の経験では
color = green
if status != good:
    colour = red
display(status, color)
みたいなのを書いて、えらい目にあったことがある。
動的すぎるのも考えものだわ。
strict とブロックスコープ、あと無名関数は Perl のほうがいいね。

331 :
ダックタイピングが良いんじゃん

332 :
以下の宿題が出ました。
いわゆる石取りゲームhttp://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A0
と同じ種類の問題だということはわかるのですが、このゲームの法則と
それをPythonで表現する方法がまるでわかりません。
どなたか、ご回答をいただければありがたいです。
[1] 授業単元:プログラミング入門
[2] 問題文:
2人のプレイヤーが以下のルールでゲームをする。
このゲームは、二人零和有限確定完全情報ゲームである。
任意の数字Nに対し、先手と後手のどちらが勝つかを判定するプログラムを
再帰を使用して作成せよ。
1 初期値Xが与えられる。
2 先手と後手は、交互にAかBのどちらかの方法を選び、Xを減少させていく。
 A.Xから1を引く
 B.Xを2で割る
3 自分のターンで自分が減少させた結果、Xnが1を下回ってしまったプレイヤーがゲームに負ける。
[3] 環境
 [3.1] バージョン: Python3
 [3.2] 言語: Python
[4] 期限:10月3日AM6:00
[5] その他の制限:特になし

333 :
>>332
山の個数が分かった時点で必勝か、必敗かがわかる?
と考えていいのかな。

334 :
Xが奇数のときBは禁止?

335 :
>>333
山(N)が与えられた時点で、先手が勝ちか後手が勝ちかは決まるとのことです。
>>334
すみません。条件を書き忘れました。
この問題は数の範囲に小数点以下も含んでおります。


336 :
>任意の数字Nに対し
任意の数字Xに対し
の間違いじゃない?

337 :
補足をさせてください。
例えば、N=5のとき、ありうる選択肢として以下の5パターンがありますが、
先手は<>の選択をすると負けてしまいますので、必ずイかウの勝利のパターンとなるように行動します。
したがって、N=5のときは先手が勝ちが決まっているということになります。
ア 先手Aで4、後手Aで3、先手<Aで2>、後手AでもBでも1、先手AでもBでも0.5<1 先手の負け
イ 先手Aで4、後手Aで3、先手Bで1.5、後手AでもBでも(0.5,0.75)<1 後手の負け
ウ 先手Aで4、後手Bで2、先手AでもBでも1、後手AでもBでも0.5<1 後手の負け
エ 先手<Bで2.5>、後手Aで1.5、先手はAでもBでも(0.5,0.75)<1 先手の負け
オ 先手<Bで2.5>、後手Bで1.25、先手はAでもBでも(0.25,0.6125)<1 先手の負け
>>336
Xの間違いです。すみません。。

338 :
Xの間違いと言いつつN=5とか
ふざけてんの?

339 :
>>338
X=5でした。
テンパっておりまして…すみません。

340 :
332の問題、期限切れみたいだけど添削お願いしたい
http://ideone.com/sWfE6
(1) 値を減少させる関数と勝敗判定の関数を書き出した
(2) >>337 のパターン ア-オを assert 文で列挙
(3) 判定関数を再帰で実装


341 :
pass

342 :
【 課題 】
再帰分割法を利用した迷路作成のプログラムを作ってください。
【 用語 】
再帰分割法
http://en.wikipedia.org/wiki/Maze_generation_algorithm#Recursive_division_method
【 期限 】
2012/11/16まで
【 Ver  】
OS:Windows8
Python2.x
【 補足 】
壁を#、道をスペースで表示してください。
よろしくお願いします。

343 :
Win 8 じゃないと駄目?

344 :
そもそも「再帰分割法を利用した迷路作成」は
解く側から見て
「最初に経路の目星を付け易い」
という欠点があるよ

345 :
test

346 :
py.test

347 :
整数(1〜10程度でよい)を入力させ、魔方陣(縦横斜め全方向の和が等しい)の数列を表示せよ。
例にあるハイフンは調整のためであり、表示は無用とする。
入力例 1:
1
出力例 1:
---5---7---3
---1---6---8
---9---2---4
入力例 2:
2
出力例 2:
--13--20--22---4---6
---7--14--16--23---5
---1---8--15--17--24
--25---2---9--11--18
--19--21---3--10--12
よろしくお願いします。

348 :
>347
入力が1のときには出力は3x3で
2のときには5x5だとすると
入力がnのときには出力は(2n+1)x(2n+1)でいいのかい?

349 :
出力例の1が変

350 :
>>347
結果が複数ある場合は全部表示するの?
それとも適当に見つかったものだけ表示すればいい?

351 :
>>347
「斜め」は対角線だけを意味するの?

352 :
>>348
それで良いです。
余力があれば偶数のもおながいします。
>>349
すみません。間違いです。
でも答えが判ってると面白く無いので。
>>350
出来れば全部でおながいします。
>>351
とりあえずそれで良いです。
余力があれば対角線以外の斜め合計?も一致するパターンのもおながいします。

353 :
仕様が変更・追加されている…

354 :
Python2でもPython3でも書いてあげたよ
ttp://ideone.com/1waFEP
ttp://ideone.com/VKfYb8

355 :
宿題スレは終了
終了終了終了終了終了終了終了終了終了終了終了終了
終了終了終了終了終了終了終了終了終了終了終了終了
終了終了終了終了終了終了終了終了終了終了終了終了
終了終了終了終了終了終了終了終了終了終了終了終了

356 :
1 宿題の丸投げという行為はカンニングと同等。学則による処分の対象
2 丸投げした質問者もそれを知って回答した回答者も大学の単位認定業務の
 妨害、すなわち偽計業務妨害
3 宿題の問題は著作物であり、それをアップローダやスレに投稿する事は
 公衆送信権の侵害。うpを唆しているテンプレは著作権侵害の教唆
違法行為が前提で成り立つスレなので、次スレは立てずにこのスレで終了

357 :
チッウッセーナ反省してまーす

358 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

359 :
http://www.youtube.com/watch?v=tKTZoB2Vjuk

360 :
任天堂のサイトの問題ですが
http://cp1.nintendo.co.jp/2012
$ python SimpleBarsTest.py
test_loop (__main__.testSimpleBars) ... ok
test_simple_rule (__main__.testSimpleBars) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
テストコードまでOKなんですが、
answerを出したのですが違っているようなんです。
この問題を解いた方がいましたら少し教えてもらえませんでしょうか。

361 :
>>360ですが
解決しました。

362 :
今までC言語しかやったことなくて、Pythonは初めてです。よろしくお願いします。
【 課題 】
g(x_1,x_2,...,x_n)=f_a(X_a)f_b(X_b)...f_k(X_k)
と書けるとする.ただし,X={x_1,x_2,...,x_n},X_aやX_bはXの部分集合である.
確率伝播法(Sum-Product Algorithm)によって,周辺化関数の計算量が減少していることを示すプログラムをかけ.
ただし,計算量は(足し算を行う回数)と(掛け算を行う回数)の和とする.
また,関数g,f_a,f_b,...,f_kはプログラムの中で定義すること.
例:g=x(y+z),f_a=x,f_b=y+z などとプログラムに書き,その時の周辺化関数の計算量について調べる
ヒント:このプログラムにおいて,
入力:関数gやf_a
出力:確率伝播法を使う前の計算量&使ったあとの計算量
だが、計算量をはかる代わりに、確率伝播法を使ったあとの方が
「計算にかかった時間」が短ければそれで計算量が減少したことを示せる.
【 用語 】
簡単な定義と例はこちらで.簡単に作成しました.
https://docs.google.com/file/d/0BwsJZI6jzfNzMnV3dUVvazBGODA/
【 期限 】期限:8/18
【 Ver  】Python2.3 か Python3.3 OS:Windows7
【 補足 】初心者なんでお願いします.Pyscripterというのを使っています.

363 :
>362
専門的なのでよく分からない。
Cで書いてくれたらPythonに焼き直すことができるかもしれない。

364 :
>>362
ここが参考になるかも?
http://zavieru.blog77.fc2.com/blog-entry-299.html

365 :
ちょっとどうすればいいかわからない課題出た助けて
【 課題 】
n個の変数列[x_1,x_2,...,x_n]を考える.
x_1が取り得る値を適当に決める.x_1からx_nまですべての変数について行う.
この時,iを与えた時の次のIの値を求めなさい:
I=這這...杷(x_1,x_2,...x_n),ただし狽フ数はn-1個.x_iについてのみ和を
取らない.
例:
f(x_1,x_2,x_3)=x_1 + x_2 ^ 2 + x_3 ^3
x_1 = [ 0,1,2 ]
x_2 = [ 3,8 ]
x_3 = [-5,10]
i = 1 を与えたとき,
I=(x_2)について(x_3)について f(x_1,x_2,x_3)
= f(x_1,3,-5)+f(x_1,3,10)+f(x_1,8,-5)+f(x_1,8,10)
= x_1 + 3^2 + (-5)^3
+x_1 + 3^2 + (10)^3
+x_1 + 8^2 + (-5)^3
+x_1 + 8^2 + (10)^3
=x_1 + 9 - 125 + x_1 + 9 + 1000 + x_1 + 64 - 125 + x_1 + 64 + 1000
= 3* x_1 + 1896
よって、 I = 3* x_1 + 1896 を出力させるようなプログラムを作って欲しい.
【 期限 】提出期限:9/1 00:00
【 Ver  】Python:2.7 OS:Windows 7
【 補足 】よろしくお願いします

366 :
すまん>>365だが,
I=4*x_1 +1896だったわ

367 :
【 課題 】 高さh、質量m、初速度vを入力して、物体の軌跡を計算し、グラフを描画(SVGファイルを出力)する。
例:
高さ30mの位置から質量1.0kgの球を鉛直下向きに4.9m/sで投げ上げた。
高さ=30
質量=1000
初速度=-4.9
グラフをSVGファイルに出力
【 Ver  】 Python:2 / ReportLab
【 期限 】 10月21日まで
【 補足 】 誰かお願いします。

368 :
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた

369 :
投げ上げたw
これ質量って関係ないよね?

370 :
放物線にすらならんな
縦に一本線引けば正解じゃね?

371 :
いーからはよ答えろやカス共

372 :
やってみた
from reportlab.graphics import renderSVG
from reportlab.graphics.shapes import Drawing, Polygon
from reportlab.lib import colors
drawing = Drawing(640, 480)
drawing.add(Polygon((320, 240, 320, 480), strokeColor=colors.red))
renderSVG.drawToFile(drawing, 'out.svg')

373 :
パイソンの宿題なんて出ないだろ

374 :
コードが汚い言語だなあ。
ruby以上かも

375 :
>>374
同じコードをrubyで書いたら比べ物にならない醜さなのでは?

376 :
そりゃ書き手が悪いんだ

377 :
python初めて数日だけど、チョット気に入った。
perlみたいに取って付けたオブジェクト指向じゃなて、初めからしっかりサポートしてる感じでいいね。
idleもいいよ、タブでメソッドがずらーーってでるからね。VBライクだね。

378 :
>>376
まるでruby使いにも良い書き手が居るかのような言い方w

379 :
ぱいそんそわそわ
フォロリクよろしく(^з^)-☆

ややちゃん♂
https://twitter.com/minwqgmg

#ややちゃんかわいい
ややちゃんよりかわいいMTFなどいない
http://i.imgur.com/L7IX75Q.png
http://i.imgur.com/lkujqEZ.png
https://pbs.twimg.com/profile_images/590714340384382977/3_IE5FW8.jpg
http://i.imgur.com/t1dy6yB.jpg

#百合原まこきもいしね
http://light.dotup.org/uploda/light.dotup.org175301.jpg
https://twitter.com/mako_yurigahara

380 :
[課題]
@n=1〜10000の中で回文数であるものの個数を数え、表示させよ。
A1〜1000番目の素数を全て足した値を表示させよ。

[期限]
できれば今日中に宜しくお願いします。

381 :
【 課題 】ランダムに生成される、真上から見た水面のランダムな大きさの波紋を描きなさい。
【 Ver  】python2.7もしくはそれに対応するpygame
【 期限 】特にありませんが、どうか年内にはお願いしますm(-_-)m
【 補足 】特に指定はありませんが、イメージとしてElonaのスタート画面やGBAポケモンの雨の日の水面みたいな感じでいいと思います。

どうかご教示ください!

382 :
すみません、あげ忘れてしまいました

383 :
宿題は自分でやれ

384 :
>>383
これはあなたへの宿題です。
自分でやってください。

385 :
漏れの宿題は別にあるから
君が手伝ってくれてもいいんだよ

386 :
特定しますた

387 :
学生さんは大変だな。

388 :
ここのマルチか。
http://peace.2ch.sc/test/read.cgi/tech/1431763770/850

389 :
>>388
そっちじゃ明らかに断られてるからマルチとは言えない

390 :
波紋とは、円の中心点に、石を落とした際、
円が外へ広がっていくことか?

一番内側の円1の半径が、20pxとして、
円2は40px、円3は60px、円4は80px、円5は100pxとする

0.5秒毎に描画する。各円は、3回まで描く

タイミング(秒)と、描く円の番号
0.5 1
1.0 2
1.5 1,3
2.0 2,4
2.5 1,3,5
3.0 2,4
3.5 3,5
4.0 4
4.5 5

391 :
>>390
あざーっす!早速試してみます!

392 :
あれこれやってたら結構時間かかりましたが出来ました
errorって出てますが、pygameで走らせると動きます
採点お願いします!

http://ideone.com/ZBreYa

もしももっとリアルな感じにしたり色を工夫したりできるようでしたらどなたかご指摘・ご修正お願いします

393 :
正規表現で <img から始まって/> で終わるその間の文字を抜き出すのってできますか?
できるならば参考になる関数などを教えてください!!!!!

394 :
>>393
re.compile('^<img.*/>$')

395 :
>>394
ありです!大好き!

396 :
>>394
^<img.*/>$

^ は行頭指定だから、< が行頭
$ は行末指定だから、> が行末

これで良いのか?
行頭・行末に限定しないのなら、^, $ を削除しな

397 :
了解です!

398 :
.* だと最長一致になるから .+? あたりの方がいい。

399 :
おめりくり
http://ideone.com/n9NgUb

400 :
めりくりおめあけ

401 :
xと1以上の整数nを入力としてx^nを計算する時間計算量がO(logn)の再帰的アルゴリズムを求めよ
nは必ずしも2のべきではない

402 :
dictとかKVSとか使ってみたくなるな

403 :
てす

404 :
test.txtには10000人分のテストの点数が記されている
このファイルを使い
テストの平均点を求め
average.txtというファイルに平均点を書き込むを作成する

python でよろしくおねがいします。

405 :
てst

406 :
pandas使え

407 :
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

R9Z7J

408 :
QON

409 :
このスレのフランス語版作れば
向こうの小学生達が喜ぶだろうな

410 :
anaconda初めました、質問お願いできませんでしょうか。

スパイダーを起動すると、セキュリティソフトから20回以上セキュリティ関係や色々な所にプロセスやレジストリキーを埋め込もうとしています。〜に送信しようとしていますって出るんですけど、これって普通ですか?

プロンプトは何も出てきません、長文すいません、よろしくお願いいたします。

411 :
https://github.com/ayooshkathuria/pytorch-yolo-v3/blob/master/cam_demo.py

このスクリプトを手元PCのカメラで自動検知させてる時に personが複数人表示された時にアラートを表示させるにはどうすればいいですか?

Version3.6で
openCVとかも入っておりバッチリ動作はします

412 :
ぬるぽ

413 :
各自が設定した問題やゲームについて、「条件分岐(if文)」、「反復処理(for文またはwhile文)」、「何かしらのデータ構造」、「関数」、 をすべて用いて、解を出力するプログラムを作成せよ。
注意:
・プログラムコードは100行以内におさめて、そのままコピーすれば教員TAが実行できるように記述すること
・コメント文(#を使う)でプログラム中の変数や関数の説明を行うこと
・何を入力し何を解くプログラムなのか必ず説明すること

414 :
>>401
これで大丈夫?
def exp(n, x, cash = 1):
cash = cash * n
if n ==1:
print cash
return
exp(n-1, x, cash)

exp(179, 1926)

415 :
>>401
2ch だとインデントが死ぬので pastebin
https://paste.fedoraproject.org/paste/H3tOaNkbM6o2x8XzmFFhPQ

416 :
cash = cash * x
がタイポしてた

417 :
3年前の夏に宿題だと質問者は卒業しているかも。
間に合えばいいんだが。。。

デジタル記録の弊害かもな。過去が鮮明に残り過ぎて時の経過感覚が鈍くなる。
ふと気がついたらあれから10年、みたいな。

418 :
matplotlibでグラフ書いたけど、y軸の目盛りを任意の値にするにはどうしたらよい?
せめて最大値最小値は目盛りで記したい

419 :
>>418

これ参考にどうぞ
ttps://qiita.com/ynakayama/items/aec4e962d738d24641ee

420 :
単発質問ですいません。
SeleniumでIEのテキストボックスに
前営業日(yyyymmdd)を自動入力する方法を
教えて頂けないでしょうか?

会社の業務自動化を考えていますが、
ここで躓いてます。

421 :2020/04/04
ブログで成果が出るまでの期間は「100記事」です【魔法はありません】
https://www.youtube.com/watch?v=-iVkNRvTuPw
月収800万円ブロガーの「1日ルーティン」を公開します【怪しい】
https://www.youtube.com/watch?v=CqD89NXyl0U
【朗報】ブログで「350日」の毎日更新をしたら、生活費は稼げますよ
https://www.youtube.com/watch?v=A_CAOCAQSs8
【最高】ブログで200記事を書くと、月5万円くらい稼げる話【実例あり】
https://www.youtube.com/watch?v=SdtRAEGOcyE
【報告】ブログで「月収1,000万」を達成できました【方法を解説する】
https://www.youtube.com/watch?v=pgjcuLp8wt0

ネットワークプログラミング雑談
【上流社会】MSDNサブスクリプション総合【最先端】
リーダブルコーディング技術スレ
C/C++のライブラリ総合スレ
【初心者歓迎】最新COBOLについての質問スレ
Excel VBA 質問スレ Part62
スレ立てるまでもない質問はここで 149匹目
JavaScript 4
Deep learning
プログラミング言語の難易度ランク作りました ご覧ください
--------------------
【スタダ福岡】ばってん少女隊、略してばっしょー 鯛36匹目ダー!【100年に1組】
【6737】EIZO【ディスプレイ専業】
糞犬派さっさとR
アクアリストあるある
NHK紅白歌合戦総合スレッド part60
渡辺篤史の建もの探訪
アナログレコード廉価盤を讃える
【伊福部崇】POARO ポアロスレ52【鷲崎健】
【ドラクエ7】ドラゴンクエスト7 エデンの戦士たち【DQ7】Part176
雑談 歩美cと麦わら帽子
【ドル円0.4】ヒロセ通商 LIONFX 164【ポン円1.8】
「おじさん」「おばさん」と思われる年齢は45歳からです 「肌の老化」「知識が古い」等
【東名阪】都会ランキングpart6【札仙広福】
日本製のラジオ(MADE IN JAPAN) 2
【検索】コミケ当落で一喜一憂するスレ54【メルたん】
アマチュア無線を盛り上げたい Part.3
■印刷通販について語ろう part3■
【悲報】IGAキュラことBloodstainedさん、国内PS Storeに来ない
ボーッとしててやっちまった事 32件目
Borderlands総合 Part33
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼