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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/04/16(火) 15:44:21.69ID:jL0dd/ry
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

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

エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

※前スレ
くだすれPython(超初心者用) その42【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1552884175/


◆PythonのHome Page
http://www.python.org/

◆まとめwiki
ttp://python.rdy.jp/

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
790デフォルトの名無しさん
垢版 |
2019/07/02(火) 09:42:11.63ID:qm4QtJRg
だからpyenvは、仮想環境じゃないって。
2019/07/02(火) 10:08:47.61ID:UGSnT5gw
>>785
それで問題無い。他が違うんじゃないの?
>>788の言うようにエラーを貼った方がいい。
2019/07/02(火) 13:57:20.85ID:AVt3cDXd
Python にも、JVM的なものってあります?
JavaのUIライブラリやグラフィックライブラリだと、ネイティブメモリと、バーチャルマシンのメモリで二重にメモリ確保してたりすることがあるらしいんですよね
Python だと、その辺どうなんでしょうか?
2019/07/02(火) 14:44:52.25ID:9xMANyeE
pythonでトランプとかギャンブル系ゲーム作るとして
この手は弱いから降りるとか強いから降りないとか判断させるのって機械学習でできますか?
2019/07/02(火) 14:52:46.60ID:NqAwj9wC
はい。
2019/07/02(火) 17:10:58.05ID:EIrkP3Yf
>>792
たぶんそのJavaのライブラリはJava側にもバッファを持つことでネイティブ境界を跨ぐコストを避けてJava側のメモリアクセスを高速化しているのだと思うが、
Pythonの場合、どうせPython側はビチグソゲロカス遅いから、ネイティブ境界を跨ぐコストなんて気にしないで素直にネイティブのラッパーとして実装しているケースが多いと思う
2019/07/03(水) 12:05:00.43ID:XRQdtmsk
インタプリタとVMの違いとは
797デフォルトの名無しさん
垢版 |
2019/07/03(水) 13:58:53.15ID:aJKbsp3m
Juliaいまいち
798デフォルトの名無しさん
垢版 |
2019/07/03(水) 18:58:42.88ID:bwB/1CfS
pipenvなりで仮想環境?を切って外部モジュール入れて開発して、実際にサーバ側で動かすとなったときはサーバ側のpython環境はどうするのが一般的なんでしょうか?
開発時と同じようにサーバ側でも仮想環境を復元してその中から動かすのか、それとも直接必要なモジュールを入れてしまいますか?
799デフォルトの名無しさん
垢版 |
2019/07/03(水) 19:26:37.10ID:A6HAo2Tb
s = '''
5
2 4
5 6
'''
s=s.strip()

sを1行ずつinput()で受け取りたいけど
どうするの?
2019/07/03(水) 19:31:38.05ID:XEr4jr+a
まずそれを標準出力に出力してください。
そのあとinput()書いた別のプログラムにパイプで繋げばいいんじゃないですかね。
801デフォルトの名無しさん
垢版 |
2019/07/03(水) 20:06:50.90ID:I+RRGz+c
>>798
ケースバイケース
pipenvを使って構築したならPipfileやPipfile.lockを活用した方が良いかな

具体的には pipenv --venv で環境のパスを探して
そこの下にあるpython (上のディレクトリ/bin/python) を呼び出す
2019/07/03(水) 20:39:37.44ID:bwB/1CfS
>>801
pipenv等の導入と環境の復元を本番環境でやる流れなんですね
了解しました、ありがとうございました
2019/07/04(木) 01:55:37.75ID:dmN6gmzS
>>792 PyPy か、numba
2019/07/04(木) 12:26:02.77ID:Vs8N23YM
1個の辞書 {'V':'S001'} からキーを指定せず要素 S001 を取り出したい場合
for  values() を使う方法以外にありますか?
1個だけなのにループ使うなんて大げさな感じがします 
in_data = {'V':'S001'}
for val in in_data.values():
print(val)
2019/07/04(木) 12:41:40.78ID:q9fbcnNb
values()使わないと実質的にキー指定するやり方以外ないので諦めてください
806848
垢版 |
2019/07/04(木) 12:46:37.77ID:hN0TQEZ6
VBしか出来ないけど、Python初心者勉強会に行ってくる。
2019/07/04(木) 12:53:19.27ID:bkEmV9J8
tuple({'V':'S001'}.values())[0]

ループ使ってないぞw
808804
垢版 |
2019/07/04(木) 13:16:36.97ID:Vs8N23YM
ありがとうございます
values() は必須みたいですね
>>807 で記述してみます
809デフォルトの名無しさん
垢版 |
2019/07/04(木) 13:19:00.86ID:rn94pQkX
普通にfor使ってくれ
810デフォルトの名無しさん
垢版 |
2019/07/04(木) 13:29:17.39ID:rn94pQkX
>>804
v = in_data[in_data.keys()[0]]
811デフォルトの名無しさん
垢版 |
2019/07/04(木) 13:36:16.23ID:rn94pQkX
イテレータでインデックスつかえん?
2019/07/04(木) 14:10:39.44ID:9RajGdl+
>>804
お前みたいな素人は黙って動くコード書いとけ
下手くそなのに綺麗なコード書こうとか意識してんじゃねえよ
2019/07/04(木) 14:14:00.68ID:NOiQUdad
[*イテレータ][インデックス]

デメリット
イテレータの意味がない
2019/07/04(木) 14:19:06.77ID:qVJay6PU
>>811
最近のパイソンでは辞書型になってるよ
815デフォルトの名無しさん
垢版 |
2019/07/04(木) 14:27:27.47ID:A1MeIwQ8
順序が保証された3.7でも、keysもvaluesもインデックス使えないね。
なぜそうなっているのかは意味不明。
3.6までなら、当然だと思うけど。
2019/07/04(木) 14:36:33.71ID:qVJay6PU
辞書型じゃないや
dict_keys 型だ
2019/07/04(木) 14:40:03.38ID:bkEmV9J8
>>816
違う
dist_valuesだw
2019/07/04(木) 14:42:12.98ID:bkEmV9J8
あ、ゴメン810はdist_keysだな
2019/07/04(木) 16:11:54.53ID:q9fbcnNb
「イテレータでインデックス使えないんですけど」とか言われても
「それ配列じゃないんで」以上の返事は返せないのだが
2019/07/04(木) 16:25:53.13ID:q9fbcnNb
イテレータじゃねぇわジェネレータだ
まぁどっちにせよそれ配列じゃないから
2019/07/04(木) 16:50:58.78ID:vGw4d28b
Ruby では、Enumerator に、with_index をつなげると、
ブロックに、index が渡ってきて、自動的にインクリメントしてくれる

str = "abc"

enum = str.to_enum( :each_byte ) # Enumerator
enum.with_index( 10 ) { |byte, idx| p [ byte, idx ] }

出力
[97, 10]
[98, 11]
[99, 12]
2019/07/04(木) 17:21:40.07ID:NOiQUdad
>>811
for i, v in enumerate(イテレータ): print(i, v)
2019/07/04(木) 18:15:20.61ID:cYrU6kRX
next(in_data.values())
824デフォルトの名無しさん
垢版 |
2019/07/04(木) 19:11:09.36ID:VpXpLSzf
(_ for _ in d.values()).__next__()
2019/07/04(木) 19:38:21.77ID:xkNTx6E6
未だpython2の使用者多数なんだな
826デフォルトの名無しさん
垢版 |
2019/07/05(金) 02:34:33.62ID:Ro+0MiKn
>>804
パズルとして

d={22:44}
print(d[list(d)[0]])
827デフォルトの名無しさん
垢版 |
2019/07/05(金) 11:15:34.36ID:SLYFNUzn
おまいら問題を良く観ろω
for と .values() は禁止だ
2019/07/05(金) 13:41:06.10ID:+NvS7zWZ
クソ言語よけ御守りリンク

フリーランス向け新規案件のプログラミング言語、「Python」がシェア拡大、ブロックチェーンや機械学習などの需要増で
https://internet.watch.impress.co.jp/docs/news/1194/299/index.html

https://internet.watch.impress.co.jp/img/iw/docs/1194/299/program01_o.jpg
2019/07/05(金) 15:50:46.12ID:2wwKU1Zf
国内でももうすぐPythonがRubyを抜くのか
数年前からすると嘘のようだ
830デフォルトの名無しさん
垢版 |
2019/07/05(金) 15:56:34.19ID:jTjvlXfo
こんなチャラついた本が今やバイブルだからね
https://pbs.twimg.com/media/DbISZc8UQAM5J0n.jpg
831デフォルトの名無しさん
垢版 |
2019/07/05(金) 16:10:54.11ID:E627G8NI
柴田淳て、シンガーソングライターじゃん。
2019/07/06(土) 09:11:27.43ID:Qorx3cLN
>>830
爆笑注意
2019/07/06(土) 10:57:23.13ID:MhitVE0d
>>831
ジュンではなくアツシだな
2019/07/06(土) 12:27:18.96ID:o0MaAedS
>>830
ヘビの形をしたグミキャンディーが入っている袋みたいだな
835デフォルトの名無しさん
垢版 |
2019/07/06(土) 22:29:26.59ID:V7qJrGLH
pythonの環境構築して簡単なサンプル文言の表示までできた。
エディタはvisual studio codeを使用している。日本語化もできている。

excel vbaを少しかじったことのあるので、文言の表示やらループやら辞書やら
基本的文法はある程度理解できた、つもり。

pythonを触ってみて、感動したのは、excel vbaと同じく変数名を「日本語」で書けること。
pythonを使ってexcel操作できるようにしたい。excel vbaを学んでいるのでvbaでカバーできないところを
pythonで補うといった感じです。excel vbaとpythonとの連携動作を記述できれば。

あとは、GUI操作の自動操作にも興味あるのでその辺も勉強したい。
2019/07/06(土) 22:38:02.66ID:NPkITZNc
今時日本語で変数が書けない処理系の方が珍しいぞ…
2019/07/06(土) 23:25:23.47ID:bsIX/mec
>>835
変数名を日本語でってピュウ太か?
これ使え
https://codic.jp/
838デフォルトの名無しさん
垢版 |
2019/07/07(日) 00:24:29.90ID:6d9beYOR
>>837
それ便利ですね。日本語→変数名にふさわしい英語に変換してくれるという。

excel vbaでは、データ列の最後の行を、「最終行」として変数名として扱ってたな
最終行→last_row
うん、こっちのほうがしっくりする。
2019/07/07(日) 01:00:42.10ID:NyuAb8QR
エラーが出た
come_out_error

なんか違うような気がするが
2019/07/07(日) 04:38:17.24ID:3OgHoYyt
エラーが出たならAn error has occuredみたいに変換されるといいな
2019/07/07(日) 06:39:15.75ID:df0YNjPg
>>837
ネタサイトにしか見えないんだけど
本気でやってんのかな?
842デフォルトの名無しさん
垢版 |
2019/07/07(日) 06:50:29.22ID:6d9beYOR
入門サイトで、pythonの最新版3.7.3に即したサンプルコードが掲載されているおすすめのない?
探しても、2014年に更新したものとか、そのままでは流用・改造ができない。

具体的には
printに()がつけるのがデフォだg、
昔は()つかなかったらしい。
バージョンによってコードの書き方が若干変更されている。
843デフォルトの名無しさん
垢版 |
2019/07/07(日) 06:55:40.96ID:6d9beYOR
今日は辞書・リスト・タプルの習得と、クラスを知識レベルで習得しようかな。
クラスはC++を業務で限ったことあるから、クラスに出てくるデストラクタとか基本的な概念は理解しているつもり。
最終目標はExcelとの連携動作を記述できることなので、
クラスを使うケースがなければ、無理に覚える必要はなくて、こういうのがあるんだというレベルで知るにとどめておく。
2019/07/07(日) 07:23:24.94ID:mSdQU3QE
>>842
> 昔は()つかなかったらしい。
> バージョンによってコードの書き方が若干変更されている。
python 2 3 違い
とかでググれ
845デフォルトの名無しさん
垢版 |
2019/07/07(日) 11:47:09.69ID:L+nDH+Yy
python2 は print(hoge) で動く
python3 は print hoge で動かない

python2 の方が python3 より上位互換
2019/07/07(日) 11:52:57.89ID:uDPpxHKD
へえそうなんだ( ´??,_ゝ`)プッ
847843
垢版 |
2019/07/07(日) 12:13:51.63ID:6d9beYOR
タプル学んだが、一度決めたら変更が効かない点から、C言語でいう文字列定数みたいなもの?
848デフォルトの名無しさん
垢版 |
2019/07/07(日) 15:40:57.19ID:AW0chvBU
>>847
違う
849デフォルトの名無しさん
垢版 |
2019/07/07(日) 16:17:26.18ID:H2KGiSek
>>847
C言語の文字列定数は:
 「文字型を要素に限定した不変な配列(immurable array of char)」

Pythonだと:
・タプル:任意の型を要素とする不変な配列(immutable array of any type)
・リスト:任意の型を要素とする可変な配列(mutable array of any type)

要素の型が文字に限定されないという点では誤りだけれど、
不変な配列という意味では正しい認識
850デフォルトの名無しさん
垢版 |
2019/07/07(日) 16:25:54.66ID:TBcO9UCS
>>849
ご高説どうも。
851デフォルトの名無しさん
垢版 |
2019/07/07(日) 23:20:02.50ID:bDhdwGYb
どちらかというと*byのシンボルω
2019/07/08(月) 02:40:22.13ID:phh4eDfS
皆さんide何使ってますか
pycharm使ってたんですが無料版にはリモートデバッグ機能が無いようなので新しいの探してます
2019/07/08(月) 07:51:54.77ID:Vrb0WxW4
もちろんVSCode
リモートデバッグは当然として、リモート側でheadlessなVSCodeを動かして
手元のVSCodeと接続して操作するという完全なリモート開発も可能
2019/07/08(月) 07:53:59.44ID:02UbU8F7
>>852
リモート先がx86_64のLinuxならVSCode Insiderがいいよ
armのLinuxならリモートデバッグは諦めて普通のVSCodeにSSHFSを入れる
855デフォルトの名無しさん
垢版 |
2019/07/08(月) 21:35:16.66ID:jEymYemJ
大手でも無料でライセンス気にせず仕えるIDEって純正だけ?
2019/07/08(月) 22:13:48.41ID:QxTYEHIL
IDEと呼べる程度の機能性を備えていてライセンスを気にせず使えるのはVSCodeだけだ
857デフォルトの名無しさん
垢版 |
2019/07/08(月) 22:23:37.52ID:k/SnQUmG
IDE必要なのって初心者の間だけやろ
2019/07/08(月) 23:25:25.65ID:vrBMhLfl
テキストエディタでinput()とか、exit()を挿入して、デバッグしてるわw
2019/07/09(火) 06:08:26.19ID:3mX8U6Cl
>>857
インラインデバッグができると効率が全然違う
2019/07/09(火) 06:57:51.96ID:63ZmNVzI
IDE使ってない人はホント開発とろい。
40年近いPC触ってるが、今の時代でIDE使わないってアホ。
200万以下の振り込みに印鑑もって銀行窓口に行くぐらいボケた行為。
2019/07/09(火) 07:43:45.55ID:IMl4I771
PythonってVisualStudioで使えるのか知らんかった
2019/07/09(火) 09:30:09.62ID:/DytT2GI
VisualStudioのターミナルで全部インストールしてPython使い始めたな
VisualStudioOnlineでたらそっちに乗り換える
2019/07/09(火) 12:20:40.11ID:VtjrtSED
VisualStudioOnlineはVSCodeのWeb版
VisualStudioとは全くの別物
まあターミナルとか言ってるから今使ってるのもVisualStudioCodeなのかもしれないけど
2019/07/09(火) 13:02:30.95ID:/DytT2GI
クラウド版みたいな感じ?ブラウザで使えるならいいな〜と
今もソースはGoogleドライブに置いていろんなとこから使ってるし
865デフォルトの名無しさん
垢版 |
2019/07/09(火) 13:50:15.68ID:4DF3AYrW
d1 = str(date2.time())
print(d1)

d2 = ("03:59")
d3 = ("04:15")
print(d2,d3)

if (d1 < d2 and d1 > d3):


すみません、
午前の3時59分から、
午前の4時15分までの間は、
処理をしないようにしたいのですが、
d1で現在時刻を取得して文字列に替えて、
d2とd3と比較はできるようになったのですが、

if (d1 < d2 and d1 > d3):

このように書くと、間じゃないみたいです、
どうやって比較すればいいでしょうか?
2019/07/09(火) 14:25:19.58ID:VtjrtSED
if not (d2 <= d1 and d1 <= d3)
867デフォルトの名無しさん
垢版 |
2019/07/09(火) 14:40:07.27ID:4DF3AYrW
>>866
ありがとうございます、
条件を理解するのが難しいけど、
整理して使ってみます。
868デフォルトの名無しさん
垢版 |
2019/07/09(火) 15:01:56.54ID:/r7FFq5T
if not (d2 <= d1 <= d3)
if not (d2 <= d1 and d1 <= d3)
ド・モルガンの法則で
if d1 < d2 or d1 > d3
一番上のpython流のbetweenが好きな人もいれば、下の様にnotがない方が好きだという人もいるだろう。
869デフォルトの名無しさん
垢版 |
2019/07/09(火) 15:14:16.34ID:4DF3AYrW
>>868
おお、これなら馬鹿な頭でもなんとなくわかる。
2019/07/09(火) 18:10:43.88ID:8Y9GhXx/
>>865
文法とか表記云々よりそもそもandなのがおかしいよね
意図を満たすのがそもそもorでpythonどうこうの問題ではない
難しいなら一度ただの数字で整理した方がいいよ
d1=15
d2=20
d3=30
d1 < d2 and d1 > d3
⇔15 < 20 and 15 > 30
こうなるから満たすものが存在する訳がない
2019/07/09(火) 18:21:33.04ID:8Y9GhXx/
ちなみに証明ちっくに書くと
d1 < d2 and d1 > d3なので
d2 < d3と仮定したなら
⇔d1 < d2 < d3 and d1 > d3
⇔d1 < d3 and d1 > d3
d3より小さくてd3より大きいd1は存在しない
つまりd2 < d3の時この条件式は常に偽になる
872デフォルトの名無しさん
垢版 |
2019/07/09(火) 18:23:55.43ID:/Im6pThz
エサを与えないでください
2019/07/10(水) 08:46:04.59ID:StxWbt+s
1 < 2 < 4
と書けるのは長所(書いていて綺麗
874デフォルトの名無しさん
垢版 |
2019/07/10(水) 11:22:25.05ID:bzIzkqr1
PythonでIDE使うメリットった何がありますか?
補完と環境構築以外で教えて下さい
2019/07/10(水) 11:34:41.87ID:Hd0tiH3+
>>874
デバッグ
2019/07/10(水) 12:38:03.96ID:y6DBJPnI
くっそどうでもいいんだけど
その条件てd1が23時でd3が1時の時動くのか?
2019/07/10(水) 15:44:01.80ID:StxWbt+s
78行制限とか厳しいから
そういう条件を取り除く何もしない if は
ネスト深くしないため、頭の中から考える必要なくすために
早めの return などで処理したい
https://qiita.com/DeployCat/items/1ec901864d4ab11c8d6f
2019/07/11(木) 09:33:26.22ID:Jsiub1Yy
VSCodeスレで回答が無かったので、こちらに来ました

VSCode + PythonでNumbaって使えますか?
https://qiita.com/fam_taro/items/df4487bbc2767c630247
を試してみても、 @numba.jit('f8[:, :](f8[:, :], f8[:, :])', nopython=True) で
Traceback (most recent call last):
と、出てしまいます。 (引数はndarrayの2次元配列が2つ)
2019/07/11(木) 10:56:54.03ID:peQvCeN+
そこから先のエラーメッセージが重要なのだが
2019/07/11(木) 11:04:29.04ID:P/QLghj/
試してみたけど普通に動きすぎてよくわからないな
2019/07/11(木) 14:07:10.75ID:Jsiub1Yy
>>879-880
回答ありがとうございます。
後ろのメッセージでググってみたところ、同じ表示がありました。
https://qiita.com/osakb/items/31dd7e316262a445eb1e

こちらの場合はtry-catchは使っていないのですが、Tensorflowを使っています。
恐らくどこかで型推論が出来ない変数があると思われるので、別の方法を考えてみます。
882デフォルトの名無しさん
垢版 |
2019/07/13(土) 13:56:16.67ID:i8nNEdza
プログラム自体を始めたばかりなので、問題と思ってるところが間違ってるかもしれませんが、
pyinstallerでexe化する時に、-F -wの両方のオプションをつけると動作しなくなるのは何故でしょうか?
https://ideone.com/XonqyH

動作しないというのはPingが実行されていないという事を指しています。
2019/07/13(土) 16:34:09.13ID:DRXUTE7G
pyinstallerは知らねーけど、その質問の仕方は将来有望な気がする
2019/07/13(土) 16:51:55.15ID:hDbPSxS0
>>882
確定的明らかに-wオプションがわるいはー

noconsoleって指定しちゃったら、
stdoutのやり場(通常はコンソールウインドウ)がないんだものー
2019/07/14(日) 12:37:05.16ID:N4qlo06X
>>884
解決しました、ありがとうございます。
stdin,stdour,stderrすべてをパイプで繋いでおく必要があるという結果でした。

pyinstallerで-F(onefile)のオプション付けなければ動作していた為に原因の理解に苦しみましたが、
標準入出力がおかしいから失敗する(というかそもそも実行されない)という事っぽいです。
動くように変更したもの
https://ideone.com/ARUMCf
※stdinのパイプ追加と該当箇所のコンソール非表示フラグ追加
 どうでもいい箇所ですが、cp932を打ち間違いしてたのを修正
2019/07/14(日) 12:48:51.37ID:Vth+AAHG
プログラミング初めたばかりでこれか
レベル高すぎるだろうw
これが天才というヤツか
2019/07/14(日) 13:53:06.28ID:KXjmoduh
>>885
うごいて乙!
きれいなコード乙乙!

>標準入出力がおかしいから失敗する
>stdin,stdour,stderrすべてをパイプで繋いでおく必要がある
そうなのね!!!
こちらも勉強になったは!
2019/07/15(月) 00:15:27.25ID:F1ZNqXan
spyderで動くのにexeにするとエラーはく
python3.7 matplotlibとnumpyは最新
2019/07/15(月) 03:41:00.15ID:UhaL6z6d
昔の一時期はAIといえばLISPとかだったりもしたけど
今や知る人もあまりない死語だろうな
今はディープラーニングでPythonだったりするんだろうか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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