くだすれPython(超初心者用) その43【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
★当スレに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/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−− 盛大に使い方を間違ってるように感じるので
おまえのソース貼れ ソース貼ります
http://dpaste.com/1H9XHKT
ウインドウ閉じたらというか次のウインドウを開いたときにメッセージが出てるようです tkinterで、文字列の入力と編集が行えるテキストボックスへコードを使って文字を入れようとしました。
tkinter.Entry(root).insert(tkinter.END,"\a")と書くと、\aがテキストボックスに入るはずなのに、□のような文字化けした変な文字が入りました。
\aが正規表現か何かに判定されてしまったのでしょうか。
insertを使って\aをテキストボックスへ入れるにはどうしたらいいですか? ちなみに、環境はwindows10で最新版のpython3です。
\aとか\bをinsertを使ってテキストボックスへ入れようとした場合だけ変な文字化けします。一方、\Aや\cや\zの文字列はinsertを使ってそのまま忠実にテキストボックスへ入ります。
これって何ですか? \\aとすりゃーいい
\aは界隈ではアラームを示す
昔の汎用機やらタイプライターの横に付いてるベルがチーンと鳴ると思えばいい レスありがとうございます。
print("\007")とかprint("\a")とかで実行するとpc環境によってはビープ音が鳴る仕様みたいですね。 >>725
いくら未経験OKの現場でも、このスレでそんなこと質問しているような奴は使いたくないと思われる 質問させて下さい
Visual Studioでコードを書くと赤い波線が一部につく様になりました
該当の箇所を削除しても別のところに新しくついてしまいます
プログラムを実行すると
NameError:name”赤波の該当箇所”is not defined
と表示されます
print()を使った簡単なコードでも発生する様になってしまいました
特に設定を変えた様な事はないのですが、非常に困ってます
解決策分かる方はご教示お願いします >>720
ご丁寧にありがとうございます
エラーメッセージが出なくなりました
.after_cancelですか…初めて見ましたw >>727
指定されてる実行環境が壊れてたりしないか
新しくPythonインストールして、そこを実行環境に指定してみたら Hello Worldを出力するのは問題無くできました、すいません
質問の該当のエラーは
SyntaxError:invalid character in identifier
というものです 自己解決しました
コードの横にコメント記載していたのですが
そのコメントの列を揃える時に全角のスペースが混じってました
全てスペースを半角にすることで、問題なく動きました
スレ汚しスマソ >>731 良いってことよ、良くある話。
大抵は、: や’’ () などの対応ズレなどが多いな。 ここで質問していいか分からんのだが質問させて
ある並列処理をしていないプログラムを、複数のターミナルで同時に実行した場合のCPUの使い方ってどんな感じになる?
もしマルチコアの意味があるならいいCPU買おうと思うのだけど >>733
間違いなくスレ違いだけどコアの多いCPU買っていいよ
異なるターミナルで立ち上げたソフトウェアは特別なことがされてない限りプロセス単位で処理が走る
プロセスをどのCPUに割り当てるのかはOSの仕事でコアがたくさんあれば最近のOSは忙しくないコアに処理を投げてくれる シングルスレッド処理でCPUを100%使うプロセスならコア数分だけ並列実行したら単純にコア数倍早くなるよ
基本的にはマルチスレッドを使うよりもシンプルでスケールしやすいので好ましいやり方
元々並列化されているライブラリを使ってるなら速くならない場合もあるけど メモリ不足や同じディスクへのアクセスにも気をつけましょうね プルグラム動かして寝てたら、
メモリ不足で停止してた、
クラウドで動かしたほうがいいのかなぁ C++に移植してメモリ管理を自分でやる
昔懐かしの汎用機でタイムシェアリング……の亜種でも相手側のクラウドがよしなにしてくれるワケじゃない
メモリ不足になったら止めてくれる、ただそれだけ 実行環境の問題じゃない
どう考えてもプルグラムが悪い 長時間稼働させる場合にはPCに掛かる負荷も考えてプルグラム書かなきゃいけないしね Pythonで、二次元配列だけども要素数が異なる配列はどの様に作るのが良いのでしょうか?
例えば4列で要素数が4,3,2,1と一つずつ減ってく、以下の配列の作り方を教えてください
[[0,1,2,3],
[0,1,2],
[0,1],
[0]] 何がしたいのかは知らんけど、たぶん配列にする必要ないんじゃない? a = [0,1,2,3]
b = []
l = len(a)
for i in range(l):
____b.append(a[0:l])
____l -= 1 まぁ実際にやるとしたら[[x for x in range(i)] for i in range(4,0,-1)]でできる
やる必要性はわからない 馬鹿は必要性とか考えなくていいんだよ
アホみてーに俺の質問にだけ答えてろ >>731
全角スペースいれちゃうようなら
Ricty フォントの導入など全角スペースが見える方法模索したほうがいいな tqdmでプログレスバーを同じ行で更新するように表示させてるんだけど、途中から改行されて表示されるようになることがあるんだが何か理由知ってる人いないか?
パラメータはleave=Trueだけ設定してる状態 アナコンダぱいちんくんはアップデートすると
Spyderが動かなくなったりするから困るよ コンソールの最大幅とプログレの最大幅をconfig 空の__init__.pyの必要性って何?
検索トップに表示される内容がことごとく実際に動かした挙動と異なる。
情報が間違えてるか、情報が古いような気がする。
最新版で空の__init__.pyを入れる意味ってある? パッケージの対象範囲が3.3より新しい場合はなくてもいい
ただ__init__.pyありと__init__.pyなしでは厳密には違う動きをするので注意されたい
https://docs.python.org/ja/3/reference/import.html
公式ではない記事は夕刊ゲンダイ(ゴシップ紙)くらいの認識で読むこと 統計検定2級持ってる高卒だけどPython勉強すればAI系の仕事つけるかな?
HTMLとCSSとjsはある程度わかる
数学活かすレベルまで到達するのってやっぱり大変? >>756-757
公式もちゃんと書いてないような気がする・・・・
公式に書いてることを簡単に言い直せば、
3.2以前は__init__.pyがあることで、そのディレクトリがパッケージ化されてimportでき、
3.3以降は__init__.pyが無くとも、sys.pathを利用すればimportできる。
でも、__init__.pyが無くとも、sys.pathを利用しなくとも、下位のディレクトリはドットで指定すれば普通にimportできる・・・
空の__init__.pyがある場合だけインポートできるケースが見つけられない。 というかネットに限らず本もいい加減だな
「python文法詳解」というちゃんとしてそうな体裁の本を読んでるけど
「__init__.pyを置くことでそのディレクトリがパッケージ化されてimportできる3.2以前の方法に加えて、3.3以降ではsys.pathを利用する方法を追加した」と読める風に書かれてある。
でも__init__.py自体があっても無くてもインポートできるものはインポートできるし、インポートできないものはインポートできない。
3.2以前の方法は廃止されてパッケージ化に限っては__init__.pyが仕様変更されてるんと違うのか。 >>761
暗黙より明示とかカッコいいこと言っといてここら辺の仕様って恣意的で暗黙で覚えにくいよね… 公式は直訳だから抽象的だよな
直訳は元の英語文が持つ抽象性を極力維持したまま翻訳するし
翻訳することで日本文の抽象性も足される
だから直訳すると抽象的すぎてわけワカメになる
一方意訳は訳者なりの解釈を経て踏み込んで具体化されるから分かりやすい
直接的には書かれてないことを踏み込んで原語の意図を解釈するわけだから
原語の意図を読み間違えると「そこまでは言ってない」とか批判されることもあるが >>761
下位のディレクトリについては、実行時のカレントがsys.pathに追加されるのに気づいてないのでは コード提示されて質問されたらみんなダンマリになるからなw >>765
結局、3.7では、空にするぐらいなら__init__.pyなんか置く意味なくて
検索上位のサイトやpython文法詳解という書籍等に書かれている内容は嘘で、
import可否はsys.pathの登録のみに依存するということやね。
そして実行プログラムの下位ディレクトリもsys.pathに登録されてるため、ドットを使って記述すればimport可と。 最後のは別の解釈ができる文だったので訂正
そして実行プログラムの下位ディレクトリもsys.pathに登録されてるため、ドットを使って記述すればimport可と。
↓
そして実行プログラムのディレクトリはsys.pathに登録されてるため、実行プログラムの下位ディレクトリもドットを使って記述すればimport可と。 >>769
__init__.pyがあることで、初心者に特にありがちな、パッケージ名がコンフリクトした時に黙って動いたりしないメリットはあるよ
君みたいに早とちりでおっちょこちょいで過信が酷そうな人にはとても有用だよ つまり__init__.pyの存在意味がimportの可否という目的で説明されてるものが散見されるが、
それは嘘ということだね。 sys.path.append() は反則一発退場(白目) イテレータをキー毎に集計するのにsumみたいな関数で簡単に出来る方法あったらオジエテ
例えば ((1,10),(1,20),(2,30),(2,40)) → ((1,30),(2,70))
あるいは [["A":1],["A";2],["A":3],["B":4]["B":5:]] → [["A":6],["B":9]]
今はループで加算、キーが変わったら出力 という感じで古典的なやり方してます できました
from collections import Counter
c = Counter(A=1,B=10)
c.update({"A":2,"B":20})
print(c) #Counter({'B': 30, 'A': 3})
他にも応用できそうです ありがとうございます >>776 Ruby の$LOAD_PATH と同じだろ
load, require すると、ロードパスを先頭から順番に探索して、そのファイルを探す。
ただし、requireでは同じファイルは、2度以上読み込まないが、loadでは再読み込みする
環境変数$RUBYLIB に、パスを追加すれば、$LOAD_PATHの先頭に追加される >>775
# count以外にも応用の効くgroup by
# [("A", 1), ("B", 4), ("A", 2), ("A", 3), ("B", 5)] => [("A", 6), ("B", 9)]
from itertools import groupby
a = [("A", 1), ("B", 4), ("A", 2), ("A", 3), ("B", 5)]
result = [(key, sum(r[1] for r in rows)) for key, rows in
groupby(sorted(a, key=lambda t: t[0]), lambda t: t[0])] 「 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile 」
「 echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile 」
「 echo 'eval "$(pyenv init -)"' >> ~/.bash_profile 」
「 source ~/.bash_profile 」
MacBookでPythonを始めようと思い、pyenvをインストールして設定したのですが、pyenvは必要ないことが分かりアンインストールしました
そしてその際に上記の4つのコマンドを入力したのですが、この設定を初期化する方法を教えていただけませんでしょうか
参考にしたのはこのページです、完全に失敗しました
https://prog-8.com/docs/python-env >>781
1.ターミナルから以下のコマンドを入力する。
open ~/.bash_profile
2.テキストエディットが開くので、最後の3行を削除して、保存する。
この作業により、3つ目までのコマンド入力がなかったことになる
3.最後のコマンドをなかったことにするには、単にターミナルを開き直せばよい。
以上 >>783さんのをそのままやってみたら直りました!!ありがとうございます!!
>>782さんもアドバイスありがとうございました!! PandasでCSV読み込めないよ パス間違いかな
Macで、ファイル上で apple + aption + C でパスをコピーして、
そのまま下記の「パス」の部分にペーストするんじゃだめなのかな
df = pd.read_csv('パス') >>781-784
echo '文字列' >> ~/.bash_profile
なら、文字列をファイルに追記する。>> は追記の意味。
コマンドを実行する前に、意味を調べて、ファイルのバックアップをとっておく事!
仮想環境構築には、anyenv がある。
Ruby のrbenv, Node.js のnodenv が有名。
他にも、色々な言語が揃っている
$PYENV_ROOT/bin:$PATH
これの特徴は、環境変数$PATH の前に、仮想環境の探索パスを追加して、
探索パスの順番を変えて、先に仮想環境でパスが見つかるようにしている
今は、Python公式が提供する、venv が良さそう
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。
https://qiita.com/KRiver1/items/c1788e616b77a9bad4dd >>785
それで問題無い。他が違うんじゃないの?
>>788の言うようにエラーを貼った方がいい。 Python にも、JVM的なものってあります?
JavaのUIライブラリやグラフィックライブラリだと、ネイティブメモリと、バーチャルマシンのメモリで二重にメモリ確保してたりすることがあるらしいんですよね
Python だと、その辺どうなんでしょうか? pythonでトランプとかギャンブル系ゲーム作るとして
この手は弱いから降りるとか強いから降りないとか判断させるのって機械学習でできますか? >>792
たぶんそのJavaのライブラリはJava側にもバッファを持つことでネイティブ境界を跨ぐコストを避けてJava側のメモリアクセスを高速化しているのだと思うが、
Pythonの場合、どうせPython側はビチグソゲロカス遅いから、ネイティブ境界を跨ぐコストなんて気にしないで素直にネイティブのラッパーとして実装しているケースが多いと思う pipenvなりで仮想環境?を切って外部モジュール入れて開発して、実際にサーバ側で動かすとなったときはサーバ側のpython環境はどうするのが一般的なんでしょうか?
開発時と同じようにサーバ側でも仮想環境を復元してその中から動かすのか、それとも直接必要なモジュールを入れてしまいますか? s = '''
5
2 4
5 6
'''
s=s.strip()
sを1行ずつinput()で受け取りたいけど
どうするの? まずそれを標準出力に出力してください。
そのあとinput()書いた別のプログラムにパイプで繋げばいいんじゃないですかね。 >>798
ケースバイケース
pipenvを使って構築したならPipfileやPipfile.lockを活用した方が良いかな
具体的には pipenv --venv で環境のパスを探して
そこの下にあるpython (上のディレクトリ/bin/python) を呼び出す >>801
pipenv等の導入と環境の復元を本番環境でやる流れなんですね
了解しました、ありがとうございました 1個の辞書 {'V':'S001'} からキーを指定せず要素 S001 を取り出したい場合
for values() を使う方法以外にありますか?
1個だけなのにループ使うなんて大げさな感じがします
in_data = {'V':'S001'}
for val in in_data.values():
print(val) values()使わないと実質的にキー指定するやり方以外ないので諦めてください VBしか出来ないけど、Python初心者勉強会に行ってくる。 tuple({'V':'S001'}.values())[0]
ループ使ってないぞw ありがとうございます
values() は必須みたいですね
>>807 で記述してみます >>804
v = in_data[in_data.keys()[0]] >>804
お前みたいな素人は黙って動くコード書いとけ
下手くそなのに綺麗なコード書こうとか意識してんじゃねえよ [*イテレータ][インデックス]
デメリット
イテレータの意味がない 順序が保証された3.7でも、keysもvaluesもインデックス使えないね。
なぜそうなっているのかは意味不明。
3.6までなら、当然だと思うけど。 ■ このスレッドは過去ログ倉庫に格納されています