Pythonのお勉強 Part53 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/05/13(土) 22:48:04.14ID:O7RODXwf
Pythonオフィシャルサイト
http://www.python.org/

まとめWiki
http://python.rdy.jp/
関連スレ
http://find.2ch.net/?BBS=ALL&;TYPE=TITLE&STR=python
日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
http://www.python.jp/

日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
ttp://speirs.blog17.fc2.com/blog-entry-4.html
ttp://atomic.jpn.ph/prog/etc/encode.html
ttp://d.hatena.ne.jp/kakurasan/20100330/p1

PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
よくまとまってた。あとで読む

■前スレ
Pythonのお勉強 Part52
http://echo.2ch.net/test/read.cgi/tech/1483756857/
512501
垢版 |
2017/07/08(土) 12:05:43.31ID:inX23hAm
>>505
>>511
こういう事なのですね!凄い。
できました!本当にありがとうございますっ!
513デフォルトの名無しさん
垢版 |
2017/07/10(月) 14:42:51.70ID:TZVwcXL0
なんでpython3はwindows日本語環境のopenのデフォをutf8にしないのですか?
2017/07/10(月) 14:55:18.60ID:9oiksQC/
>>513
Windowsの標準文字コードがCP932ことSJISだから、過去の遺産に引きずられてるからどうにもならない
2017/07/10(月) 15:49:43.02ID:CNxwaGHR
訳あってPythonを使わざるを得なくなったんだが
Pythonという名称には抵抗感じる
ヘビ嫌い
2017/07/10(月) 15:56:32.56ID:9oiksQC/
蛇じゃなくてモンティパイソンだからって思ったけどロゴマーク蛇だったな
2017/07/10(月) 15:57:07.85ID:t4qeEO37
牛だと勘違いしてたわw
518デフォルトの名無しさん
垢版 |
2017/07/10(月) 16:17:48.22ID:TZVwcXL0
>>514
なるほど・・・あり!
2017/07/10(月) 16:48:34.99ID:891wXSAy
ゴキブリとかウジ虫とかよりマシだろ
2017/07/10(月) 17:12:40.14ID:OAwCY67i
>>517
バイソン
2017/07/10(月) 20:31:44.61ID:RiONe1Ok
そもそもモンティ・パイソンのパイソンは蛇のパイソンのことなの?
2017/07/10(月) 20:36:51.88ID:UR+4+grg
スコットランドの民話に伝わるパイソン族の事やで
2017/07/10(月) 21:03:41.89ID:Fha/eGoH
屁の音をモチーフにしたペチプァ〜〜〜〜さんをバカにしてるのか?
524デフォルトの名無しさん
垢版 |
2017/07/11(火) 00:36:16.33ID:IKoJR0Wf
大丈夫、俺もヘビ嫌いだけど、そんなの忘れるくらい便利だ
2017/07/11(火) 07:25:06.97ID:UfErDQBR
俺巳年やで
2017/07/11(火) 09:15:48.80ID:zsCdG6oN
パイソンちえみ 35億
2017/07/11(火) 09:58:40.77ID:Sq+bXrW4
どちらかと言うとバイソンじゃんあいつ
2017/07/12(水) 00:08:36.43ID:iO19g1+a
パイセンチョリーッス
2017/07/12(水) 08:13:13.31ID:lqiSGecC
戦闘ヘリパイソン
2017/07/12(水) 14:26:50.95ID:sNyzU/qO
>>498
一般エラー
2017/07/12(水) 20:01:47.90ID:+iUzgANj
アプデするたびに将来的にこの機能は削除しますとか警告出てきてイライラしてきた
pythonはライブラリ頼みだからこういうところは弱いわ
2017/07/12(水) 20:37:45.78ID:4Bbie6ut
それな
2017/07/16(日) 00:18:11.00ID:84gmQO2A
PIL使って壁紙生成するプログラム組んだら満足したので寝る
2017/07/16(日) 09:41:56.40ID:kpOM34Sv
ピル飲んで満足して寝るのか
535デフォルトの名無しさん
垢版 |
2017/07/16(日) 10:23:11.02ID:8fieeS/I
昨日本屋でブラブラしてたら
pythonでマインクラフトいじる本が出てたので
なんとなく立ち読みしてみた
PILつかってjpg読み込んでブロックで絵描いたりしてたけど
出来上がった解像度にがっかりだった
100x100とかしか出来ないのは速度の問題?
それとも1000x1000くらいにすると別途課金されるの?
2017/07/16(日) 10:59:35.96ID:6hUm5kqX
本を書いた人に聞けば
2017/07/16(日) 12:09:37.94ID:yo5XpH/o
日本でブラブラ
2017/07/16(日) 13:02:08.57ID:nvinih80
おちんちんをぶらぶら
2017/07/16(日) 13:37:05.52ID:pHft25q3
minecraftはオワコン
540デフォルトの名無しさん
垢版 |
2017/07/16(日) 16:36:08.94ID:dlJarD9s
>>535
日本屋?
2017/07/16(日) 17:36:05.22ID:h6bT3cU+
tubeでGTAの自動操縦してるやつもいる
2017/07/16(日) 17:42:08.95ID:I9sDywDn
pillowの方がいいってよ(伝聞)
2017/07/16(日) 20:06:40.37ID:MaIM++PI
>>537 >>540
こいつら頭の悪い AI か
544デフォルトの名無しさん
垢版 |
2017/07/16(日) 21:53:18.37ID:aJG+vjk1
ぷろグラムのプのじもわからない素人だけど
ゲームでリセマラしようとマクロ組もうとそこらのサイトから参考になりそうなのを継ぎ接ぎして
やってみたけどおもったとおり動かない
誰か助けてください
sikuliというマクロツールでpythonでやってるらしいからここでいんだよね?
おねがいします



while 1:
click("1500190920747.png")
wait(12)

findAll("1500198166325.png")@この画像の数次第で終わりと継続に分岐したい
mm = SCREEN.getLastMatches()
cnt = 0
while mm.hasNext():
cnt = cnt + 1
mm.next()
if cnt > 3:
click("1500198822380.png")
2017/07/16(日) 23:18:40.28ID:QlYFozep
くだすれPython超初心者用に行け

インデントが狂ってると問題が正しく伝わらない
正しく伝わらないと泥沼になるから答えてもらえない
コードは https://ideone.com/ に貼るのがよい
2017/07/16(日) 23:42:54.15ID:aJG+vjk1
インデントでぐぐったら動かせるようになったー
ちゃんと空白とかにも意味があったんですね
やっぱ基礎からやらんとダメぽ
なにはともあれありがとうございました
2017/07/16(日) 23:52:13.38ID:QlYFozep
ファ〜
2017/07/17(月) 00:56:15.68ID:s2Ne6p+B
>>546
そうやって成長していくんやで
2017/07/17(月) 01:22:12.64ID:Fkkap2CA
池沼を甘やかすな
2017/07/17(月) 03:43:18.27ID:a/BJdC61
>>543
一瞬、空目したってことだろ
まともに句読点打ってないから
2017/07/18(火) 17:34:31.56ID:AEILjc4B
nao操作するためにコレグラフとパイソン使わなければいけないんだけどどうやって勉強するべき?本とか
2017/07/18(火) 17:43:50.76ID:Ap/4Wqih
キムチ
2017/07/18(火) 18:35:49.55ID:9n6pBnb3
気合で勉強すればヘーキヘーキ
2017/07/18(火) 18:58:34.78ID:FvnhYrVJ
Pythonくらいみんな生まれた瞬間から扱えるからヘーキヘーキ!
もしPythonを忘れちゃったなら公式チュートリアルを読めばすぐ思い出せるよ
もしプログラム自体を忘れちゃったなら「みんなのPython」でも読めばきっと思い出せるよ!
2017/07/18(火) 19:29:58.73ID:+aCTDJcV
大抵のことは気合いと筋肉でなんとかなる
2017/07/19(水) 22:59:16.26ID:RpIdIDLo
質問です
正規表現のグループ()の所だけを大文字にしたくて
中々うまういかなくて、下のやり方でなんとか出来たのですが
もっとスマートにやる方法ってあるのでしょうか?
よろしくお願いします

import re
text='abc amnc axyzc'
def func(m):
n=m.group(1)
o=n.upper()
return o
r=re.sub('a(\w*)c','a'+func+'c',text)
print(r)
2017/07/19(水) 23:42:45.26ID:747RlNYZ
適切なスペースと改行を入れましょう。
はい次の患者さん。
2017/07/20(木) 00:15:30.34ID:VcCFQpPf
pastebinとか使ってくれるといいんだけどね。
次の方どうぞー
2017/07/20(木) 07:38:22.64ID:9T3/DS4t
>>551
チュートリアル一通り読めばだいたい分かるよ。
2017/07/20(木) 11:19:03.57ID:hN2WxidD
>>556
>>> import re
>>> text = 'hoge abc amnc axyzc fuga abstract auuc'
>>> re.sub(r'\ba(\w+)c\b', lambda s: s.group(0).replace(s.group(1), s.group(1).upper()), text)
'hoge aBc aMNc aXYZc fuga abstract aUUc'
>>>
2017/07/20(木) 15:42:02.15ID:hN2WxidD
>>556
>>560にはバグ有り
>>> import re
>>> text = 'hoge abc amnc axyzc fuga abstract auuc aaac'
>>> re.sub(r'\ba(\w+)c\b', lambda s: s.group(0).replace(s.group(1), s.group(1).upper()), text)
'hoge aBc aMNc aXYZc fuga abstract aUUc AAac' ←最後のaaacがaAAcとならない
>>>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
バグ修正版
>>> re.sub(r'\b(a)(\w+)(c)\b', lambda m: m.group(1)+m.group(2).upper()+m.group(3), text)
'hoge aBc aMNc aXYZc fuga abstract aUUc aAAc'
>>>
2017/07/20(木) 16:40:01.51ID:t+byJiGG
俺に考えられる最短はこれかな
re.sub(r'(?<=¥ba)(¥w*)(?=c¥b)',lambda s:s.group(0).upper(),text)
2017/07/20(木) 22:28:24.31ID:7Kb2npVp
>>561
>>562
ありがとうございました。勉強になります。
色々不手際すみませんでした。
2017/07/20(木) 23:10:44.70ID:mEIqzc+z
絶対に許すな
2017/07/20(木) 23:35:42.89ID:VcCFQpPf
>>564
帰れ
2017/07/21(金) 10:27:49.18ID:apJa7JCX
tuple = ("A", "B", "C", "D")

print tuple[1:3] # ("B", "C")


開始インデックス1、終了インデックス3なので、このときの出力って("B", "C", "D")じゃないんですか?
2017/07/21(金) 10:36:41.79ID:FosZjZYq
[begin, end)の範囲を指している。
beginは含み、endは含まない。
2017/07/21(金) 18:26:28.98ID:MgCB0LLq
0 A 1 B 2 C 3 D 4
と考えるとわかりやすいよ
2017/07/21(金) 19:30:18.82ID:x48/o23C
終端がインクルーシブな範囲をキレイに書く方法も欲しいと時々思う。
+1するとかじゃなくて。
2017/07/21(金) 20:09:54.03ID:AHiilwYQ
(インクルーシブってなんだ・・・)
2017/07/21(金) 21:22:16.16ID:vk0S3clC
終端を+1しちゃうのはインデックスが身に付いてないから
インデックスはゼロから数えるけど、初心者は1から数えちゃうんだよ、その差だね

インデックスが身に付くとスライスは実に分かりやすい
tuple[:x] #最初からx個を抽出
tuple[x:y] #インデックスxからy-x個抽出

ね、抽出する要素数がすぐわかる
2017/07/21(金) 21:27:48.02ID:ovAWGznG
お、いいね!インクルーシブできてんじゃん
2017/07/21(金) 21:38:53.67ID:uhbq8RLc
こういう感じの辞書データがあって
dic = [
{
"price": 554,
"count": 3
},
{
"price": 750,
"count": 8
}
]

こんな風に2つに分けたい場合どうやったらスマートにできますか?
price_data = {
"price": 554,
"price": 750
}

count_data = {
"count": 3,
"count": 8
}
2017/07/21(金) 22:05:23.86ID:dtKpnH3U
最近のdictは順序を保存するようになったのだっけか。
辞書や集合は、順序を保存しないから、2つに分けたあとのは、辞書じゃなくて、リストかタプルにするのが良いと思う。
2017/07/21(金) 22:06:12.60ID:dtKpnH3U
あと、キーを重複して登録するのもできないんじゃなかったかな。
2017/07/21(金) 22:18:41.67ID:fgMeqMsm
横からだけどタプルって変更不可能なリストってだけなのかな?
イマイチ使いみちが分からない
2017/07/21(金) 22:20:07.17ID:uhbq8RLc
>>574
ありがとうございます
順序が変わるのは困るのでリストかダブルにしてみようかと思います
キーの重複は試してみたらエラーなくできました
2017/07/21(金) 22:31:13.53ID:dtKpnH3U
>576
タプルは変更したくないものを入れておくのに使えるよ。

たとえば、リストは辞書のキーにできないけど、タプルな、辞書のキーにできる。
2017/07/21(金) 22:43:09.11ID:dtKpnH3U
辞書でキーが重複してると、エラーはでないけど、最後に登録した時の値しか残らないみたいだよ。

http://ideone.com/SRSe97
2017/07/21(金) 22:46:04.66ID:VRGA9Dz3
多値返却する関数が必要なときとか
2017/07/21(金) 23:00:51.39ID:vk0S3clC
>>573
アナタ ソノジショ オカシイ
ヤリタイコト コウジャナイ?
dic={'商品名A':{'price':554, 'count':3}, '商品名B':{'price':750, 'count':8}}

priceノ ゴウケイ コウジャナイ?
sum([dic[k]['price'] for k in dic])

コンゲツ ツカッタ オカネ ケイサン スル ミタイナ
2017/07/21(金) 23:01:59.53ID:T64/yPMc
C#がタプル今更出来るようになったが超便利だ
今まで参照渡しで頑張ってたから
2017/07/21(金) 23:03:59.74ID:vk0S3clC
アイヤー ゴウケイキンガク マチガエタ アルネ
sum([dic[k]['price']*dic[k]['count'] for k in dic])
2017/07/21(金) 23:17:36.91ID:dtKpnH3U
>583
dic[k]じゃなくて k では。
2017/07/22(土) 00:04:51.69ID:pvKRJKTU
>>579
そうだったんですね。勉強になりました

>>581
すみません省いてました
json.load後の辞書データなんですが、元々はこんな感じです
dic = { '商品名A': [ { 'price': 554, 'count': 3}, {'price': 750,'count': 8}], '商品名B': [{'price': 1200, 'count': 10}, {'price': 1500,'count': 7}] }
実際はpriceとcountのセットが数十個あります

ここから商品ごとに分けてから最初のレスで書いたことをしたかったんですが

A = dic['商品名A']
B = dic['商品名B']

とやってからどうすればいいかわからなくなりました
2017/07/22(土) 00:46:11.59ID:fJRG67nz
書いてみた。
気の利いた書き方ではなくて、ベタな書き方だけど。
http://ideone.com/hLhHhK
2017/07/22(土) 05:58:14.49ID:8Krz/4V2
>>585
結局どう言うことをしたいんだろう...
price と count ってセットで持ってた方が安全だし分かりやすいとおもうけど...
2017/07/22(土) 08:51:31.00ID:uR/Z9t53
そこらへんごちゃごちゃしてきたら、さっさとクラスにした方が分かりやすかったりする
2017/07/22(土) 09:15:54.65ID:pC9M9lJW
>>585
ふむふむ、なるほどなるほど・・json? あれ?配列に辞書沢山ぶっこむのどこかで見たことあるぞォ?
キミ! >>501やないかぁーーい!!

>>> dic = { '商品名A': [ { 'price': 554, 'count': 3}, {'price': 750,'count': 8}], '商品名B': [{'price': 1200, 'count': 10}, {'price': 1500,'count': 7}] }
>>> price_data, count_data = zip(*[(i['price'], i['count']) for i in dic['商品名A']])
>>> price_data
(554, 750)
>>> count_data
(3, 8)
>>>
2017/07/22(土) 10:09:03.42ID:pvKRJKTU
>>587
このデータは1日分で毎日DBに入れていく感じなんですが
入れるテーブルがprice、count別々になってしまってるんです・・・

>>586
これがやりたかったんです!
ありがとうございます!

>>589
ありがとうございます!
zip関数は使うことないだろうと思って完全に忘れてました
こういう場合便利なんですね勉強になります
あと501は別の人です・・・
591デフォルトの名無しさん
垢版 |
2017/07/23(日) 12:29:59.34ID:rZ8AXohl
>>556
>>> def trans(w):
l = len(w)
if w[0] == 'a' and w[l-1] == 'c': return 'a' + w[1:l-1].upper() + 'c'
return w

>>> text = 'hoge abc amnc axyzc fuga abstract auuc aaac'
>>> ' '.join(map(trans, text.split(' ')))
'hoge aBc aMNc aXYZc fuga abstract aUUc aAAc'
2017/07/23(日) 13:16:23.35ID:YFCxcaSM
pyてょんの無理矢理なメソッドチェンと糞みたいなラムダ大嫌い
可読性落ちるやろ
ラムダ使わせたくなくてこんなカスみたいな文法にしてるなら
さっさとデプリケトするか削除してほしいよな
2017/07/23(日) 13:38:25.23ID:QcJiE5IU
メソッドチェインはさせる気ないだろなあ
ラムダは引数の渡し方の微妙なところをサポートする最低限の補助って感じがする
ないと困るからあるけど、あんまり多用はさせたくないという気持ちを感じる
2017/07/23(日) 14:46:15.39ID:V52hpleD
>>592
ラムダ式は馬鹿には理解できないからお前には大変だよな。
2017/07/23(日) 15:04:24.03ID:YFCxcaSM
>>594
は?
Java, JavaScriptでラムダ式バリバリ使ってますが何か?
おまんみたいなガイジとはちゃうで、いっしょにするなやw
2017/07/23(日) 16:19:09.96ID:7bD+iXj9
そうそう。ラムダ式は馬鹿が使うもの。
2017/07/23(日) 16:22:51.13ID:V52hpleD
>>595
日本語でおk
2017/07/23(日) 16:34:15.31ID:7bD+iXj9
そうそう。日本語は馬鹿には理解できないからお前には大変だよな。
2017/07/23(日) 16:41:59.55ID:mUZJPi4Q
馬鹿とかいうのやめようよ。
ラムダ式はパイソニックじゃないというだけのことだ。
2017/07/23(日) 17:18:49.67ID:YFCxcaSM
>>599
ほんこれ


>>594馬鹿には理解できないからお前には大変だよな。
2017/07/23(日) 17:46:11.23ID:0CXVLfpO
Java厨が荒らしにきたぞー、Javaだけに邪魔
2017/07/23(日) 17:57:39.88ID:7bD+iXj9
関東の文化なのかもしれないけど、ダジャレって何が面白いのかさっぱり分らないわ〜
603デフォルトの名無しさん
垢版 |
2017/07/23(日) 18:03:31.28ID:7bD+iXj9
時々、ラムダ式使えるだけでドヤ顔の奴がいるけど、vi厨みたいだよな。
やってるレベルはメモ帳と変わらないのにw
2017/07/23(日) 18:11:15.03ID:fNGuiY3b
すまんvi使えない雑魚おる?
2017/07/23(日) 18:16:15.53ID:0CXVLfpO
>>603
それはしょうがないよ、ラムダ式使うとめっちゃ気持ちええもん
関数化するまでもない関数の名前を考える労力やら行数やらがラムダで一気に解決するんやで
気持ちええやろ?ドヤ顔にもなるわ
2017/07/23(日) 18:23:53.04ID:V52hpleD
>>600
他人の意見にただ乗りするなってw Pythonの綴りもまともにかけないくせにな。静かに帰れよ。
607デフォルトの名無しさん
垢版 |
2017/07/23(日) 18:44:08.18ID:izG3yijY
λ = lambda
map(λ x: str(x), [0,1,2])
2017/07/23(日) 21:42:36.52ID:l/TRgh0y
すまん、俺Emacsしか使えんわ・・・
2017/07/23(日) 22:05:04.77ID:YFCxcaSM
>>606
俺様みたいな高価値なエンジニアが
オマエみたいなチンカス底辺土方PGに
わざわざ事細かに、それも無料で説明してやるわけねえだろ
常識的に考えて

ポインタまで指し示してやったんだから、ありがたいと涙を流すならまだしも
草生やしてこの態度

君、才能ないよ
2017/07/23(日) 22:12:33.58ID:fNGuiY3b
匿名掲示板で高価値なエンジニアを名乗るからにはせめてどこの会社かくらいは明かしてもらわないとな
そういう書きっぷりだとIBM基礎研とかを想定してしまう
2017/07/23(日) 22:38:59.72ID:V52hpleD
>>609
匿名掲示板で高価値エンジニアを自称か。頭も弱いんだなお前。
証拠は?提示無しで自称?自称で自己の発言を裏付けできるとでも思ったの?
ラムダ式の件でちょっと否定されたからって虚言、虚勢まではらんでええよ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況