くだすれPython(超初心者用) その44【Ruby禁止】

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2019/07/24(水) 21:02:48.30ID:d1IM+Tl+
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/
2019/10/05(土) 17:40:17.42ID:8eaxbCO5
プログラミング言語の最初には大抵print("Hello Work")なんてのが書いてますが、
PythonでAIのことを(ちょこっと)学ぼうとしたときの
Hello Worldに相当する作るものってありますか?
2019/10/05(土) 17:55:45.22ID:rp30F/e7
>>883
ありがとうございます
配列で渡すこともできるんですね
いやあ昨日質問した後アイコンを変えた方が見分けやすいと思って
exe化を試みたら見事にハマってしまいやっとさっき成功しました…
2019/10/05(土) 17:58:24.92ID:RY9rLLlz
>>884
Word2Vecを使って
どこだかの出してる新聞を解析した結果だったと思うファイルを教師にして
英文(聖書とかが無難じゃね?)を解析

2バイト文字は・・・がんばれ。
2019/10/05(土) 19:10:14.03ID:i7l1Y0em
>>884
ニューラルネットで論理演算
CNNでMNIST
ランダムフォレストでタイタニック生存率
MCMCで最尤推定
2019/10/05(土) 20:03:27.74ID:N/JZn/pV
ハローワークには突っ込まない
2019/10/05(土) 22:42:42.98ID:e+zF3nvf
>>884
画像系ならmnist一択
それ以外は専門外だから知らぬ
2019/10/06(日) 03:07:49.70ID:xEniyG0f
入門書はまずiris取り上げることが多い気がする
簡単すぎてつまらんデータだけど、hello worldレベルっていうならそうだろうなって感じ
2019/10/06(日) 18:28:05.79ID:vga0yYdh
irisをSVMとかで適当に分類してAI呼ばわりするのはもの凄ぇ違和感あるんですケド
MLの入門ってなら分かりますケドネ
2019/10/06(日) 19:16:37.05ID:qpx1VOF3
俺、入りたての頃、研究室の教授に
AIって難しそうなんですが、MLとどうちがうんですかー?って質問したら、
AI=MLって理解でいいぞ!逆も真で、ML=AIだ!って答えが返ってきたぞ。。。

>>891
AIはMLより一段以上うえの何かだと思ってるんだろうけど
その差はどこらへんがどのくらい?
具象化よろしく。
2019/10/06(日) 19:28:52.75ID:Poa32tbw
https://pbs.twimg.com/media/DzFdrL4XQAAKsnr.jpg
2019/10/06(日) 19:41:32.53ID:qpx1VOF3
>>893
イデーとマテリアみたいな関係ってことか
2019/10/06(日) 19:53:00.89ID:vga0yYdh
>>892
うーむ、似て非なるものでアルと考えるネ
MLが学術的な理論であるとするとAIは遊戯的な道楽ネ
2019/10/06(日) 20:00:03.33ID:qpx1VOF3
>>895
つまり895的には、
ML→樹木
AI→果実(ただしウマいとは限らぬ)
みたいな感じなのか?
2019/10/06(日) 21:03:39.11ID:xEniyG0f
自分はAIを実現するための技術の一つがMLだと思ってる

>>894
これは笑うところだよ
2019/10/06(日) 21:16:19.61ID:qpx1VOF3
>>897
(´ε`;)ウーン… 純粋情報工学系じゃないからか、
わらいのセンスがいまいちよーわからんわー
899デフォルトの名無しさん
垢版 |
2019/10/06(日) 22:06:11.34ID:1GG5Tgde
ちょっと前までコンピュータ将棋の開発者はAIかと問われても違うと答えてたけど、今ではそれもAIの一種として捉えられてるからな
方法はともかく学習要素があればAIになるんじゃないの
学習要素ないのにAI謳ってるのもありそうだけど
2019/10/06(日) 22:06:45.19ID:vga0yYdh
>>896
いぐさくとりぃ
例示上手ねキミ才能あるヨ
2019/10/06(日) 22:13:50.54ID:vga0yYdh
>>899
この間唯のゲーム理論をAIだとドヤ顔で紹介してて草生え散らかしたネ
ヒトが知能と解釈し得るか否かをAIの境界線上としているのだろうカ
902デフォルトの名無しさん
垢版 |
2019/10/06(日) 22:21:23.38ID:+SSpDwaf
AIの定義なんぞないから言ったもん勝ちだろな
2019/10/06(日) 23:01:04.91ID:qpx1VOF3
>>900
%E6%88%91%E5%BE%88%E8%8D%A3%E5%B9%B8%E5%BE%97%E5%88%B0%E6%82%A8%E7%9A%84%E7%A7%B0%E8%B5%9E

・・・文字化けするかな?
↓ならどうかな

\u6211\u5f88\u8363\u5e78\u5f97\u5230\u60a8\u7684\u79f0\u8d5e
2019/10/06(日) 23:08:56.33ID:qpx1VOF3
>>899
でぃーぷらーにんぐは人工知能的に第三世代の代表格らしいな
MLの各種手法は第二世代

>>902
統一見解はまだないの?
なんか
うすもんやりとしたものは かたまりつつあるんでないの?
寒天ゼリーくらいの強度かもしらんが。
2019/10/07(月) 19:14:20.38ID:CZdmuB5H
test変数に、exec等を使って文字列を追加しようと思った場合どうしたら良いですか?
test変数に宣言自体はexecの外で行いたいです

以下のようにすると、空白の文字列がprintされます。

test = ""
exec('test += "test"')
print(test)
2019/10/07(月) 21:38:31.21ID:aWHtMKCu
exec(f'test+={test}')
2019/10/07(月) 22:44:00.71ID:CZdmuB5H
>>906
ありがとうございます
2019/10/07(月) 23:19:37.27ID:WyRvg0cv
>>898
AIブームへの皮肉だよ

程度の低いものまでAIだともてはやされているので、研究者はAIって言葉を積極的に使おうとしなくなっている
pythonでまともに実装されてるものはまともな機械学習だろうけど、パワポで甘い言葉で囁いてくるようなのは紛いもんのAIなんじゃないかなって言うネタです
2019/10/08(火) 17:10:51.26ID:uaD7+k1O
学習機能がないものはAI と呼ぶべきではないだろう。
学習と、実行が分かれていても全体ではAI だから何の問題もない。

そういう意味では、電気釜が学習データーを利用して飯を炊いててもAIを使ってると言っても良いかもしれないが。
2019/10/08(火) 21:15:04.64ID:Y05mWx0F
この板だけがエンティティ不可なのか
いつのまにか5ch全体でできなくなったのか・・・ >>903

Wo hen rongxing dedao nin de chengzan! >>900
2019/10/08(火) 21:16:29.78ID:Y05mWx0F
>>908
解説ありがとう

>>909
>学習と、実行が分かれていても全体ではAI → 電気釜もAI搭載
なるほど!
そういえば、そうだな > AI家電は学習結果なデータだけ使ってる
912デフォルトの名無しさん
垢版 |
2019/10/08(火) 23:28:58.44ID:evevkQtI
どうみてもアスペな家電です
ほんとうにありがとうございました
913デフォルトの名無しさん
垢版 |
2019/10/08(火) 23:33:19.89ID:txbzJQbY
アステカ神殿!?
2019/10/08(火) 23:40:25.80ID:4CpPhkv4
とたんに皇后しくなったなw
2019/10/09(水) 13:19:11.41ID:vBNS6dZR
複数のリストをそれぞれsetに変換したいときって、どうするのが一番シンプルですか?
lists=[lis1,lis2...]にmap(set(),lists)みたいなのができないかなと思ったのですがうまく行きません(set化されない)
916デフォルトの名無しさん
垢版 |
2019/10/09(水) 13:36:18.22ID:sFmCi5mO
map(set, lists)
2019/10/09(水) 13:40:39.44ID:wmrCsqX1
mapの第一引数で関数自体を要求されてるのに関数を実行した結果を渡しちゃだめよ
2019/10/09(水) 13:48:04.87ID:e2ybTrrh
おぉ?
funcの引数部分は書かないのか
これmapのfuncに引数はとれないということですか?
919デフォルトの名無しさん
垢版 |
2019/10/09(水) 14:05:42.28ID:D6A8dkqU
関数の戻り値ではなく関数そのものを渡すから
(関数もオブジェクト)
920デフォルトの名無しさん
垢版 |
2019/10/09(水) 14:09:08.84ID:D6A8dkqU
mapのfuncに引数をとりたければ「引数を埋めた関数を呼ぶ関数」を渡すことになる
f(x,y)があり、map(f(•,2), list)がほしければ、

from functools import partial
map(partial(f,y=2),list)
2019/10/09(水) 14:22:06.15ID:e2ybTrrh
なるほど…勉強になりました
922デフォルトの名無しさん
垢版 |
2019/10/09(水) 15:20:00.54ID:gEtou4VA
インポしなきゃいけないの?ラムダでなんとかならない?
923デフォルトの名無しさん
垢版 |
2019/10/09(水) 17:56:11.45ID:D6A8dkqU
map(lambda x:f(x,2),list)
924デフォルトの名無しさん
垢版 |
2019/10/09(水) 19:02:19.94ID:fJHQLW8A
setどこ行った
925デフォルトの名無しさん
垢版 |
2019/10/09(水) 20:24:52.94ID:Rl3dhliI
呼び出し方の話でしょ
2019/10/09(水) 20:54:23.73ID:ZvOECUeE
partialよりlambdaでカリー化のがわかりやすい気がする。
2019/10/11(金) 13:19:03.75ID:A16fclQB
df.loc[bool_mask,[col_1,col_2...]]=[[1,2,3..],[2,4,6..]]
複数選択複数代入がやりたいんですが、やっぱループするしかないでしょうか?
2019/10/11(金) 19:09:58.82ID:3P56+Sdr
普通にできた
https://ideone.com/2zlBrx
2019/10/11(金) 21:37:52.14ID:A16fclQB
おお…更新用リストの転地の問題でした
もうしわけない
2019/10/13(日) 13:59:00.08ID:TumfHtO6
rangeの返り値ってlist型とちゃうの?
2019/10/13(日) 14:17:34.91ID:D2+OyZ4Y
range()の帰り値はシーケンス型のrange型である
つまりrange()はrange型である
932デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:24:28.66ID:llG9wcVh
>>930
python3ではそう
range型のジェネレータが返る
いちいちlistでメモリに展開するのが非効率だから
2019/10/13(日) 15:30:57.50ID:TumfHtO6
ジェネレータっぽいオブジェクトがかえってくるんすね
サンクス
2019/10/13(日) 17:10:11.96ID:T+KUU83v
python(a.py)から別のpython(b.py)を実行したんですが、どうもb.pyの処理が実行されていないようです
a.pyとb.pyは同一ディレクトリに置いています

a.py
----------
import subprocess #サブプロセス
python_file1 = 'b.py'
print("a")
result = subprocess.check_call(['python', python_file1])
print("c")
print(result)

b.py
----------
print("b")

a.py実行
-------
a
c
0

なぜb.pyの処理がされないのでしょうか?
2019/10/13(日) 17:21:11.73ID:I8cQof7f
正常に実行されたように見えるが
2019/10/13(日) 17:27:27.77ID:D2+OyZ4Y
我々の知るよしのない異空間にbが出力されている
2019/10/13(日) 17:37:40.83ID:T+KUU83v
ありがとうございます
サブルーチン(サブスレッド?)上で実行されているという事ですね

a
b
c
0

というのが期待している動作なのですが
メインルーチン上でやりたい場合には何を使えばいいのでしょうか…?
2019/10/13(日) 19:45:05.89ID:9lWPklM4
def b():を作ってメインルーチンで呼び出す
2019/10/13(日) 20:06:07.05ID:QvtX88Gt
>>937
やってみた
うちの環境では期待通りの出力が得られたんだけど何だろね
windows10 python3.5.2
windows10上のVMWareで動いてるcentos7 python3.6.8
wsl python3.6.8
cygwin python3.6..8
すべてOKだった

a
b
c
0
2019/10/13(日) 20:11:32.39ID:TKS/8hxH
>>939なにそれきもい

>>934
「パイプ」を使って吸ったり吐いたりするといいんでないかいの
2019/10/13(日) 21:08:33.73ID:37E24O6c
同じく期待通りに動いたぞ Fedora 30

$python3 -V
Python 3.7.4
942デフォルトの名無しさん
垢版 |
2019/10/13(日) 21:31:33.70ID:oUSkq72n
IDLEだと表示されないね
端末からIDLEを起動すると、b.py の出力が端末に出ているのが見える
https://i.imgur.com/g7xdagL.png

あと端末上で a.py を実行すると全部画面に出るけど、リダイレクトとかするとずれる
% ./a.py
a
b
c
0
%
% ./a.py | cat
b
a
c
0
%
2019/10/13(日) 21:49:00.46ID:mUvVkZQa
普通に関数にして呼び出したらよくね?
てか例だとサブプロセスにする意味が分からないんだけど
その順に処理したいなら関数呼ぶべきだろjk
2019/10/13(日) 21:54:47.43ID:kaSZg9r2
>>943
同じこと思ったw
関数にするまでもなく a.py を

print("a")
import b
print("c")

と書けばいいんじゃなかろうか
2019/10/13(日) 22:01:03.22ID:2cfG7zlA
なんか計り知れない思惑でもあるんちゃうか
2019/10/13(日) 22:13:04.27ID:D2+OyZ4Y
特に深い意味はなく最近知ったsubprocessを試してみたかっただけだろう
2019/10/13(日) 22:29:53.59ID:T+KUU83v
皆様ありがとうございます

>>944様の通りにしたら普通にいけました
用途的にもどう考えてもsubprocessでやるべきではなかったです
ありがとうございました
2019/10/13(日) 22:52:27.29ID:QvtX88Gt
>>942
print('a', flush=True)
にしたらリダイレクトしても期待通りの順番になった
949デフォルトの名無しさん
垢版 |
2019/10/14(月) 07:57:39.62ID:mfuSBJ/S
兄さん、catもバッファリングあるで。
2019/10/14(月) 12:19:48.52ID:MWArLfdG
最近のGNUのcatはバファリングしないみたいだよ
-uオプション(バファリングを無効にする)は残ってるけど無視される
macとかは知らん
2019/10/15(火) 00:14:25.01ID:Bai05OKm
VSCodeでpython書いてます
フォーマッタにautopep8を入れてます
関数宣言などの上に2行空白行を入れてくるのをやめさせたいのですが
何を設定すれば良いでしょうか

例として、
# say hello
def say_hello():
 print("hello.")
これをフォーマットすると
# say hello


def say_hello():
 print("hello.")
となってしまいます
宣言と、その上のコメント行との間には改行を挟みたくありません
952デフォルトの名無しさん
垢版 |
2019/10/15(火) 00:26:09.89ID:Uk3+p6qz
def say_hello():
 '''say hello'''
 print("hello.")
2019/10/15(火) 00:28:00.73ID:6JoAHvL2
>>951
関数に対するコメントはdefの下にdocstringで書く
まずはPEP8を一読して
2019/10/15(火) 01:00:53.51ID:Bai05OKm
>>952-953
ありがとうございます
ドキュメントストリング(トリプルクォート)の件はちらっと調べたりはしてました

後出してすみませんが、blender用のpyファイルをVSCodeで書いており
既存の公式アドオンファイルなどの中身を見ると
だいたいが951の通り、宣言文の上に行コメントが入っている感じなので
それに合わせたいのです(ならautopep8使うなよってツッコミはご遠慮ください)

例えばimport文の記述位置の修正(ファイルの先頭に持っていかれる)を無視する為に
--ignore=E402 を指定しています
このように特定コードを指定することで改行の件も無視できないかなと思ったのですが
autopep8 宣言前 改行 などでググっても思うように情報が出てきません
955デフォルトの名無しさん
垢版 |
2019/10/15(火) 01:07:21.98ID:Uk3+p6qz
blenderのサンプルのことは忘れろω
あれは糞だωωω

(blenderが糞とは言ってない)
2019/10/15(火) 01:17:19.59ID:6JoAHvL2
>>954
俺ならautopepをやめるw
uncrustifyでpep8用持ってきて自分好みの設定をした方が早そう
2019/10/15(火) 01:23:54.81ID:NeqDSxDF
flake8でチェックして、必要に応じて自分で修正してるわ
勝手に変更されるのが嫌なので
2019/10/15(火) 01:38:14.63ID:72mqelru
保存時フォーマット+手動フォーマット派だな
理由はこういう時こまるから
道具に遊ばれてるのほどばかばかしいこともない
2019/10/15(火) 11:35:47.48ID:ntxaWRsX
PEP8に従えないならpythonを辞めた方がいい
君には宗教は向いてない
もっと別の言語を探すべきだ
2019/10/15(火) 12:06:17.46ID:YTs2ZIZB
PEP8順守しないと
同じことするコードは
誰でも同じようなコードになり読みやすい(はず)
といううりにしているメリットが壊れる
961デフォルトの名無しさん
垢版 |
2019/10/15(火) 12:28:19.23ID:/7eSP3bX
「Pythonで書くと同じことするコードは誰でも同じようなコードになり読みやすい」
このカンバンは嘘だった!
特定のコーディングルールを守れば、という条件を付けるのであればどんな言語でも同じじゃんwww
2019/10/15(火) 12:33:26.16ID:PCFM8zGG
キッズは自殺してろ
2019/10/15(火) 12:45:38.61ID:iZY+JTOL
dストの位置でコードの読みやすさなんてノミのクソほどしか変わらんだろ甘えるな
2019/10/15(火) 12:57:41.28ID:LXkkA+L3
>>961 python のコーディング規約がPEP なんだからか守るべきだよ。
2019/10/15(火) 13:04:44.56ID:LXkkA+L3
3.8 がリリースされたな。

:=というオペレータが導入され、<変数> := <式>の形で変数への代入を式に埋め込むことができます。この表記をnamed expression(名前付き式)と呼ぶようです。



length = len(s)
if length > 3:
 print(length)
else:
 print('too short')

これは

これはこのように書けます。
if (length := len(s)) > 3:
 print(length)
else:
 print('too short')

余談 := はセイウチ演算子 walrus operator
と言うらしいな。両目と牙の形に似てるからだと
966デフォルトの名無しさん
垢版 |
2019/10/15(火) 14:24:13.16ID:nuB7xRPW
じゃあせめて :3= くらいやってくれないと。
2019/10/15(火) 14:43:12.22ID:iJLx9DXs
それじゃあエルビスにひげがついたようなもんだろ
2019/10/15(火) 15:08:50.02ID:ntxaWRsX
パスカル代入子でいいんじゃねえの
2019/10/15(火) 15:42:32.14ID:4VeqxDxA
>>966
バカボンのパパ演算子
2019/10/15(火) 15:45:01.35ID:PY4hsy3Z
:)
2019/10/15(火) 15:50:21.31ID:7esu9lml
execとevalの違いが良くわからないんですが、どっちが優秀なんですか?
2019/10/15(火) 15:58:02.76ID:ntxaWRsX
ttps://sicp.comp.nus.edu.sg/chapters/img_javascript/sicp.png
このオサンが持ってる通り
973デフォルトの名無しさん
垢版 |
2019/10/15(火) 16:02:48.63ID:cAxXsgrc
そんなにevalなよ
弱くなるぞ
974デフォルトの名無しさん
垢版 |
2019/10/15(火) 19:40:19.04ID:UuW7b2Cm
blender の python バージョン上がらんかな
ソースからビルドすれば好きなバージョンに出来るらしいが
まんどくせ
2019/10/15(火) 21:27:29.85ID:Bai05OKm
>>955-958
とりあえずignore設定で対処してしまいました

今後他にも煩わしい点が出てきて面倒になったらautopepは辞めて他の手段を探します
uncrustifyはメモっておきます
ありがとうございました
2019/10/15(火) 23:13:36.56ID:h8wIShZn
そこまでして間違ってる方のテンプレに合わせないと気が済まないとか病気だろ
なんとか障害ってやつ
2019/10/15(火) 23:57:18.52ID:LXkkA+L3
>>975 そこまでしてblender のコメント方式に合わせる必要性があるの?

Python の関数のコメントなら docstring を使うべきだろ。
help(関数名) でdocstring が出るし、Vscode でもサポートしてるし(autoDocstring)。

https://qiita.com/firedfly/items/00c34018581c6cec9b84
2019/10/16(水) 03:15:06.56ID:Ia5ZcaaY
他の言語ではスクリプトの上の部分にforなど使って処理を書いていました。
そして、下の方にサブルーチンを大量に作ってそこから適宜読み出していました。
このようにすると、上部を修正するだけでスクリプトが簡単に編集できるためです
Pythonだとサブルーチンを上部に書くとエラーが出ますが毎回ホイールで下に移動して書き直すのは不便ではないでしょうか?
慣れれば普通ですか?

また、Pythonではインデントに空白を使う人が多いようですが、
エディタの設定で改善されるかもしれませんが、うっかりDelやBackSpaceで消すとイ
ンデントがずれたりして嫌なのですが慣れますか?
2019/10/16(水) 06:59:57.67ID:r4KKfSye
別にpythonに限らずネストの深さでインデント揃える癖ついてたから気にならなかったわ
可読性的にも癖つけた方がいんでない?むしろ今までどうしてたのか気になる
980デフォルトの名無しさん
垢版 |
2019/10/16(水) 07:17:18.25ID:n7nWPnDS
python 3.8.0 で import win32clipboard を実行しても、以下のようなエラーが出る。
ImportError: DLL load failed while importing win32clipboard: 指定されたモジュールが見つかりません。

python 3.8系はしばらくインストールしないほうがいいカモ。
2019/10/16(水) 08:59:50.72ID:Mi1dGaVf
>>978 > Pythonだとサブルーチンを上部に書くとエラーが出ますが

def で宣言する関数の事を言ってるんだよね? エラーなんて出ないけど。 関数呼び出しを先に書くとと言う話?

インデントについてはIDE で面倒みてくれるだろ。何を使ってる? 
下の方に関数呼び出しがあっても何ら不都合はないよ。
2019/10/16(水) 10:15:15.19ID:dCHq3Ix4
>>978
WindowsならCtrl+F
MacならCommand+Fで
検索ウインドウが出るから
いちいちホイールコロコロしなくても
行きたいサブルーチン名さえわかってれば
一気に移動できる

>インデントに空白
どーしても宗教的理由とかでお嫌なら
タブで統一してもいい。
ただし、
どーしても長い行を分割して書かざるを得ない場合の
後半行のインデントにも
空白ではなく、タブを使うことになる。
2019/10/16(水) 10:17:42.14ID:dCHq3Ix4
くだすれPython(超初心者用) その45【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1571188632/
2019/10/16(水) 10:27:55.66ID:kX3OMluf
いちいちスクロールして使ってるな〜
今ちゃんと動いてるから触りたくないけど関数だけ別ファイルに分けれるんだよね?
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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