くだすれPython(超初心者用) その26at TECH
くだすれPython(超初心者用) その26 - 暇つぶし2ch585:デフォルトの名無しさん
15/07/29 18:48:23.87 C31cMPRb.net
def test():
・・
continue
while True:
test()
このような感じで、関数内からwhile Trueに対してcontinueする事はできますか?

586:デフォルトの名無しさん
15/07/29 19:54:32.01 4360Pw2a.net
???
再帰ってこと?
多分、したい事の解決方法が間違ってる。
したい事は、なぁに?

587:デフォルトの名無しさん
15/07/29 20:04:23.92 C31cMPRb.net
イカのような処理で例えばtest1()内のチェックでひっかかった場合、
test2()に移行せずwhile True:のはじめからやり直したいんです
while True:
__test()
__test1()
__test2()
__test3()
SyntaxError: 'continue' not properly in ~~~ となります

588:デフォルトの名無しさん
15/07/29 20:05:23.12 RH5K4X2w.net
こんなんやろ?
class Continue(Exception):
def __init__(self, *values):
self.values = values
def test(i):
if i % 2:
raise Continue(i)
return i * 2
def main():
for i in range(10):
try:
v = test(i)
print('{} => {}'.format(i, v))
except Continue as c:
print('continue: {}'.format(c.values))

589:デフォルトの名無しさん
15/07/29 20:12:57.40 3xGNJCY0.net
>>569
成功したらTrueなりFalseを返して判定
import time
def a():
print(1)
return False
def b():
print(2)
return True
def c():
print(3)
def d():
print(4)
while True:
time.sleep(1)
if a():
continue
if b():
continue
if c():
continue
if d():
continue

590:デフォルトの名無しさん
15/07/29 20:18:01.61 C31cMPRb.net
>>571
やりたいことこれです、ありがとうございます。

591:デフォルトの名無しさん
15/07/29 20:23:40.48 c3o2n8R7.net
pythonってちょっと齧った程度なんですが、c++,JSの経験しかない私には文法が独特な感じがしました。
関数には{}使わないんですよね。

592:デフォルトの名無しさん
15/07/29 22:10:41.56 cW7qEMuX.net
{}使わなくていいのがいいところ

593:デフォルトの名無しさん
15/07/29 22:16:03.57 4YomwHKV.net
インデントで構造を表現してる
この構文は賛否あると思うけど、将来{}が導入される機会は無いとわざわざ実装で表明している

594:デフォルトの名無しさん
15/07/30 15:26:59.50 qxlVlu0T.net
後数ヶ月で3.5がリリースされるのに3.4の機能すらよくわかってない
PHPでいうURLリンク(docs.php.net)みたいな変更履歴ってどこで見れますか?

595:デフォルトの名無しさん
15/07/30 16:04:02.56 Z0rCKaW0.net
日本語はないよ

596:デフォルトの名無しさん
15/07/30 19:31:47.32 cCFC5U/T.net
URLリンク(docs.python.jp)
から各バージョンへのリンクがあるよ

597:デフォルトの名無しさん
15/07/31 00:49:42.33 u6UInjxJ.net
Pythonのインデントは百害あって一利なし

598:デフォルトの名無しさん
15/07/31 07:55:33.34 zxXRNzjs.net
と思う吉宗であった

599:デフォルトの名無しさん
15/07/31 08:33:05.30 709JoO30.net
暴れん坊Python

600:デフォルトの名無しさん
15/07/31 22:48:07.91 wbH0A+JA.net
外部プログラムを監視させたいのだけれど、皆目わかりません。
ヒントだけでも教えていただけませんか?

601:デフォルトの名無しさん
15/07/31 23:20:03.61 hKMcxT/u.net
もう少し具体的に監視って何だ

602:デフォルトの名無しさん
15/08/01 00:28:01.71 ghun761E.net
whileループで一定時間経過後にループを抜けるようにしたいんですが
なにかいい書き方はありますか?

603:デフォルトの名無しさん
15/08/01 00:29:18.18 VbjGDeVR.net
>>584
何でwhile何だよ?

604:デフォルトの名無しさん
15/08/01 00:34:41.58 ghun761E.net
>>585
あ、確かに
forでsleepかませばいいだけですかね?
なんか変にこだわってましたすみません

605:デフォルトの名無しさん
15/08/01 02:03:25.71 VbjGDeVR.net
>>586
男にはこだわりも必要さ。頑張れ。

606:デフォルトの名無しさん
15/08/01 06:31:27.99 ed2n0PXB.net
>>583
証券会社のツールから株価を取得したい。
例えばハイパーSBIで銘柄のコードを入力すると株価が出力されるのだけれど、それをpythonでやる方法がわかりません。

607:デフォルトの名無しさん
15/08/01 07:21:30.49 Ere4YETC.net
spyderでプログラムを起動させると
起動中はコンソールの右上に橙の三角マーク(マウスを当てるとkills the current system~と出る)が普段は出ているのですが
たまにエラーも吐かずにプログラムが途中で停止し、そのマークも緑の再生ボタン(run again~)になってしまいます
まったく同じプログラムを何度か起動しても、止まる場所はその時々でまちまちで、原因がさっぱりわかりません
これはいったい何が起こっているのでしょうか?

608:デフォルトの名無しさん
15/08/01 10:19:03.40 QcdegDsY.net
辞書とかリストとかに要素を追加し続けると動作が重くなるんだけど、これってどうしようもありませんか?
要素数は最大で3万件弱、内容は文字列(40~60byte)をファイルから読み込んで追加していくと
読み込んでいく速度が急激に落ちてすごく時間がかかるんです。

609:デフォルトの名無しさん
15/08/01 10:22:40.87 kwRHUfwj.net
読む速度が遅くなるのか
追加する速度が遅くなるのか
判然としない

610:デフォルトの名無しさん
15/08/01 10:47:46.62 QcdegDsY.net
ファイルは700位あって、順次読み込んで文字列を取り出して追加するのですが
挙動を見ている限り追加する速度が遅くなっているみたいに感じます
最初はリストに追加していたのですが遅いので、辞書にしてみたら更に遅くなりました

611:デフォルトの名無しさん
15/08/01 11:00:01.80 HfST5fY7.net
>>588
HyperSBIは外部プログラムとデータのやりとりをする機能を公開していない
よってPythonに限らずどんな言語でも無理

612:デフォルトの名無しさん
15/08/01 11:00:15.78 VbjGDeVR.net
>>592 python以外のc++などで試してみればどうなん?



614:デフォルトの名無しさん
15/08/01 11:18:26.97 PBQUMraI.net
>>592
now = time.time()
#ここで追加or読み込みなど計測したい処理
print( time.time() - now )
これでどの処理にどれだけ時間かかってるかが出力されるので原因が特定しやすいよ
オレの環境では辞書に100byte*10万件追加しても0.05秒(1件あたりじゃなくて全件で)
pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか
ちなみにリストは巨大化すればするほど


615:後ろの方のデータを読み込むのにどんどん時間かかるけど、 辞書は一定の速度で読み書きできるはず



616:デフォルトの名無しさん
15/08/01 11:41:59.68 AVRmVHoz.net
>>588
スクレイピングでググってください
丸投げではなく自分で1から勉強してください
難しいスキルは不要なので基礎からやりましょう

617:デフォルトの名無しさん
15/08/01 11:43:55.24 AVRmVHoz.net
>>590
必要であればyieldを使うなりデータを分割して処理するなりしましょう
データをファイルに書き出して分割して読み込んでいく方法もあります

618:デフォルトの名無しさん
15/08/01 11:47:08.78 AVRmVHoz.net
>>581
python process 監視でググってヒットした1ページ目を片っ端から読みましょう

619:デフォルトの名無しさん
15/08/01 11:47:26.67 PBQUMraI.net
>>596
おそらくC系で書かれたアプリのデータをpythonで取得するのはスクレイピングとは何の関係も無い
難しいスキルが不要どころか極めて敷居高いですよ
少なくともオレにはできない

620:デフォルトの名無しさん
15/08/01 13:23:00.56 GepW3eXw.net
>>590
データ用途にもよると思うけど、素直にDB使えばいいんじゃね
sqlite使ってまずオンメモリDBを試してみて、ダメならファイルベースにすればいい

621:デフォルトの名無しさん
15/08/01 13:30:55.26 ldei0zHr.net
証券会社のツールってWeb上のことでしょ
データなんてクライアントツールで提供してるとこなんてないよ

622:デフォルトの名無しさん
15/08/01 16:42:52.95 waGA91Tw.net
webで一般公開されてるデータなんて
20分以上遅れてるから使い物にならない

623:デフォルトの名無しさん
15/08/01 16:43:35.87 waGA91Tw.net
>>595
>pythonの辞書の問題じゃなくて多分ファイルを読み込むところが原因な気がするなあ
>読み込んだ後にファイルを閉じず(close)にメモリが足らなくなってスラッシングおこしてるとか
+1

624:デフォルトの名無しさん
15/08/01 17:28:13.97 zsKVeSSI.net
ID:waGA91Twは質問者なの?具体的に説明しないとスルー対象だよ

625:587
15/08/01 17:43:35.94 omn1LlLs.net
>>601-602
ウェブ上で公開されているデータを取得するとしたら
URLリンク(area.autodesk.jp)
が参考になりそうですが、銘柄の範囲と速度を考えると厳しそうです。
ちなみに今はヤフーファイナンス等でリアルタイム株価が取得できます。
あくまで目指すものですが、多くの銘柄の株価を1秒ごとに取得し、スクリーニングをかけたいと考えています。
例えば現在の株価を基準に2、4、6秒後と上がり続けている(=急騰している)→自動で発注させたい。
なんにせよプログラム自体ずぶの素人ですので、ひとまずいろいろ試してみようと思います。
>>593
株価が表示されるということはデータを受信していると認識していました。
>>596
勉強します。

626:デフォルトの名無しさん
15/08/01 18:51:49.22 HjoVMyMH.net
まるで夏休みの課題みたいだな

627:デフォルトの名無しさん
15/08/01 18:52:27.13 PBQUMraI.net
>>605
もちろんソフトがデータ自体を受信してるんだろうけどそれを取り出すのは厳しいよ
CだかC+で書かれてコンパイルされたソフトの仕様を完全に解析しないといけない
これはpythonとは全く無関係の話なのでここで質問しても誰も答えられない
なのでもし既に解析した強者がいて情報を公開してれば真似するしか無いかなあ
webで1秒ごとにちゃんとリアルタイム株価が表示されてるのがあれば簡単(でもそんなの無いよね?)
毎秒そのURLにアクセス(requests)してHTMLをパース(lxml or BeatifulSOAP)して株価を取得できる
括弧内はその時に使える便利なpythonライブラリの名前ね
株式投資のことは無知なので的外れな回答だったらごめん

628:デフォルトの名無しさん
15/08/01 21:56:07.62 FWfS2


629:vhb.net



630:デフォルトの名無しさん
15/08/01 22:46:53.52 Ere4YETC.net
>>589
これをコマンドプロンプトから試してみたのですが
python.exeは動作を停止しましたってウィンドウが別に開きます
こう言う時って何が問題な事が多いのでしょう?メモリ?

631:デフォルトの名無しさん
15/08/01 22:56:02.17 BLDCtSuf.net
すみません、sqlite3である特定のkeyで検索するときに、複数カラムで検索するにいはどうしたらいいでしょうか?
column01~20までありまして。
'select * from table_name where column01, column02, column03 = "%s"' % keyword
また、selectの結果をカウントする方法はありますか?
こちらも調べたのですがわからず。。

632:デフォルトの名無しさん
15/08/01 22:57:53.44 kwRHUfwj.net
sql入門でも読めよ
WHERE句でOR使うだけだろ

633:デフォルトの名無しさん
15/08/01 23:01:35.36 kwRHUfwj.net
>>609
Windowsのそのメッセージは99%アクセス違反
どうせNULLハンドルチェック漏れだろうけど

634:デフォルトの名無しさん
15/08/01 23:08:14.18 BLDCtSuf.net
>>611
ありがとうございます。
そのままかくと冗長化するんですが良い方法ないですか?

635:デフォルトの名無しさん
15/08/01 23:30:08.52 Ejo7uJz3.net
>>613
良い方法を見つけて書くのが腕の見せ所でしょ?
select count(*) ~~;

636:デフォルトの名無しさん
15/08/01 23:34:37.56 kwRHUfwj.net
愚かなスキーマでRDB使おうとしているんだから
愚かなコードを書かなければならなくなるのは全く不思議ではない

637:デフォルトの名無しさん
15/08/02 00:25:45.12 vRy1WZiH.net
>>588
そういう情報は、Amazon・FaceBook・楽天などのように、
APIとして公開している会社で、この言語を使って、
こういう具合に作るなど、丁寧に作り方を教えている場合のみ、
ユーザーでもプログラムを作ることができる。
例えば、Googleの地図APIなど
APIを公開していない場合、自分でそのデータ形式を分析して、
プログラムを作るのは、まず無理
>>589
ソースコードのあちこちに、print文を書いて、
どこでエラーが起きているのかを、突き止める
それか、PyCharm を使って、デバッグするとか
>>592
700のファイルを開いて、データを読み込んで、
すぐにそのファイルを閉じているかどうかを、
ソースコードを読んで確かめる
ファイルを開き放しにしていれば、ヤバイ

638:デフォルトの名無しさん
15/08/02 03:54:28.60 dTRZmQiN.net
>>615
時代はKVSだよな

639:デフォルトの名無しさん
15/08/02 03:57:09.44 uoA7o0bf.net
新時代へ突入したらこうなる。
愚かなスキーマでKVS使おうとしているんだから
愚かなコードを書かなければならなくなるのは全く不思議ではない

640:デフォルトの名無しさん
15/08/02 11:15:57.62 yYb0hZFV.net
学校の宿題なんですけど
整数N(0〜100)のプラスマイナス3%の範囲をランダムで出力する方法を教えてください

641:デフォルトの名無しさん
15/08/02 11:17:54.35 yYb0hZFV.net
あ、あと出力される値はKで(0≦K≦(N*1.03))です

642:デフォルトの名無しさん
15/08/02 11:45:58.27 UCQE5+8k.net
>>700
違う!それは違うぞ!!!

643:デフォルトの名無しさん
15/08/02 12:49:18.15 +O2Hc9iF.net
700まで5日くらいかかるか

644:デフォルトの名無しさん
15/08/02 12:54:45.24 dTRZmQiN.net
整数 N=0 のプラスマイナス3%の範囲って
0 ≦ 0 ≦ 0
で合ってますか?

645:デフォルトの名無しさん
15/08/02 12:56:11.84 +O2Hc9iF.net
>>618
スキーマレスって「運用でカバー」並だよね
それが許されるのは緊急時だけにして欲しい

646:デフォルトの名無しさん
15/08/02 14:43:31.31 ULysM4NQ.net
>>623
そのとおりであってます

647:デフォルトの名無しさん



648:
from random import shuffle L = range(101) shuffle(L) print '\n'.join('%.2f <= %d <= %.2f' % (n*.97, n, n*1.03) for n in L)



649:デフォルトの名無しさん
15/08/03 00:19:42.59 VCBaRTzn.net
数値が入った大規模list(できればnumpy.array)より、大きい順に10件の数値を取得したいです
sortするとかなり遅いのでもっと効率的な方法は無いでしょうか
pythonリストはともかくnumpyにはそういう処理があるだろうと思ったのですが見つかりませんでした…

650:デフォルトの名無しさん
15/08/03 02:48:06.14 oLPMcLov.net
最大値の index を pop するのを 10 回繰り返せばどうか、と初心者ながらに思ったけど、下手をすると sort よりも遅いのかな。

651:デフォルトの名無しさん
15/08/03 02:53:50.78 TVbEWMpV.net
merge

652:デフォルトの名無しさん
15/08/03 05:34:38.13 MJUDpxg+.net
ソートの計算量は、O(n log n)で、
log n は、nが大きくなるほど増えにくいから、
ただみたいなもの
n = 1,000 = 2^10 のとき、10 = log n だから、
10回popする間に、千個のデータをソートできる

653:デフォルトの名無しさん
15/08/03 07:58:49.48 ocR6jyDi.net
>>627
numpy partial sortでググってみた。
URLリンク(stackoverflow.com)

654:デフォルトの名無しさん
15/08/03 08:10:36.45 mj4jP7t4.net
さすがstackoverflow様は貫禄があるな

655:デフォルトの名無しさん
15/08/03 11:05:55.50 qdkLyF57.net
>>627
bisect を使えば簡単にできました。
m=10は無視できるとして、O(n)で頑張ったつもりです。
len(ary)が2万くらいの時に、
L.sort() と比較すると倍くらい速いです。
import bisect
def get_min_elements(ary, m):
  L = []
  for x in ary:
    if len(L) < m:
      bisect.insort(L, x)
    else:
      if x < L[m - 1]:
        bisect.insort(L, x)
        L.pop()
  return L

656:デフォルトの名無しさん
15/08/03 11:10:27.07 qdkLyF57.net
>>633は、ち、小さい方から10件だったけど、別にいいよね。。。
m=10なので、
bisect.insort(L, x)
の時の
O(m log m)
は無視できるとして、
O(n(=len(ary))
で頑張ってみました。

657:デフォルトの名無しさん
15/08/03 13:32:56.52 J4VhAduO.net
ユニークな値しか含まれてないリストから指定した値を削除したいんですけど
i = value in lst
if i:
____del lst[n]
これいがいのかきかたをおしえtください

658:デフォルトの名無しさん
15/08/03 13:48:07.72 qdkLyF57.net
>>> L = [1, 2, 3]
>>> L.remove(2)
>>> L
[1, 3]
>>> st = set([1, 2, 3])
>>> st
{1, 2, 3}
>>> st.remove(2)
>>> st
{1, 3}

659:デフォルトの名無しさん
15/08/03 14:00:21.61 VCBaRTzn.net
626です 計測してみました
A list.sort
B >>628さんのmax()で10回取る方法
C >>633さんのbisect
D >>631さんのnumpy+bottleneck (ここだけnumpy)
処理にかかった時間比(N = 10**5)
A : B : C : D = 100 : 65 : 50 : 4 でした
Nが100**4以下だとBが一番遅くなるようです
pythonのlistで処理したい時はC、numpyが使える時はDを使おうと思います
大変勉強になりました 皆さんありがとうございます

660:168
15/08/03 14:56:31.14 fmwSGKmS.net
R なら quantile の probs に 1 - 10/n を指定して、そのパーセンタイル点以上の値をとる要素を抽出するかなぁ。
numpy �


661:ヘ percentile で同じことができるみたいね。



662:デフォルトの名無しさん
15/08/03 21:20:25.82 bi4hacJB.net
x = 1
print 1 + x
x = 2
print 1 + x
  ・
  ・
  ・
x = 1000
print 1 + x
というのを簡単に行うにはどうしたらいいんでしょうか?

663:デフォルトの名無しさん
15/08/03 21:35:43.55 gVB3Io0I.net
for x in range(1, 1001):
print 1 + x

664:デフォルトの名無しさん
15/08/04 12:00:37.85 AS8dD+yU.net
def a(n, m):
print(n)
if m > n : a(n + 1, m)
a(1, 10)

665:デフォルトの名無しさん
15/08/04 12:01:17.71 AS8dD+yU.net
def a(n, m):
_print(n)
_if m > n : a(n + 1, m)
a(1, 10)

666:デフォルトの名無しさん
15/08/06 21:40:10.45 UihIPuxy.net
pythonってphpでいうphp.iniのようにファイルで設定する必要はないんでしょうか?

667:デフォルトの名無しさん
15/08/06 21:41:20.84 3aDya5oU.net
~/.pythonstartup

668:デフォルトの名無しさん
15/08/06 23:18:23.30 wkWTZ+KR.net
print(10/2)
print(10>>1)
何で右シフトだと小数点切り捨てになるんですか?

669:デフォルトの名無しさん
15/08/07 01:04:03.51 NNL5NoiN.net
そもそも右シフトはintの演算子でfloatには使えない
>>> 10.0 >> 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for >>: 'float' and 'int'
Python3から除算の演算子が変わった
C言語系のような整数同士の「従来」の除算は//を使う
>>> 10 // 2
5
数学的な演算結果に近づけた「真」の除算は/を使う
>>> 10 / 2
5.0

670:デフォルトの名無しさん
15/08/07 08:06:00.93 3jYJojYP.net
>>645
小数点以下切り捨てと決めているから。
が答えだけど、納得しないでしょう?
だからさ、CPUの原理を勉強しよう。
bit演算について勉強すると良いよ。
あと、右shift演算は、負の整数にしても面白いんだよ。
>>> -1 >> 1
-1
>>> -1 >> 2
-1
ってなったりする。不思議でしょう?
ふふふ。

671:デフォルトの名無しさん
15/08/07 08:08:05.50 3jYJojYP.net
>>647の続き
更には、rotr, rotlなんて命令もあったりする。
bit列を右回転, 左回転させる命令なんだよ。
8bit CPUの例だけど、
rotr(0b10000001, 1)
を実行すると、
0b11000000
が返ってきたりする。
暗号関係で使われたりするよ。

672:デフォルトの名無しさん
15/08/07 16:11:37.82 ncOfWd5+.net
python 2.7なんですけど
print(round(1.05, 1)) # 1.1でOK
print(round(1.55, 1)) # 1.6でOK
print(round(1.65, 1)) # 1.6になるのでNG
何でですか?

673:デフォルトの名無しさん
15/08/07 16:19:19.04 1VN8eSce.net
print(1.65)
してみたらぁ?

674:デフォルトの名無しさん
15/08/07 16:23:15.22 ncOfWd5+.net
それしたら1.65になりますけどもここから何が分かるのですか?

675:デフォルトの名無しさん
15/08/07 16:23:59.53 ncOfWd5+.net
print(round(1.75, 1)) # 1.8になるのでOK
print(round(1.85, 1)) # 1.9になるのでOK

676:デフォルトの名無しさん
15/08/07 18:34:32.46 l3+Klkte.net
公式のドキュメントを読めば理由は書いてある

677:デフォルトの名無しさん
15/08/07 19:28:09.98 EbZJZJ8+.net
>>653
URLリンク(docs.python.jp)
これの事を言ってるなら今回のと関係ない
>>651
0.05が丸め込まれているのに0.05以上である0.06が丸め込まれないのはバグ

678:デフォルトの名無しさん
15/08/07 19:38:55.70 P01jDVzM.net
はいバグ頂きましたw

679:デフォルトの名無しさん
15/08/07 20:35:10.77 tWWYLiGh.net
>>> "{:17.16f}".format(1.05)
'1.0500000000000000'
>>> "{:17.16f}".format(1.55)
'1.5500000000000000'
>>> "{:17.16f}".format(1.65)
'1.6499999999999999'
>>> "{:17.16f}".format(1.75)
'1.7500000000000000'
>>> "{:17.16f}".format(1.85)
'1.8500000000000001'
URLリンク(docs.python.jp) のノートにある 2.675 はこうなる。
>>> "{:17.16f}".format(2.675)
'2.6749999999999998'

680:デフォルトの名無しさん
15/08/07 23:01:29.54 3jYJojYP.net
>>649
ここに書いてある。
URLリンク(docs.python.jp)
注釈
浮動小数点数に対する round() の振る�


681:曹「は意外なものかもしれません: 例えば、 round(2.675, 2) は予想通りの 2.68 ではなく 2.67 を与えます。 これはバグではありません: これはほとんどの小数が浮動小数点数で正確 に表せないことの結果です。詳しくは 浮動小数点演算、その問題と制限 を参照してください。



682:デフォルトの名無しさん
15/08/07 23:07:52.39 eSh4n7lV.net
>>650
>>653
なんでこういう馬鹿にした&遠まわしな書き方しかできないのかね、ここ初心者スレでしょ
しかもprintしろとか結局間違ってるし
ちなみに>>656みたいな現象はPythonに限ったことじゃなくて、
floatの値をを使って分岐処理やif文を書くときは気をつけないとバグ作り込むので注意

683:デフォルトの名無しさん
15/08/07 23:19:24.80 3jYJojYP.net
>>649
URLリンク(www.pastebin.ca)
これをC言語で実行してみて下さい。
以下のような結果を得る事が出来ます。
x=1.6499999999999999111822, ndigits=1
x=1.650000, ndigits=1
...
r = 1.6000000000000000888178
r = 1.600000
1.65
と書いても、CPUが解釈するとどうしても誤差が生じてしまって、
1.6499999999999999111822
と解釈してしまうんです。
round(1.6499999999999999111822, 1)
の正しい結果は、
1.6
ですよね?
計算機の勉強が必要だと思います。

684:デフォルトの名無しさん
15/08/07 23:28:16.44 3jYJojYP.net
>>659は、
python3.3 で実際にround()を実行している箇所で主要な部分を抜き出したcodeです。
Python-3.3.0/Objects/floatobject.c
で、double_round を検索したら実際に処理を行っている部分の挙動が分かります。
初心者の方っぽいので一応使い方を書いておきます。
>>659を持ってきてa.cに名前を変更して、
$ gcc a.c -o a -lm
$ ./a
とすると実行できます。

685:デフォルトの名無しさん
15/08/07 23:50:19.38 3jYJojYP.net
>>660の続き
詳しい説明は出来ませんので、きちんと理解したいのなら、
浮動小数点数 誤差
で検索してご自分で勉強なさって下さい。
>>> data = list(map(decimal.Decimal, "1.05 1.15 1.25 1.35 1.45 1.55 1.65 1.75 1.85 1.95".split()))
>>> for x in data:
... print(round(x, 1))
...
# bug っぽい挙動
URLリンク(docs.python.jp)
URLリンク(www.edu.cc.uec.ac.jp)

686:デフォルトの名無しさん
15/08/08 02:40:51.72 pFFZvIq1.net
浮動小数点(IEEE754)は2進数で、正確に表現できない。
指数部は、2^n のものしか表現できない
0.5 = 2^-1
0.25 = 2^-2
0.125 = 2^-3
上記を組合せたものは、表現できる
0.25 + 0.125 = 0.375
0.1などは、どの組合せでも作れないので、
循環小数となり正確に表現できない
誤差があるから、「0.1 == 変数」のように書けないので、
範囲を持たせて、以下のようにする
0.1 - a < 変数 < 0.1 + a
a は非常に小さい値
IEEE754 を参照

687:デフォルトの名無しさん
15/08/08 12:37:55.43 6UCmRx7v.net
round(1.65+0.000001, 1)

688:デフォルトの名無しさん
15/08/08 16:54:45.36 7XDpIYnB.net
>>649
decimal module 使っても、
>>> from decimal import Decimal as D
>>> round(D("1.65"), 1)
Decimal('1.6')
となりました。
これは、bugという事で、pythonのdecimal module developper
が対処するはずです。
近日中に対応してくれると思いますので、しばしお待ち下さい。

689:デフォルトの名無しさん
15/08/08 17:55:37.35 bskJYfyR.net
>>664
Decimalの丸めはこうな
Decimal("1.65").quantize(Decimal("0.0"), decimal.ROUND_HALF_UP)
無知なのに意地はんなや

690:デフォルトの名無しさん
15/08/08 18:15:35.74 wzG7wbxY.net
しかしDecimalはホント冗長で使いづらいな
もっと何とかならなかったのか

691:デフォルトの名無しさん
15/08/08 18:52:22.52 bskJYfyR.net
ネイティブの少数表記が浮動小数点数なのだから、混乱を避ける為にある程度使いづらくなるのは仕方なかろ。
Decimal("0.1") + 0.1
とかが普通に実行出来てしまったら、>>649のような不幸な初心者が量産されてまうわ。

692:デフォルトの名無しさん
15/08/08 22:08:47.37 t3Zwjigp.net
PHPだと1.65が1.7になる

693:デフォルトの名無しさん
15/08/08 22:15:21.63 7XDpIYnB.net
穴があったら入りたい。

694:デフォルトの名無しさん
15/08/09 00:30:28.91 dl726Wch.net
そこに穴はあるじゃろ

695:デフォルトの名無しさん
15/08/09 06:09:40.90 T7+WUh22.net
このスレで質問するような人が気づいてることなんて皆とっくに気づいてるんだから安易にバグ認定するのはあかん

696:デフォルトの名無しさん
15/08/09 22:42:00.68 POd8P+xe.net
r"aaaa"
このrってなんですかマニュアルのどこのページを見て学べますか

697:デフォルトの名無しさん
15/08/09 23:03:20.00 LxR15rBc.net
>>672
どうぞ。
URLリンク(docs.python.jp)
正規表現パターンに Python の raw 文字列記法を使えばこの問題を解決できます。'r' を前に付
けた文字列リテラル内ではバックスラッシュを特別扱いしません。従って、"\n" が改行一文字の
入った文字列になるのに対して、r"\n" は '\' と 'n' という二つの文字の入った文字列になります。
通常、Python コード中では、パターンをこの文字列記法を使って表現します。

698:デフォルトの名無しさん
15/08/09 23:03:50.16 SZbKyl18.net
URLリンク(docs.python.jp)

699:デフォルトの名無しさん
15/08/10 00:26:16.45 1trpq2mO.net
raw文字列は確かに分かりにくいね。
俺は意味理解できなくてなんとなく使ってる。

700:デフォルトの名無しさん
15/08/10 02:33:45.82 xpOq7lBh.net
raw文字列はWindows環境でパス記述するときには便利。
\で終わるディレクトリ記述しようとするとはまるけど。

701:デフォルトの名無しさん
15/08/10 04:55:41.13 joKVIITR.net
久々にスレ伸びてると思ったら
python全然関係ない話題だったでござる

702:デフォルトの名無しさん
15/08/10 10:08:21.10 A4JvqZRL.net
def a():
pass
f = 'a'
変数fから関数a()を実行する方法を教えてください

703:デフォルトの名無しさん
15/08/10 10:14:01.63 Y9npztmj.net
>>> def a():
... print 'This is a A'
...
>>> f = 'a'
>>> locals()[f]()
This is a A
>>>

704:デフォルトの名無しさん
15/08/10 10:21:00.93 R47cdcnQ.net
globals()[f]()
eval(f)()
exec(f + '()')

705:デフォルトの名無しさん
15/08/10 10:29:09.95 +1c20aQZ.net
Pythonなら書き方は一つ(キリっ

706:デフォルトの名無しさん
15/08/10 12:24:34.24 A4JvqZRL.net
できましたありがとうございました
今bottleのソースコードを見ながら勉強してるんですけど
ソースコードでlocals()とglobals()をググっても見つかりませんでした
bottleではどうやってコントローラーを実行しているのかわかりませんか?

707:デフォルトの名無しさん
15/08/10 13:16:50.78 R47cdcnQ.net
「Pythonなら書き方は一つ」で検索しても、それらしいページはヒットしない
煽るならzen of pythonから引用してしほしい
>>682 importlibやgetattrでモジュールの動的なインポートを利用していると思われる

708:デフォルトの名無しさん
15/08/11 00:51:44.04 Kibzp2Ye.net
importlibとgetattrとglobals()とlocals()で簡単なルーターを作るところから勉強しようと思います

709:デフォルトの名無しさん
15/08/11 10:00:55.94 z0h2VMWZ.net
40x + 300 = 4100
この一次方程式を解くライブラリってありますか?

710:デフォルトの名無しさん
15/08/11 10:33:58.70 v


711:443SNvd.net



712:デフォルトの名無しさん
15/08/11 10:59:40.44 VmWDUo2S.net
>>> import sympy
>>> x = sympy.Symbol('x')
>>> sympy.factor(x**2 - 4)
-(2 + x)*(2 - x)
>>> sympy.solve(40*x + 300 - 4000, x)
[185/2]
>>> sympy.solve(40.*x + 300 - 4000, x)
[92.5000000000000]
>>> sympy.solve(40*x + 300 = 4000, x)
SyntaxError: keyword can't be an expression
>>> orz

713:デフォルトの名無しさん
15/08/11 20:22:36.51 XnkwOBLj.net
scipyとnumpyだけの専門スレが合ってもいいと思うんだけど立ててもいい?

714:デフォルトの名無しさん
15/08/11 20:39:49.20 BYbKL/Wt.net
いいんじゃね、といいつつ…
どんなスレ立てても大なり小なり叩かれると思うが
科学技術計算総合スレとでもしておいた方が、叩かれる度合いは少ないだろう
Rスレあったんだ
検索しづらいわ!

715:デフォルトの名無しさん
15/08/11 20:40:52.49 7cQT55t3.net
matplotlibとか欲しいし、
もうちょっと広く、「pythonで科学技術計算」とかなら良いかな?
他の人の意見も聞いてね

716:デフォルトの名無しさん
15/08/11 20:42:57.00 7cQT55t3.net
>>689
言語が混ざるとつばぜり合いを始める馬鹿がいるので、
python専用にして欲しいと思う

717:デフォルトの名無しさん
15/08/11 20:56:01.90 flESq3IS.net
個人的にはnltや機会学習系の話がしたい

718:デフォルトの名無しさん
15/08/11 23:46:00.42 mq4pk2ON.net
Matplotlibはいちおうスレがあるよ
自然言語処理や機械学習も言語を限定しないスレはあるね

719:デフォルトの名無しさん
15/08/12 09:32:49.05 +VWy6X24.net
>>688
過疎板だしIDついてるし
このスレでやった方が混乱は少ないと思う

720:デフォルトの名無しさん
15/08/12 10:57:41.33 I5afDcIY.net
a = set([4, 3, 1, 2, 5])
b = set([1, 2,])
print(list(a - b)) # [3, 4, 5]
print(list(b - a)) # []
setに変換して引き算すると順番が狂っちゃうので
[4, 3, 5]って順番をキープした結果を返せる引き算の方法を教えてください

721:デフォルトの名無しさん
15/08/12 11:10:39.20 RQEQ2Cbc.net
list(a - b) でリストにしてるのはなぜ?

722:デフォルトの名無しさん
15/08/12 11:16:11.95 tORyfhyI.net
>>695
A = [4, 3, 1, 2, 5]
B = [1, 2]
diff = set(A) - set(B)
result = [n for n in A if n in diff]

723:デフォルトの名無しさん
15/08/12 11:18:07.92 RQEQ2Cbc.net
>>> a = [4, 3, 1, 2, 5]
>>> b = [1, 2]
>>> reduce(lambda n, m: a.remove(m), b, [])
>>> a
[4, 3, 5]

724:デフォルトの名無しさん
15/08/12 16:55:12.14 k8XljSWZ.net
name1, name2, name3・・・といった風に名前を生成してその中に要素を代入したいのですが上手くいきません
たとえば、
list = [x,y,z]
for i, j in enumerate(list):
"name" + i = j
といった感じです
勿論上記のやり方では上手くいきませんが、イメージとしてはこんな感じでlistの中の要素を番号付けされた名前の変数に入れたいのです
どうしたらいいんでしょうか?

725:デフォルトの名無しさん
15/08/12 17:31:42.13 7eD+gktf.net
>>141-142のglobal使いましょう

726:デフォルトの名無しさん
15/08/12 17:53:05.65 tORyfhyI.net
>>699はグローバルよりargparseみたいにnamespace使った方が便利じゃない?
class Namespace:
    pass
ns = Namespace()
L = [10, 20, 30]
for i, j in enumerate(L):
    setattr(ns, 'name'+str(i), j)
print(ns.name0)

727:デフォルトの名無しさん
15/08/12 18:43:45.34 i7Ce6lvW.net
>>699
URLリンク(stackoverflow.com)
URLリンク(www.php2python.com)


728:wiki/function.extract/



729:デフォルトの名無しさん
15/08/12 18:43:56.83 k8XljSWZ.net
ありがとうございました!

730:デフォルトの名無しさん
15/08/12 20:08:36.40 6qYgwLU5.net
list は予約されている。
>>> list
<class 'list'>
なので、
list = ?
という書き方をしては駄目。
あと、dict使っても出来ます。
>>> L = ["x", "y", "z"]
>>> d = {}
>>> for i, x in enumerate(L):
... d["name" + str(i)] = x
...
>>> d
{'name2': 'z', 'name1': 'y', 'name0': 'x'}

731:デフォルトの名無しさん
15/08/12 22:04:11.18 zuppFPQO.net
質問1
a = {1, 2}
print(a[0])
これエラーなんですけどどうやって1の値を取得できますか?
質問2
a = {"0":1}
print(a["0"])
これもキーを指定するとエラーなんですけどどうやってでキーを指定したらいいんですか?

732:デフォルトの名無しさん
15/08/12 22:10:12.72 PF0ET0RY.net
>>705
質問1
setはindex指定できないのでリスト使う
>>> a = [1, 2]
>>> print(a[0])
1
質問2
普通にできるけどなんてエラーでる?

733:デフォルトの名無しさん
15/08/12 22:43:30.21 zuppFPQO.net
あ、すみません
質問2は
print(a[0])だとKeyError: 0ってでました
print(a["0"])だとでませんでした
文字列で指定したので取れなかったようです
質問1のはよくわかりません
a = {1, 2}
print(a)は{1, 2}って表示されますが、どうしてキーを指定しなかった場合だと個別に取り出せないんでしょうか?

734:デフォルトの名無しさん
15/08/12 22:53:11.50 YIqOZZQS.net
# -*- coding: utf-8 -*-
num_1 = 0
def hoge():
print(num_1)
# これでnum_1は参照はできるが、
def hoge_1():
num_1 += 1
print(num_1)
# これだと参照はできるが、代入はできない。なので
def hoge_2():
global num_1
num_1 += 1
print(num_1)
# このように関数内でnum_1のグローバル宣言をする。そうすると
# num_2に代入できる。

735:デフォルトの名無しさん
15/08/12 23:02:21.27 PF0ET0RY.net
>>707
a = {1, 2}
だとset型を指定していることになるけど,setは順序を持っていないので,indexを指定して要素を取り出すことはできない
中身を取り出したいならfor文にかけるか
>>> a = {1, 2}
>>> for i in a:
... print(i)
...
1
2
いったんリストに変換する
>>> l = list(a)
>>> l[0]
1
とか

736:デフォルトの名無しさん
15/08/12 23:59:18.78 ZEyNhv4C.net
「キーを指定しなかった場合だと個別に取り出せない」って何を言ってんのか分かんなくて悩んだけど
{"0":1}
の、キーを指定しない版が
{1, 2}
っていう認識かいな
確かに同じ記号を使ってて分かりにくいよな
他に記号なかったんかいって俺も最初思ったわ

737:デフォルトの名無しさん
15/08/13 00:15:08.98 Anx3mf6Z.net
>>> l = [0, 1]; l
[0, 1]
>>> l += []; l
[0, 1]
>>> l += [2]; l
[0, 1, 2]
#[] で増えないのは仕様ですか?

738:デフォルトの名無しさん
15/08/13 00:40:20.39 Pv/NYKUJ.net
仕様じゃなかったら何なんだ。
それが聞きたいことか?

739:デフォルトの名無しさん
15/08/13 01:27:49.35 B5UxQ5Jz.net
空なんだから増えるわけ無いじゃん
こうだろ
l += [[]]

740:デフォルトの名無しさん
15/08/13 11:26:21.50 xmv8N9p/.net
夏だな

741:デフォルトの名無しさん
15/08/13 13:02:41.78 dWSY8J7e.net
scipyの日本語マニュアルがほしい

742:デフォルトの名無しさん
15/08/13 19:57:26.86 PEz63Oz9.net
pycon2015だけどチケット高いよ
つうか日本で著名なカンファレンスで金取るのpyconぐらいしか知らないんだけど
収入をスタッフで分けあってるんじゃないだろうね
金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け金儲け

743:デフォルトの名無しさん
15/08/13 20:26:30.03 zypo+673.net
>>716
10000円とか高すぎワロタ

744:デフォルトの名無しさん
15/08/13 21:08:18.66 UOPmO2ID.net
著名なカンファレンスって具体的には何だろう
著名って道端でインタビューしても半分以上知ってるとかそういう意味じゃないよね

745:デフォルトの名無しさん
15/08/13 22:07:09.04 7307l9+I.net
太いスポンサー付いてんだから会場費も賄えるだろ
ひょっとしてけちなスポンサーなのかw

746:デフォルトの名無しさん
15/08/13 22:46:05.03 zYX1bnGl.net
yapcは金取るよ
5000円
俺はyapcに行くけどpyconは行かない
役に立った試しがないから

747:デフォルトの名無しさん
15/08/13 23:18:38.29 XFGl8RYP.net
超初歩的な質問なんですけど
if __name__ =‘’__main__‘’
よ意味がイマイチ分かりません。
どういう意味か教えてください。

748:デフォルトの名無しさん
15/08/13 23:43:50.03 mALeQvK5.net
>>721
URLリンク(docs.python.jp)
特に「if __name__ == "__main__"」の件は
URLリンク(docs.python.jp)

749:デフォルトの名無しさん
15/08/13 23:53:08.79 XFGl8RYP.net
>>722
なんとなくわかった
ありがと

750:デフォルトの名無しさん
15/08/13 23:59:00.58 5Zf3S51H.net
>>721
実行結果の違いを自分で理解しましょう。
$ cat a.py
print("a1: __name__ is \"{}\"".format(__name__))
if __name__ == "__main__":
print("a2: __name__ is \"{}\"".format(__name__))
$ cat b.py
print("b1: __name__ is \"{}\"".format(__name__))
import a
if __name__ == "__main__":
print("b2: __name__ is \"{}\"".format(__name__))
$ python3 a.py
$ python3 b.py

751:デフォルトの名無しさん
15/08/14 01:26:08.78 7t8/l02p.net
ランダムな文字列を特定の文字数から分割することはできるんでしょうか
例えば"abcde"や"12345"を3文字目から分割して、"abc", "de"や"123", "45"にするといった感じです

752:デフォルトの名無しさん
15/08/14 02:12:20.51 55h31pll.net
スライス使う
s = 'abcde'
n = 3
s[:n], s[n:]

753:デフォルトの名無しさん
15/08/14 07:31:24.74 qjotB1DM.net
いい加減に自分で調べようぜ
ここはお前の家庭教師じゃないんだ

754:デフォルトの名無しさん
15/08/14 08:13:18.68 UfQw/EAV.net
漂う一年生の夏休み臭
まぁでもこんなとこで聞いて答え探してちゃあ冬の宿題は無理だろうな
情報科学系は大企業でもない限り学歴は関係ないし、向いてないと思ったなら大学やめるか転科、転部してもいいと思うけどな

755:デフォルトの名無しさん
15/08/14 10:02:58.72 7t8/l02p.net
>>726
ありがとうございました

756:デフォルトの名無しさん
15/08/14 13:16:29.76 Q/AtP1Be.net
スレタイ通りに進行している良スレ

757:デフォルトの名無しさん
15/08/14 17:20:25.77 LobgVTtd.net
ここ質問スレなのに説教してるバカなんなの
ちょちょい回答側も適当なこと答えてるし何様なんだろう

758:デフォルトの名無しさん
15/08/14 18:05:30.80 qjotB1DM.net
一冊本読めば分かるような質問されても

759:デフォルトの名無しさん
15/08/14 18:34:20.95 UfQw/EAV.net
>>731
俺様だよ
Pythonのような動的言語の得意な事の一つにメタプログラミングつってな
プログラムを生成するプログラムを作るような生産手段がある。
つまりプログラムの前にプログラムは始まってるんだよ
Pythonを究めればつまり、十年後、二十年後にプログラムするおまえ自身をプログラムすることだってできる
わかるか?説教なんかじゃねーよ
メタプログラミングだ

760:デフォルトの名無しさん
15/08/14 18:40:34.94 55h31pll.net
質問馬鹿、世話焼き馬鹿、煽り馬鹿
馬鹿どもの需要を満たす良スレです
でもエスパー向け質問は勘弁な

761:デフォルトの名無しさん
15/08/14 18:47:50.96 1qaFTc/3.net
ググったら大量にあるような質問とか4ねよと思うかも知れないが
>>725のような質問から分かることは質問者がプログラミング初心者であることだ
複数のプログラミング言語の経験があれば例えばJavaScriptのsubstringみたいなのはどうやるんだろうみたいな疑問から「python substring」でぐぐれば答えにたどり着ける
>>725に必要なことは経験なんだよ
経験を積めば答えの探し方も自ずとわかってきてクソ質問をする回数も減ってくる
さいしょはそういうものだ

762:デフォルトの名無しさん
15/08/14 19:16:08.06 kkHnja52.net
技術書は


763:高いからなあ 疑問一つ解決するにはネットが一番



764:デフォルトの名無しさん
15/08/14 19:18:02.42 KhWLzGMo.net
高説は垂れ終わりましたかねクソたれの諸君

765:デフォルトの名無しさん
15/08/14 20:24:45.10 RT/486IQ.net
必要最小限の努力で最大限の効果を発揮する回答をするのが腕の見せ所だろ

766:デフォルトの名無しさん
15/08/14 22:13:36.03 LobgVTtd.net
>>735
そうそうググり方がわかんないんだよね初心者は
なんか一つでも言語かじってれば検索語がすぐ浮かぶし基本質問しなくて済むんだけど
そういう事すら想像できないで説教してる奴はプログラムは書けるかもしれないけど年収低そう

767:デフォルトの名無しさん
15/08/14 23:19:56.73 OD8R+FZZ.net
「文字列 分割」で検索すれば一発だろ
っていう想像すら出来ないのか?

768:デフォルトの名無しさん
15/08/15 00:09:06.75 xP2G+OJc.net
>>740
君は恵まれているんだよ
「知りたいことの調べ方を教えられずとも知っている」というのは、ある意味超人なのだから

769:デフォルトの名無しさん
15/08/15 00:11:59.43 ijAlKA58.net
>>740
splitがヒットする

770:デフォルトの名無しさん
15/08/15 04:47:08.17 Yk3bSSFS.net
python始めたころ
'hoge'.length
'hoge'.length()
'hoge'.len()
とかやって途方に暮れたのは良い思い出

771:デフォルトの名無しさん
15/08/15 13:23:11.13 Ul7UCeMQ.net
ここで一から聞くよりも
チュートリアルを一通りやってから聞いたほうが効率がいい

772:168
15/08/15 13:40:31.23 n2MIk9XB.net
たしかに超低レベルだけど、ここそういうスレだもんね。
なかよし学級みたいなものだよ

773:デフォルトの名無しさん
15/08/15 13:41:20.37 vqznTC4Z.net
変数に複数行の文字列が入っていて
それを各行の先頭に&があったらそこでsplitをしたいのですが、
シンプルな形でするにはどうしたらよいでしょうか

774:168
15/08/15 13:50:48.77 n2MIk9XB.net
>>746
str.split(″¥n&″)

775:デフォルトの名無しさん
15/08/15 14:00:32.15 vqznTC4Z.net
>>747
あざす

776:デフォルトの名無しさん
15/08/15 19:34:44.25 4G4yaXTm.net
スーパー初心者です
EclipseにPydevというものを入れたいんですが
Unable to read at repositlyみたいなエラーメッセージがでます。
Eclipseかjavaのバージョンがおかしいのでしょうか?
Eclipseは最新java 1.7.045です

777:デフォルトの名無しさん
15/08/16 00:21:57.41 AC1P33gf.net
Unable to read at repositly
この英文はスペルも間違っているし、
文法的にもおかしい
正しいエラーメッセージで、検索しろ
eclipse Unable to read ~

778:デフォルトの名無しさん
15/08/16 00:35:10.95 Eim8BKO0.net
ソフトウェアが動かない時はOSも書いてもらわないと回答に困る

779:デフォルトの名無しさん
15/08/16 10:16:12.86 UepVPRcb.net
>>749
みたいなエラーじゃエスパーしか回答できないな

780:デフォルトの名無しさん
15/08/16 10:47:06.87 lDaj3UMn.net
input.txt
というファイルに
URLリンク(codepad.org)
のように文字列が並んでいます。
このファイルを読み込んで、
同じ内容の行がn個以上
(nは事前にわかる定数)
出現する場合に、
その文字列の一覧を取得し表示したいのですが、
どのように書けば良いでしょうか。
この例でいうとn=3の時
"2015年7月17日"
などが該当します。
よろしくお願いいたします。

781:デフォルトの名無しさん
15/08/16 10:55:57.16 8LWqlGmF.net
二次のリストにして[行の中身、出た回数]でひとまとめにする。
あとはeachで毎行すべての行の中身と比較して、一緒なら出た回数+1
最後に出た回数が定数以上なら行の中身を出すeach
効率がマックスではないやろけど充分やない?

782:デフォルトの名無しさん
15/08/16 10:57:59.55 lDaj3UMn.net
なるほど、ありがとうございます。

783:デフォルトの名無しさん
15/08/16 11:03:26.16 O32Kimu0.net
はいよ。
import sys
from collections import defaultdict
if __name__ == "__main__":
n = int(sys.argv[1])
print("n is {}".format(n))
path = "tech752-input.txt"
dd = defaultdict(int)
with open(path, "r") as f:
for _line in f:
line = _line.strip()
dd[line] += 1
for k, v in dd.items():
if v >= n:
print("{:>11s} は {} 回出現しました。".format(k, v))

784:デフォルトの名無しさん
15/08/16 11:06:02.80 0tax/iFh.net
宿題の季節ですね

785:752
15/08/16 11:14:57.83 lDaj3UMn.net
>>756
ありがとうございます。
collections
ってやつですか、使ったこともありませんでした。
>>757
宿題でなく、業務の補助です。
コンピューター系の仕事じゃないんですが、
excelファイルの一行目で重複しているものをさがさねばならない状況で
あまりにたくさんあって、手動じゃ厳しい状況でした。

786:デフォルトの名無しさん
15/08/16 11:46:46.26 UepVPRcb.net
この丸投げ依頼、ランサーズで見かけたな

787:デフォルトの名無しさん
15/08/16 11:52:01.60 0tax/iFh.net
excolの整理するならwin32com使うともっと捗る

788:752
15/08/16 12:58:02.61 lDaj3UMn.net
>>760
ありがとうございます。
ただ汎用性の高い方法が知りたかったので
Python単独にしました。

789:デフォルトの名無しさん
15/08/16 20:54:41.00 qIQbKUMb.net
エクセルファイルってpythonの標準モジュールでいけるん?

790:デフォルトの名無しさん
15/08/16 21:50:03.91 LFerq79m.net
フォーマットを理解していて自分で解析するなら標準ライブラリでいけると思うよ
解析を自分でやりたくないなら標準ライブラリでは難しい、PYPIから探して用途に合ったものを入れて使う

791:デフォルトの名無しさん
15/08/16 22:35:19.49 e2KUFoWx.net
csvでええやん(適当

792:デフォルトの名無しさん
15/08/17 00:19:47.15 cHfxWEIf.net
いまどきエクセルとか時代遅れ。
Windowsがメインの時代は終わった。

793:デフォルトの名無しさん
15/08/17 01:35:46.62 yvTEFZww.net
確かにメソッドをバインドしてるはずなのに XXX instance has no attribute xxx って出る時はどうしたらいいんですか?
class Main:
def __init__(self):
self.XXX = XXX()
self.test = Test(self.XXX)
class Test:
def__init__(self, XXX)
self.XXX = XXX
def hoge(self):
self.XXX.xxx()
class XXX:
def __init__(self):
pass
def xxx(self):
pass
大分省略してますが、大まかな流れはこんな感じでエラーはないはずなんですが・・・

794:デフォルトの名無しさん
15/08/17 06:14:35.27 wMu/qLyK.net
実行すると同じエラーが発生するコードを載せないと的を得ないアドバイスになるよ
とりあえずTestクラスに構文ミスがある

795:デフォルトの名無しさん
15/08/17 06:46:37.95 XZr/R9DQ.net
>>765
Google Apps の Spreadsheet はまだ使いにくいんだわ
慣れ鴨試練けど

796:デフォルトの名無しさん
15/08/17 08:35:05.25 yvTEFZww.net
>>766
自己解決しました
Testクラスの初期化でバインドする前に別の命令でXXXを呼び出していたのが問題でした

797:デフォルトの名無しさん
15/08/17 08:40:08.19 yvTEFZww.net
>>767
ありがとうございました

798:デフォルトの名無しさん
15/08/17 11:53:45.23 jAoOCpIM.net
pythonのメモ化ってサードパーティライブラリを使わない場合はどうやるのかおしえて

799:デフォルトの名無しさん
15/08/17 12:03:41.24 HKx5lNza.net
サードパーティライブラリの
ソースコード読め

800:デフォルトの名無しさん
15/08/17 12:39:02.37 hnwd1zgq.net
>>754 >あとはeachで毎行すべての行の中身と比較して、 >一緒なら出た回数+1 行の内容を、キーにして、 辞書・連想配列(dic, map)を使えば、効率的



802:デフォルトの名無しさん
15/08/17 14:15:45.35 wMu/qLyK.net
>>771
標準ライブラリのデコレーターfunctools.lru_cache()を使う

803:デフォルトの名無しさん
15/08/17 16:33:43.57 3iVEaaDQ.net
ブラウザのクッキーのように、ローカルにデータを保存してキーで呼び出す簡単な仕組みがほしいのですが
ありませんでしょうか
ファイル名をキーにできなくもないですが、ファイル名だと制約が多そうなので
専用の仕組みがないか知りたいです

804:デフォルトの名無しさん
15/08/17 16:50:29.97 wMu/qLyK.net
>>775
標準ライブラリのdbm(シンプル)やsqlite3(多機能)を使う
データが少量ならjson(多言語対応)やpickle(Python特化)で一気に読み書き

805:デフォルトの名無しさん
15/08/17 16:57:29.22 3iVEaaDQ.net
>>776
いろいろあるんですね、標準から順番に試してみます。

806:デフォルトの名無しさん
15/08/17 17:31:22.68 BpXeI8EH.net
具体的に何のデータを呼び出すの?
普通はデータベース(上の人が書いてるsqlite3とか色々)
テキストでも数値でも画像みたいなバイナリでもなんでも保存できる
そこまで大げさじゃなかったらdictにしてローカルへの永続保存にはpickleとか

807:デフォルトの名無しさん
15/08/17 17:49:25.09 XZr/R9DQ.net
>>775
memcached

808:デフォルトの名無しさん
15/08/17 17:53:32.11 BpXeI8EH.net
いやそれじゃローカルへの永続保存できないじゃん
揮発していいんならそもそもdictでいいわけだし

809:デフォルトの名無しさん
15/08/17 17:55:31.75 7xSphxbU.net
>>775
python関係ないなスレチ
localstorageかindexeddbでぐぐれ

810:デフォルトの名無しさん
15/08/17 18:00:59.30 BpXeI8EH.net
>>781
CookieみたいにキーバリューっぽくPythonでデータをやり取りできる簡易ストレージありませんかってことでしょ
localstorageとか全然関係ない

811:デフォルトの名無しさん
15/08/17 18:18:31.83 XZr/R9DQ.net
sqlite3 は良いんだけど面倒じゃん
>>780
永続保存したいときは memcached にさせればいい

812:デフォルトの名無しさん
15/08/17 18:30:26.61 BpXeI8EH.net
>>783
俺の知ってるmemcachedはストレージへの保存はできなかったように思うんだけど今はできるの?
できたとしても大規模なサイト向けの分散メモリキャッシュを>>775に勧めるのは違う気がする

813:デフォルトの名無しさん
15/08/17 18:33:58.91 XZr/R9DQ.net
>>775 は永続化したいとは言ってないよな
PC が起動してる間だけ(半)永続化出来れば良い用途なら memcached を勧める
python のプロセスが終了しても実行単位が分かれてても良いからね

814:デフォルトの名無しさん
15/08/17 18:39:27.72 PIyjnu6p.net
>>785
お前そんなんだからいつまでたっても伸びないんだよ

815:デフォルトの名無しさん
15/08/17 21:41:07.78 AC+nB5ru.net
shelveが挙がってなくて驚愕
自動でpickle/unpickle
バックエンドは可能ならdbmを使用
dict互換インターフェース
初心者には文句ねえだろ

816:デフォルトの名無しさん
15/08/17 22:02:22.04 HG93N3kS.net
pythonのパッケージを読み込んだときに、ディレクトリ内のサブモジュールを一括してimportされるようにしたいです
from package import *
じゃなくて
import package
ってしただけで
package.lib1, package.lib2, …
という風に階層的にアクセスできるようにしたいんですが、手軽にできる方法ありませんか?
今は__init__.pyにそのディレクトリのファイルリストを取得してpyファイルのみインポートするようforループ回してるんですが
こんなめんどくさい方法しかないのでしょうか?

817:デフォルトの名無しさん
15/08/17 22:15:45.09 AC+nB5ru.net
__init__.pyに
from . import *
って書いとけば

818:デフォルトの名無しさん
15/08/17 22:19:37.26 LdwVCEVY.net
ID:XZr/R9DQはもうちょっと怒られてもいいと思う

819:デフォルトの名無しさん
15/08/17 22:21:13


820:.35 ID:AC+nB5ru.net



821:デフォルトの名無しさん
15/08/17 22:25:19.92 HG93N3kS.net
>>789
それは試したのですが、dir(package)しても何も読み込まれてません(エラーも出ません)
もちろんグローバルに直接広げられてるわけでもありません
後出しですみませんがpython3.4.1です

822:デフォルトの名無しさん
15/08/18 08:34:58.30 +GUozJxI.net
外字対応で「codecs」あたりを使って色々やっているんですが、
error処理を「replace」や「backslashreplace」にした場合、
置換された時だけ処理を追加したいのですが、
その際の分岐はどのようにすれば出来るでしょうか?

823:デフォルトの名無しさん
15/08/18 10:15:30.36 /VHLnea+.net
置換する前とした後の文字列を比較

824:デフォルトの名無しさん
15/08/18 11:27:12.95 1sNyIVHN.net
天才ktkr

825:デフォルトの名無しさん
15/08/18 18:46:01.56 LAF+YM5X.net
>>792
いや教えてもらったことでできるよ
できてないのは教えてもらったとおりにやってないだけ
自分が手抜きして書いた文章で負担は回答者に来ることを忘れるな

826:デフォルトの名無しさん
15/08/18 19:02:01.11 aNFP607G.net
>>794
それしかないかー
ありがとうございます。

827:デフォルトの名無しさん
15/08/18 19:42:34.63 61LHAw2c.net
教えてもらってから「それしかないかー」って言う人嫌い
必死こいて考えてレスした人に失礼じゃないか
注文があるなら最初に「xx以外の方法で」って書いとけよ

828:デフォルトの名無しさん
15/08/18 20:33:40.72 0mjtCM8s.net
まぁまぁ

829:デフォルトの名無しさん
15/08/18 21:05:13.78 aNFP607G.net
>>798
なんだかすいませんでした。

830:デフォルトの名無しさん
15/08/18 21:28:23.83 2sDrekuo.net
>>796

831:デフォルトの名無しさん
15/08/18 23:34:56.09 yDieNvXT.net
>>796
どう試したんだお前
from . import *で読み込むためには__all__がいるだろが

832:デフォルトの名無しさん
15/08/18 23:55:52.75 pEad/GRS.net
具体的なことを言わずに質問者を適当に罵倒すると
手軽に偉くなった気になれるのでマジおすすめ

833:デフォルトの名無しさん
15/08/19 00:00:27.11 aTZq7rnW.net
そこらのブログのサンプルコードを見てるとしばしば
if
elif
elif
を使っているのを見ますが、実際には殆どの場合では
if
if
if
で事足りますよね?elifを使う事で何かいいことがあるんでしょうか?

834:デフォルトの名無しさん
15/08/19 00:15:08.96 xc/++r0f.net
殆どの場合・・・ifで事足りる
殆どの場合以外・・・ifで事足りない
単純明快

835:デフォルトの名無しさん
15/08/19 00:23:02.41 aTZq7rnW.net
だとしたら以下のような簡単な条件式でもわざわざ
if int == 1:
elif int == 2:
elif int == 3:
って書いてるのは何ででしょうか?

836:デフォルトの名無しさん
15/08/19 00:23:30.33 WfM1PAPC.net
一連の分岐が分かりやすい

837:デフォルトの名無しさん
15/08/19 00:36:57.15 G/CiAypH.net
ifが複数並んだらどれかの分岐の一つのみが実行されるという意図が明確でない
というよりifが並んだら重複して実行されうるものとして見える
だからそうでない限りはelifを使って、どっかで引っかかったらその後のelif節をパスする意図を明確にする

838:デフォルトの名無しさん
15/08/19 00:47:29.32 BLCCc3GJ.net
つかif-elif-elseで1ブロックなんだから
んでn=1,2,3で処理を振り分けるのもひとかたまりの処理だろ
わざわざ独立したifブロックを複数たてる必要がないべ
意図がわかりづらいコードはあとから読み直すの大変だぞ

839:デフォルトの名無しさん
15/08/19 03:02:58.44 1cIU6vdw.net
>>804
elifをifに換えると上手く動かない例
test_result = 95
if test_result > 90:
    grade = 'A'
elif test_result > 80:
    grade = 'B'
elif test_result > 70:
    grade = 'C'
elif test_result > 60:
    grade = 'D'
else:
    grade = 'E'
print('テストの点は', test_result, '�


840:ャ績は', grade)



841:デフォルトの名無しさん
15/08/19 05:02:58.82 MH7WCZSE.net
Pythonにswitchがあったらなあっていつも思う
elifをどんどんつなげていくと、下に行くにつれ息が苦しくなってくる

842:デフォルトの名無しさん
15/08/19 07:39:56.25 2JD/ApDH.net
はい、大きく吸ってー

843:デフォルトの名無しさん
15/08/19 07:54:26.07 hnj5IXaX.net
>>811
Cのswitchの仕様ならいらない

844:デフォルトの名無しさん
15/08/19 07:57:40.59 hnj5IXaX.net
>>798
すばらしい洞察

845:デフォルトの名無しさん
15/08/19 08:34:03.16 zU2KMJnx.net
ではどういうスイッチの仕様がいいのでしょう?
Cのswitchを知らないんだけど、vbaはswitchは仕様もクソもifを見やすくしただけだね。
Aという変数が
条件○
条件△
条件□
どれでもないとき
これ以外のswitchってどんなやろ?

846:デフォルトの名無しさん
15/08/19 09:45:17.12 MH7WCZSE.net
>>813
breakの書き忘れがバグの元になるから
Pythonはswitch系の構文を採用しなかったと聞いたことがある
その思想には産道できるんだが、やっぱりif文が長いと呼吸が…
こういう基本構文をPythonに独自に付け加えるのって難しいのかな?

847:デフォルトの名無しさん
15/08/19 09:49:40.96 CQPQ0YpI.net
>>802
いらねえよバカ

848:デフォルトの名無しさん
15/08/19 12:25:13.17 fKGepA2j.net
pythonにswitchを導入したら、objectの評価がどのタイミングで行われるかが気になるな。
例えば、__eq__を実装したクラスの場合とか。
既に超初心者の範囲の話題ではないが。

849:デフォルトの名無しさん
15/08/19 12:33:01.34 /st2usUG.net
pythonにswitchがないのは
「だらだら長い分岐を書きたくなったら、テーブルとかポリモーフィズム使う事考えろよな!」
という、お前らへのメッセージやで割とマジで

850:デフォルトの名無しさん
15/08/19 12:54:27.69 zU2KMJnx.net
>>819
とまぁこういうこと考える機会になるから、くだすれ向けの話題やろ
switchはswitchの良さがあるけどな
オムロンとか未だにswitchで大きな益をだしとるし

851:デフォルトの名無しさん
15/08/19 13:31:02.10 1cIU6vdw.net
switch文よりパターンマッチの式が欲しい、下みたいなことlambda書かずにやりたい
result = match(10+3, [
    lambda n: 'hoge' if n > 20 else ContinueMatch,
    lambda n: 'fuga' if n > 10 else ContinueMatch,
    lambda otherwise: 'moge'])

852:デフォルトの名無しさん
15/08/19 16:42:49.05 N616QwES.net
>>817
実際にやってみろよバカ

853:デフォルトの名無しさん
15/08/19 16:48:39.32 BLCCc3GJ.net
testdir以下に
__init__.py
from . import *
hoge.py
print("hogehoge")
でimport testdirしても何も出力されない
__init__.pyに__all__ = ["hoge"]指定するとhogehogeって出る

854:デフォルトの名無しさん
15/08/19 17:28:30.29 /k7NGekj.net
で、正解は?

855:デフォルトの名無しさん
15/08/19 17:59:19.82 hnj5IXaX.net
__init__.py は何も書かなくていい
在るだけで良い

856:デフォルトの名無しさん
15/08/19 18:04:59.57 /k7NGekj.net
あるだけでいいどころか最近のバージョンでは__init__なくても名前空間パッケージとして扱われたりすんだけど
大本の質問はパッケージ読み込みと同時にサブモジュールを一括ロードしたいって話らしいので

857:デフォルトの名無しさん
15/08/19 20:08:53.14 kk+zL38M.net
手軽にできる方法とか言ってるからどうなんかなあ、__all__に全部書いとけっていうのは
forループを回してプログラムに読み込ませるのさえめんどくさい方法って言ってるので

858:デフォルトの名無しさん
15/08/19 20:29:27.08 b9NBarYK.net
それしかないかー
ありがとうございます。

859:デフォルトの名無しさん
15/08/19 20:41:39.12 /k7NGekj.net
ていうか__init__でそういうループまわすのって
from unko import chinco とかでも一々unko.__init__が反応するから激しく勧めないけどね
それより__all__無しでfrom . import *できたとかいう心霊現象はどうなったのかなーと

860:デフォルトの名無しさん
15/08/20 00:21:02.25 I3VPAzEa.net
標準出力(orファイル)に


861:改行コード(LF)を出力したいのですが、 sys.stdout.write("\n") とすると CR LF が出力されます。 LF だけを出力する方法はありますでしょうか? ファイルをバイナリモードでオープンする方法も検討したのですが、 バイト列と文字列の違いゆえか、以下のようなエラーになってしまいます。 ---------- open("output.txt", "wb") as f: f.write("\n") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' does not support the buffer interface ---------- ※文字列(str)を出力したいので、write(b"\n") 以外の方法でお願いします。 環境は ・Python3.4 ・Windows 7 です。



862:デフォルトの名無しさん
15/08/20 00:31:00.81 PhWv3bmG.net
試してないけど、b'0xa'を出力すればいいんじゃね

863:デフォルトの名無しさん
15/08/20 00:48:12.96 sobFc7C1.net
>>830
open()のキーワード引数にnewline='\r\n'を指定する
書き出すときに\nが\r\nに変換される
with open('output.txt', 'w', newline='\r\n') as file:
    file.write('hello\n')

864:831
15/08/20 00:50:02.22 sobFc7C1.net
あー、ちゃんとレスを読んでなかった失礼
newline='\n'で読み替えて欲しい

865:830
15/08/20 01:04:02.38 PhWv3bmG.net
まちがえた、b'\x0a'だな
with open('hoge.txt', 'wb') as f: f.write(b'\x0a')

866:デフォルトの名無しさん
15/08/20 10:39:06.57 pV6cw7bo.net
>※文字列(str)を出力したいので、write(b"\n") 以外の方法でお願いします。

867:デフォルトの名無しさん
15/08/20 12:25:16.58 WAF82kMO.net
byteをstrで変換すればいいだろ

868:デフォルトの名無しさん
15/08/20 13:02:08.90 jAis7ACz.net
>>830
import os, sys
if __name__ == "__main__":
os.write(0, b"\n")
ss = "ss\n"
konnichiha = "こんにちは\n"
with open("tech829.wb.txt", "wb") as f:
f.write(b'\n')
f.write(ss.encode())
f.write(konnichiha.encode("utf-8"))

869:デフォルトの名無しさん
15/08/20 22:37:29.07 FFZPtzFS.net
pythonって無料で動かせる鯖ないですよね
ていうかvps前提ですよね
パッケージとかアップロードできるわけじゃないですもんね
ここの先輩方はwebにpythonを使ってますか?

870:デフォルトの名無しさん
15/08/20 23:12:48.33 YEEbYevP.net
>>838
>pythonって無料で動かせる鯖ないですよね
あるよ

871:デフォルトの名無しさん
15/08/20 23:14:38.59 YEEbYevP.net
>>838
>ここの先輩方はwebにpythonを使ってますか?
つかってる。でも無料のとこでは使ってない。

872:デフォルトの名無しさん
15/08/20 23:23:56.79 YEEbYevP.net
>>838
>パッケージとかアップロードできるわけじゃないですもんね
できるよ
何をやりたいか書いたほうが言いと思う

873:デフォルトの名無しさん
15/08/20 23:27:49.83 vJWprlG5.net
>>838
>ていうかvps前提ですよね
なんでそうなる。
ふつうのレンタルサーバで使ってるよ。
最初からPython入ってるけど、自分で使いたいバージョンとモジュールをインストールして使ってる。

874:デフォルトの名無しさん
15/08/21 00:54:55.47 YPq0HJeE.net
==の逆である!=はなんでないんですか?
AはBではないっていうのはどう書けばいいんですか?

875:デフォルトの名無しさん
15/08/21 00:56:22.34 egD41OrM.net
A!=B

876:デフォルトの名無しさん
15/08/21 00:57:56.37 cNm3l2b6.net
もうそろそろ = の反対を ≠ と書くことができる
言語が出てもいいと思う。

877:デフォルトの名無しさん
15/08/21 04:30:24.54 MTjZuMcu.net
え、>>843ってできるよね?

878:デフォルトの名無しさん
15/08/21 08:36:21.94 ewvWrXm9.net
>>843
>>> True != False
True
>>> True != True
False
>>> True != None
True
>>> False != None
True
>>> False != False
False

879:デフォルトの名無しさん
15/08/21 08:42:24.19 HouD2Rdc.net
>>847
ジャバスクリプト


880:がこんなんやったな。



881:デフォルトの名無しさん
15/08/21 08:44:29.55 ewvWrXm9.net
ジャバスクリプト()には !== とかがあるね

882:デフォルトの名無しさん
15/08/21 10:08:00.53 IT5UaqUy.net
>>847
Noneと真偽値の比較を真偽値同士の比較と一緒に並べるのはどうかと思う
前者の組み合わせは 1 != "Hello" みたいに型が異なるものを比較してる

883:デフォルトの名無しさん
15/08/21 10:53:54.00 aXP8e9K+.net
pythonで水面の波紋を描くとしたら上級者の人はどうしますか?
pygameを使い、同じ中心点で異なる半径の円の画像を生成してリストに入れ、時間をずらして表示するってのを考えているのですがどうでしょうか

884:デフォルトの名無しさん
15/08/21 11:16:34.63 ewvWrXm9.net
実際のイメージと違うんだろうなという映像が頭に浮かんだ

885:デフォルトの名無しさん
15/08/21 12:18:35.00 +b9Sq2lj.net
>>851
Pythonと関係ない
ゲーム制作スレで聞いてこい

886:829
15/08/22 00:06:34.80 daWP/VMl.net
>>830です。
>>832さんの方法で期待通りに動作しました。
他の方のご回答も参考にさせていただきます。
ありがとうございました。

887:デフォルトの名無しさん
15/08/22 01:04:48.69 deKfbB8U.net
昔<>って使えてたよね

888:デフォルトの名無しさん
15/08/24 07:13:51.83 xqAU88hl.net
例えば a = [(1,3),(2,4),(2,1),(2,3),(4,4)] のようなリストの中から、最初の
(2,X) (※Xは任意) のような要素のインデクスを返す簡潔な方法はなんでしょうか
上の例では1(=(2,4)のインデクス)が欲しいです
よろしくお願いいたします

889:デフォルトの名無しさん
15/08/24 07:27:59.75 Mj+ThXGY.net
for i,l in enumerate(a) :
 if l[0] == 2:
  i #この変数iが欲しいインデックス
関数にするならreturn iで処理終了
しないならbreakでforを抜けないと続行しちゃってその例だと3になっちゃう
enumerateはfor内を何回ループしてるか変数iに入れ続けるもの

890:デフォルトの名無しさん
15/08/24 07:41:04.38 6mvTbcD8.net
help(a)
を実行して、一通りhelpをながめてみる。
または、
URLリンク(docs.python.jp)
4.5. イテレータ型
を一通り読むんですね。

891:デフォルトの名無しさん
15/08/24 08:08:57.76 xqAU88hl.net
ありがとうございます!

892:デフォルトの名無しさん
15/08/24 09:34:40.43 m0N2dFlX.net
つうかさisとかいらねえんだよ
なんで==で全て判定できるように作らなかったのか
False==0がTrueとかPHP並に気持ち悪いな
本当P言語はクソだな

893:デフォルトの名無しさん
15/08/24 09:50:11.43 t7k5wrbh.net
False==0は形違いで例外出すべきだね

894:デフォルトの名無しさん
15/08/24 16:56:39.48 kccymPOD.net
真偽値が整数なのはC言語の慣習なので俺は親しみを感じる
でもTypeError出すのも妥当だと思う
別の言語でfalse == 0がfalseなのは驚愕した

895:デフォルトの名無しさん
15/08/24 17:07:28.99 NZbDfDwI.net
>>862
> 別の言語でfalse == 0がfalseなのは驚愕した
驚愕するほどのものかね?
本質的にfalseと0は別のものだろ。
C言語なんか、true == 3がfalseなんだぞ。

896:デフォルトの名無しさん
15/08/24 17:35:30.57 kccymPOD.net
>>863
trueは1だろ、何言ってんだ(真顔)
C言語の仕様の良し悪しは何とも言えない
でもマジで初学がCだと真偽値は整数扱いになる
比較の演算結果からtrueは1、falseは0、嘘じゃないよ

897:デフォルトの名無しさん
15/08/24 18:07:18.58 NZbDfDwI.net
でも、if (3) {} は真だろ。
3がtrueじゃないのに、
真と


898:かおかしいだろ。



899:デフォルトの名無しさん
15/08/24 18:17:42.39 zrEdzFeo.net
C言語ネイティブで使ってるひとは
int a = 3; だったとして
if(true == a) ← こんなことする馬鹿はいない
if(true == (a != 0)) ← ぎりぎり許せるがまずしない
if(a != 0) ← 結構ある
if(a) ← 普通これ

900:デフォルトの名無しさん
15/08/24 18:24:11.18 NZbDfDwI.net
> if(a != 0) ← 結構ある
結構あるだろ?
この派生で
if(a != false) ← 結構ある
if(a == false) ← 結構ある
じゃあ、falseの反対は・・・? trueだ!
if(a == true)
なんで動かないんだよ。バンッ!

901:デフォルトの名無しさん
15/08/24 18:32:22.30 zrEdzFeo.net
C使ってるひとでtrueと比較するひとはモグリか素人

902:デフォルトの名無しさん
15/08/24 18:38:54.04 NZbDfDwI.net
だから、C言語を知らない人だったら
別の言語でtrue == 3がfalseなのは驚愕した
っていうだろうなって話をしてるんだよ。

903:デフォルトの名無しさん
15/08/24 18:49:39.15 CmRZDEoS.net
すげーどうでもいい

904:デフォルトの名無しさん
15/08/24 19:18:00.61 tH5OuHw3.net
True/False/Noneはマジで恐いから使うのを避けた方がいい
自分は業務の障害対処に自作スクリプトを使った時、Noneとの比較をミスって
二重障害を起こしてしまったことがある

905:デフォルトの名無しさん
15/08/24 19:24:28.72 CmRZDEoS.net
間抜けの報告ありがとう
肥溜めにでも埋まってろ

906:デフォルトの名無しさん
15/08/24 19:36:39.85 zrEdzFeo.net
>>860
x True/False/Noneはマジで恐いから使うのを避けた方がいい
o == はマジで恐いから is を使った方がいい

907:デフォルトの名無しさん
15/08/24 20:03:14.24 CzPwxFH3.net
>>858から12時間もたったしと思って。
>>857
>>> a = [(1,3),(2,4),(2,1),(2,3),(4,4)]
>>> a.index((2, 4))
1
一行で終わり。

908:デフォルトの名無しさん
15/08/24 20:51:14.50 kccymPOD.net
>>865
C言語のifやwhileなどの構文では0か否かで分岐している
それを利用して比較演算を省略するイディオムがある
Pythonにもこのイディオムが取り入れられている

909:デフォルトの名無しさん
15/08/24 20:53:20.82 SKpW1Nac.net
>>874
そういう質問じゃなかったと思う
最初の質問を読み直した方がいいんじゃないか

910:デフォルトの名無しさん
15/08/24 21:15:50.90 CzPwxFH3.net
>>876の考える、
>>856に対する模範解答は>>874以外にありますか?
ないなら黙っていて下さい。

911:デフォルトの名無しさん
15/08/24 21:23:32.34 rfufUizD.net
>>877
(2,X) (※Xは任意) のような要素のインデクスを返す簡潔な方法はなんでしょうか
と書かれているが?

912:デフォルトの名無しさん
15/08/24 21:31:11.15 kccymPOD.net
>>856
任意の値を指定できる回答
>>> a = [(1, 3), (2, 4), (2, 1), (2, 3), (4, 4)]
>>> b = lambda x: a.index((2, x))
>>> b(4)
1

913:デフォルトの名無しさん
15/08/24 23:00:52.16 CzPwxFH3.net
>>878
a.index((2,X))
でいいでしょ?
重要なのは、
a.index()
を答える事なので。
list.index((2, X))の、
Xを変数とするか4を書くかは重要じゃないです。
>>858でdocumentまで指定しているでしょ?
>>879
そんな書き方も出来るんですね。

914:デフォルトの名無しさん
15/08/24 23:31:55.53 zakjp7f4.net
setで引き算したいんですけど辞書だとTypeError: unhashable type: 'dict'になります
どうしたら引き算できますか?
a = [
{"age": 10},
{"age": 20},
]
b = [
{"age": 20},
]
print(set(a) - set(b))

915:デフォルトの名無しさん
15/08/24 23:44:28.66 HMCHLPlU.net
>>881
ハッシュ化可能なオブジェクトにすればできます
>>> a = [
("age", 10),
("age", 20)
]
>>> b = [
("age", 20)
]
>>>
>>> set(a) - set(b)
{('age', 10)}

916:デフォルトの名無しさん
15/08/24 23:55:01.36 tH5OuHw3.net
>>880
この質問者が>>856で言っている、「Xの部分は任意」というのは
言い方に語弊があって
「タプルの左要素を指定し、右要素を無視して検索」という意味じゃないかと
だから、彼の望んでいる動作はこれだと思う
>>> a = [(1, 3), (2, 4), (2, 1), (2, 3), (4, 4)]
>>> list(map(lambda x: x[0], a)).index(2)
1

917:デフォルトの名無しさん
2015/08/25


918:(火) 00:31:52.45 ID:XaboOLTF.net



919:デフォルトの名無しさん
15/08/25 00:32:09.48 nd6cZevZ.net
たまにID:CzPwxFH3みたいな変な人沸くけど無理して回答しなくていいのに
あとlambdaとかリスト内包使うと初心者は動作が全く理解できなさそう
最初はループと条件分岐主体がいいと思うな
ちょっとコード長くなっても可読性高いので

920:デフォルトの名無しさん
15/08/25 00:43:31.95 pfa9oRBx.net
> あとlambdaとかリスト内包使うと初心者は動作が全く理解できなさそう
これって、初心者を馬鹿にしてるよねw
お前、これらを理解するのに
どんだけ時間かかったの?
数日も数週間もかかったのか?
単に知らないだけなのに、
初心者と馬鹿にするのはやめてもらいたい。

921:デフォルトの名無しさん
15/08/25 00:54:29.05 pfa9oRBx.net
あとさ、知らない文法を使う=可読性が低いという
考え方をやめてくんない?
そもそも「知らない文法」というのはだいたいが
可読性を高くするために作られたものなんだからさ。
例えば、球の表面積を求める式は
4πr^2 って言われてすぐに分かるだろう?
可読性高いからな。
でも知識がない小学生にはわからない。
だからといって公式は可読性低いってことになるか?
ようするに知らない人が読めないことを「可読性が低い」と
言ってはだめなんだよ。

922:デフォルトの名無しさん
15/08/25 01:14:26.12 zenTVy2g.net
夏休みは白痴家庭で育った知恵遅れのガキが湧くから文章を読解できないのも仕方ない

923:デフォルトの名無しさん
15/08/25 07:50:03.80 Po+lTyIJ.net
>>887
>例えば、球の表面積を求める式は
>4πr^2 って言われてすぐに分かるだろう?
>可読性高いからな。
暗記してるからね
よんぱいあーるにじょう
でもすぐ分かるけど可読性高いとは言わないよね

924:デフォルトの名無しさん
15/08/25 19:23:33.68 pfa9oRBx.net
>>889
> 暗記してるからね
可読性が高いコード = 暗記した知識ですぐに理解できるコード
でもあるんだが。
極端な話をすれば、全てを暗記してしまえばどんなものでも
可読性は高いと思える。だけど、それは無理。
だから少ない暗記量で多くに対応できる汎用的な知識というのが重要になる。
だから自社専用ライブラリとかオレオレライブラリはやめろ。言語の構文を覚えろ。
より汎用的なライブラリ、広く知られたライブラリを使えって話にもつながる。
> よんぱいあーるにじょう
> でもすぐ分かるけど可読性高いとは言わないよね
当たり前じゃね? 可読性っていうのは
そういう風に、書き方の問題でもあるだから。
句読点がない文章が読みにくいのも同じ。
まとめると(構文などを)知っている・暗記しているかどうかで
変わるようなものは可読性とは関係ない。
可読性とは知識が有る人が読みやすいかどうかで判断するもの。
「俺(や他の人)が知らないから可読性が低い」という言い方は間違いなんだよ。

925:デフォルトの名無しさん
15/08/25 19:35:06.88 yb6n8Wdy.net
長い上にどうでもいい

926:デフォルトの名無しさん
15/08/25 20:15:07.59 pfa9oRBx.net
どうでもいいなら無視しとけよw

927:デフォルトの名無しさん
15/08/25 21:11:14.02 T/PhJBrK.net
>>890
> 可読性が高いコード = 暗記した知識ですぐに理解できるコード
> でもあるんだが。
> まとめると(構文などを)知っている・暗記しているかどうかで
> 変わるようなものは可読性とは関係ない。
なんでやw

928:デフォルトの名無しさん
15/08/26 01:51:19.67 pnXHZpep.net
最近キチガイ長文さん頻出してるね
こういう奴たいていの職場に一人は居るよなあ

929:デフォルトの名無しさん
15/08/26 03:45:42.10 ftsbhcOc.net
pysideはqt5にいつ対応するのでしょうか?
pyqt5のビルド長くて退屈なんです…

930:デフォルトの名無しさん
15/08/26 06:22:23.48 nL2sda9W.net
>>894
でも長文ってだけで間違ったことは言ってないよな?
いや、なにか言い返すならいいんだけどさ。
長文だー、長文だーって喚いてるだけ。

931:デフォルトの名無しさん
2015/08/2


932:6(水) 07:40:00.49 ID:pnXHZpep.net



933:デフォルトの名無しさん
15/08/26 07:43:24.37 0fCLXGvh.net
今はどこのスレも変なの一人二人いるわ
C#相談室が一番酷いかな
初心者スレと逆転してる

934:デフォルトの名無しさん
15/08/26 09:37:32.17 nL2sda9W.net
お前ら議論しろよw
あいつまじめに勉強てるぜwwwとか
やってることが不良高校生と同じだぞ。

935:デフォルトの名無しさん
15/08/26 10:49:31.71 ElP7lUPJ.net
お前の駄文に議論する価値あんのか?
JR新小岩駅に行け
そして二度とここに来るな

936:デフォルトの名無しさん
15/08/26 11:57:36.30 AtwE5MzM.net
>>897-898
URLリンク(www.lifehacker.jp)
URLリンク(www.lifehacker.jp)
URLリンク(info.2ch.net)

937:デフォルトの名無しさん
15/08/26 12:29:34.60 sdlDeysq.net
なんやガチなんがおるな(キチガイ的に)

938:デフォルトの名無しさん
15/08/26 12:58:53.97 ZW9B1mjA.net
いいから議論しろよ張り倒すぞ

939:デフォルトの名無しさん
15/08/26 13:38:26.33 ftsbhcOc.net
それじゃネタ振り
みんなguiアプリ作るとき何使ってる?
俺はpysideでqt使ってるんだけど、最近kivyも気になってる

940:デフォルトの名無しさん
15/08/26 13:49:01.19 zJ272Tt+.net
>>904
どんなくだらない雑談はいらねえよカス

941:デフォルトの名無しさん
15/08/26 15:53:28.27 nL2sda9W.net
>>900
なんでそうかっかしてんの?
俺がいるとお前困るの?w
じゃぁいかなーい(笑)

942:デフォルトの名無しさん
15/08/26 16:39:45.88 ElP7lUPJ.net
小学生と変わらんな

943:デフォルトの名無しさん
15/08/26 20:52:34.12 nL2sda9W.net
まったくだよ。
まじめに議論するか何も言う気が
ないなら黙ってればいいのに、
関係ないことをぶつくさ言うだけ。
なんなんだろうね。

944:デフォルトの名無しさん
15/08/26 21:01:17.41 nL2sda9W.net
誰が最初にけんかを売ったのか
見てみると楽しいね(笑)
どこでもやってるんだろうなぁ。

945:デフォルトの名無しさん
15/08/26 22:15:44.84 ronbLnf1.net
なんだよもう議論しないのかよカス

946:デフォルトの名無しさん
15/08/26 23:06:30.71 xqVlAmo6.net
>>904
私はHTML+CSS+JavaScriptですね。つまり
Webアプリケーションとして実装してます。
PySideはこの6月ぐらいに開発版のバージョンが2.0になって、
QT5対応に必要ないくつかの変更もされたとか。
QT4のサポートが今年の12月で終わるらしいので、
それまでにリリースされるといいですね。

947:デフォルトの名無しさん
15/08/27 01:55:39.07 uBflNsZt.net
Pythonは30分で挫折したけど、議論に参加していい?

948:デフォルトの名無しさん
15/08/27 05:57:56.65 ZEsVN2Rf.net
>>912
挫折するポイントが不明。
そんなのあったっけ?

949:デフォルトの名無しさん
15/08/27 08:09:30.23 Sd5tuK/H.net
議論なんて高尚なことはやってない
(この夏にプログラマLV2になった奴が語っちゃってるだけ)
気にせず話せ

950:デフォルトの名無しさん
15/08/27 11:01:44.03 kP+pCLjh.net
a = ['てst']ってリストからてstを取り出すにはどうするの
a[0]でも例外だし

951:デフォルトの名無しさん
15/08/27 12:24:44.89 3PV9QFs8.net
>>915
俺の環境だとa[0]でちゃんと値を取り出せてるよ
例外の内容を正


952:確に書いて再質問すると良いでしょう



953:デフォルトの名無しさん
15/08/27 12:28:46.11 lwpAfeUc.net
よし、ちゃんと議論してるな
やればできるじゃないか

954:デフォルトの名無しさん
15/08/28 22:22:07.50 Idwzm7eN.net
msvcrtのgetch()で未入力状態は何が返ってくるのでしょうか?None、””で反応しなかったので
教えてください

955:デフォルトの名無しさん
15/08/28 22:30:00.43 La0rg2tq.net
未入力ならブロックするはずだし再現方法が分からん
print ord(msvcrt.getch())

956:デフォルトの名無しさん
15/08/28 22:33:31.92 Idwzm7eN.net
255ですね

957:デフォルトの名無しさん
15/08/28 22:47:07.77 Idwzm7eN.net
chr(255)でもヒットしないですね

958:デフォルトの名無しさん
15/08/29 01:25:13.74 kSQTrkNz.net
print(1440778346.4348216 - 1440778346.4348133)
これ結果がおかしくなるのはなぜですか?
どうやって正しく計算結果を出せますか?

959:デフォルトの名無しさん
15/08/29 03:13:58.44 AYSgSWUX.net
暗算できないなら電卓でもいける

960:デフォルトの名無しさん
15/08/29 03:18:18.98 nAsI3V8f.net
エスパーじゃないから、コードだけでなく期待する結果と実際の結果の例がほしい

961:デフォルトの名無しさん
15/08/29 08:25:37.47 TDTn35wR.net
あ、GUIでmsvcrt.getch()やると反応がちがうようです。
コンソールで普通に動きました

962:デフォルトの名無しさん
15/08/29 11:45:17.59 D9jd66uE.net
>>924
ためせばわかるだろ

963:デフォルトの名無しさん
15/08/29 12:32:26.05 TDTn35wR.net
>>919
print ord(msvcrt.getch())
をGUIで実行すると未入力状態で255が返って出力されます。
コンソールでの実行では未入力では何も出力されません
この原因はなんでしょうか

964:デフォルトの名無しさん
15/08/29 12:33:28.57 TDTn35wR.net
それとGUIの場合、キーを押しても255のままです

965:デフォルトの名無しさん
15/08/29 12:45:19.79 xMZWPx0m.net
allocconsole

966:デフォルトの名無しさん
15/08/29 12:53:30.11 gmx5ty9e.net
windowsでwinmainから起動したプログラムは標準入出力が無効になっているため
標準入出力を使うプログラムはまともに動作しない
928が言っているAllocConsoleで標準入出力を新たにアタッチするか
別プロセスから起動してパイプを与えることで利用可能になる

967:デフォルトの名無しさん
15/08/29 13:09:28.88 TDTn35wR.net
ありがとうございます。
C++の話ですか?allocconsoleを糸口に調べてみます。

968:デフォルトの名無しさん
15/08/29 13:18:47.00 gmx5ty9e.net
というか、最終的に何がしたいんです?
聞いている限りではmsvcrt.getchを動作させることは過程でしかないんでしょ
最終的に欲しい結果をもっと簡単に得る方法はあるかもしれませんよ
無いかもしれませんが

969:デフォルトの名無しさん
15/08/29 13:43:58.41 TDTn35wR.net
KODI(旧XBMC)の拡張機能を作ろうとしています。
拡張機能のミドルウェアとしてpython2が使用できます。
その中でキー入力を得たいので探しています。
文字列よりもホットキー的なもので使います。
linuxの場合はttyを使わないといけないのかもしれません。
まだ調べていません。
実際にKODIで実験しても同じ状態になりましたので、同様の問題があると思われます。
モジュールは読み込めたので使えることは使えると思います。

970:デフォルトの名無しさん
15/08/29 17:17:41.41 TDTn35wR.net
orz・・・私の知識ではwinmainプログラムから標準入力を取得する方法がわかりませんでした。

971:デフォルトの名無しさん
15/08/29 17:51:47.15 TDTn35wR.net
検証に支障が出る可能性もあるので難しいことはやめます。
無理に標準入力にこだわる必要もないので

972:デフォルトの名無しさん
15/08/29 17:55:11.32 Xtar3XIm.net
>>934
sys.stdin.read()
fgets(stdin, ss, 80 - 1);
知らないとか?

973:デフォルトの名無しさん
15/08/29 18:09:57.30 vY8VctDz.net
>>936
それはエンター押さなければ
ならないのでは?

974:デフォルトの名無しさん
15/08/29 18:58:31.84 xMZWPx0m.net
pygame使っとけ

975:デフォルトの名無しさん
15/08/29 19:56:04.67 jCAQiE2w.net
あと2週間で3.5がでるけど新機能ってどのページに�


976:レってるかおしえて



977:デフォルトの名無しさん
15/08/29 21:14:43.47 Ld2l5eLL.net
URLリンク(www.python.org)

978:デフォルトの名無しさん
15/08/29 22:20:34.52 GZ09Elz0.net
python 3.4のurllib.request.urlopenのタイムアウト
URLリンク(docs.python.jp)
>任意の引数 timeout は、接続開始などのブロックする操作におけるタイムアウト時間を秒数で指定します (指定されなかった場合、グローバルのデフォルトタイムアウト時間が利用されます)
ってありますがこのグローバルのデフォルトタイムアウト時間ってどうやって設定したり取得できますか?

979:デフォルトの名無しさん
15/08/29 23:04:07.87 ucYXOKxr.net
>>941
もっと低層のタイムアウトを使うようになっとる
>ってありますがこのグローバルのデフォルトタイムアウト時間ってどうやって設定したり取得できますか?
グローバルのデフォルトタイムアウト時間よりも、
URLリンク(docs.python.jp)
のタイムアウト時間を指定したほうがいいと思う

980:デフォルトの名無しさん
15/08/30 06:13:26.33 tJkk5ci/.net
>>940にあるこれって
>Windows users: There are now "web-based" installers for Windows platforms; the >installer will download the needed software components at installation time.
インストーラーがインターネットからダウンロードしながら動作するって意味?
だとしたら企業内のスタンドアロンPCにインスコできなくなるじゃん

981:デフォルトの名無しさん
15/08/30 08:37:26.59 6hA230oM.net
Windows x86-64 executable installer

982:デフォルトの名無しさん
15/08/30 09:46:10.04 xQDvWigH.net
py2exeで、urllibとurllib2を使ったプログラムをexe化するとフリーズするのだが、これどうすればいいの? 間違ったコードは書いてないし...

983:デフォルトの名無しさん
15/08/30 10:36:20.34 sqP4vjJl.net
使わなければいいと思いますよ
使わなければ動作しないものではありませんから

984:名無しさん
15/08/30 11:21:30.28 xQDvWigH.net
Pyinstallerでもいいだけどさ、ファイル容量半端なくなるからできたらpy2exeつかいたいけどなぁ

985:デフォルトの名無しさん
15/08/30 14:12:17.79 sqP4vjJl.net
そうは言ってもですよ
再現方法すら提示されないのにどうしろと言うんです
pythonのバージョンやpy2exeのバージョンも分からない状態で
入手可能な組み合わせ、考え得るあらゆるコード全てで試すんでしょうか?
あなたはそれが現実的だと少しでも思いますか?
自分の個人的な見解としては、最小のコードで動作した時点で
間違ったコードを書いていないというあなたの見解が間違っていると判断を下しました
URLリンク(pastebin.com)
その時点でやる気がなくなりました

986:名無しさん
15/08/30 14:29:01.69 xQDvWigH.net
すまそ、環境はPython2.7, py2exe v0.6.9, Win10
ちなみにpyinstallerでは問題なく動作
現象としては、コードミスによるエラーじゃなく、起動してimportまでできているみたいだけどurllib.urlretriexeの部分にさしかかると ~は動作が停止しましたと出る感じ
#-------------------
import urllib
urllib.urlretrieve('URLリンク(www.google.com)', 'google.html')

987:名無しさん
15/08/30 14:32:27.56 xQDvWigH.net
>>949
あ、あと外部モジュールとかはpy2exeくらいしか入れてない、Python27フォルダ内のファイル変更,移動,削除とかも一切してない

988:デフォルトの名無しさん
15/08/30 15:53:07.67 sqP4vjJl.net
win7 x64 pro + python 2.7.10 x86 + py2exe 0.6.9で止まらない

989:名無しさん
15/08/30 15:54:30.72 xQDvWigH.net
まじかw やっぱこのPCが悪いのかー ありがと

990:デフォルトの名無しさん
15/08/30 16:09:00.82 tJkk5ci/.net
つーか明らかにWindows10が臭いだろ

991:デフォルトの名無しさん
15/08/30 18:24:43.63 xA3qmXia.net
監視系の処理をしたくて下のように書いたんですが、
空のブロックは許されないらしいので


992:exceptブロックに適当な一文を入れて解決しました でも何か不格好な感じもするので真っ当なやり方がありましたら教えて下さい def monitor():  a = get()  try:   if a != b:    sth()  except NameError:   dummy = 0  b = a



993:デフォルトの名無しさん
15/08/30 18:58:14.67 xA3qmXia.net
b = 0
def monitor():
 global b
こう書かないとbが消えちゃいますね

994:デフォルトの名無しさん
15/08/30 18:59:16.66 gWgp6/6g.net
>>953
Win10 Pro x64、Python2.7.9 x86、py2exe 0.6.9で>>948のスクリプト試したけどちゃんと動いたよ

995:デフォルトの名無しさん
15/08/30 19:02:00.23 T6IhtZv4.net
>>954
シンタックス上何か文を置かないわけにはいかないけど
何もする必要がないときは普通pass文を使うよ
URLリンク(docs.python.jp)
でもプログラムの設計としてあなたコードが妥当かどうかは
具体的にどういう処理をしているのかがわからないのでなんとも

996:デフォルトの名無しさん
15/08/30 19:10:33.80 xA3qmXia.net
>>957
ありがとうございます!本当に何もしないためだけの文があったとは
目的はクリップボードの監視で一つ前のデータを保存したかっただけです

997:デフォルトの名無しさん
15/08/30 19:23:28.04 T6IhtZv4.net
>>958
クリップボードが変更されたときだけ保存するってことだね
NameErrorはどこで発生する例外で何で無視してもいいの?

998:デフォルトの名無しさん
15/08/30 19:29:31.90 xA3qmXia.net
>>959
初回の呼び出しでは保存用変数が空なために
if文で評価するときに未定義のエラーが出るのでその対策としてのつもりです
検索したら出てきた方法なので

999:デフォルトの名無しさん
15/08/30 20:03:55.34 T6IhtZv4.net
>>960
そういう用途なら例外をpassでスルーする形で妥当かな
空文字かNoneで初期化しとくのじゃダメなんかなともちょっと思ったけど
クリップボード周りの実装はしたことないので頓珍漢なこと言ってるかも

1000:デフォルトの名無しさん
15/08/30 20:17:13.79 xA3qmXia.net
>>961
あ、うっかりしてました
>>955みたいにグローバル変数を使うなら例外処理もいらなくなりますね
ともかく目的が果たせて満足です。親身にご指導いただきありがとうございました!

1001:デフォルトの名無しさん
15/08/30 23:31:40.78 lCIF9vL7.net
>>956
GNU系は、Win7 Pro x64 を使うのが定番だが、
ほほう、Win10 Pro x64 でも動きますたか?

1002:デフォルトの名無しさん
15/08/31 20:35:49.34 bggRqSur.net
foo(arg1, arg2, arg3)
という関数を呼び出すときにarg2だけ省略することってできますか?

1003:デフォルトの名無しさん
15/08/31 20:43:07.51 1sJZNQ4o.net
できません。
前優先なので、
引数の順序を入れ替えて下さい
foo(arg1, arg3, arg2=None)
とかにして下さい

1004:デフォルトの名無しさん
15/08/31 20:52:04.61 bggRqSur.net
>>965
分かりました。ありがとうございました

1005:デフォルトの名無しさん
15/08/31 22:53:28.94 5tXTMn4R.net
foo(arg1, arg3=arg3)
#どうでもいいけど関数宣言の方はparameterじゃ

1006:デフォルトの名無しさん
15/09/01 02:21:11.52 sXfua+XA.net
def foo(arg1, **kwargs):
arg2 = kwargs.get('arg2', defaultvalue)
arg3 = kwargs['arg3']

1007:デフォルトの名無しさん
15/09/03 11:21:42.13 BG3f8u9o.net
最近の大学生ってひでえもんだな
URLリンク(detail.chiebukuro.yahoo.co.jp)
URLリンク(www.python.jp)
URLリンク(www.python.jp)

1008:デフォルトの名無しさん
15/09/03 13:28:52.07 c+e/eL7q.net
数値で1.00って表示する方法を教えてください

1009:デフォルトの名無しさん
15/09/03 14:35:21


1010:.80 ID:twsT9voz.net




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch