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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2020/01/02(木) 15:56:54.08ID:ZUrZA+uS
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

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

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にう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(超初心者用) その45【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1571188632/
937デフォルトの名無しさん
垢版 |
2020/02/29(土) 13:10:46.26ID:/XxbCwlB
>>931
ありがとうございます!
2系と3系を同時に使いたいんですがそれはもう毎回切り替えるしか手がないんですかね?
2020/02/29(土) 13:42:38.05ID:i8bha/XW
>>934
**envというプロダクトが多すぎて検索しただけで萎える
しかも廃れた古いものもヒットするので、全くの新規さんが独学でやるには二重の苦難だろう
こんなんじゃPythonの未来は暗いと感じる
939デフォルトの名無しさん
垢版 |
2020/02/29(土) 13:54:03.49ID:3sltTQiA
>>931
ほんそれ
940デフォルトの名無しさん
垢版 |
2020/02/29(土) 13:56:01.85ID:3sltTQiA
>>937
切り替えるんじゃなくて
どっちの設定もしない
コンソールを開いてから
どっちを使うか選択(コマンド実行)
941デフォルトの名無しさん
垢版 |
2020/02/29(土) 13:57:46.01ID:3sltTQiA
ちょっと判りにくかったかもしれんが
要するに混ぜるなってこと

両方入ってるのは問題無い
環境を混ぜるのが問題
2020/02/29(土) 14:17:00.97ID:xglx3xdS
>>937
Win系なら、両方入ってる場合は
pythonとうったら2系
pyとうったら3系
がデフォやぞ

.pyをダブルクリックで実行したい ってのはかなわぬ願い
バッチかませろ
2020/02/29(土) 14:26:25.10ID:6BfVplee
winもpyに.py関連付けてたらshebang書けば使い分け出来るで
2020/02/29(土) 14:36:00.26ID:/XxbCwlB
>>941
ありがとうございます、とりあえず言われた通りコマンドで選択してみます。
後言い忘れてましたがOSはMacです…エイリアスで色々やってるのはpythonコマンド
だと2系が自動で選択されるからです。環境描き忘れててすみません。
2020/02/29(土) 14:45:21.95ID:xglx3xdS
>>944 なんというぐうくそ
2020/02/29(土) 23:48:35.12ID:6IdZMwnf
>>935
パスの順番を変えたら、他のアプリが動かなくなるけど、それは良いのか?

>>944
Mac は最初から、Python, Ruby が入っているから、その環境に影響を与えるとまずい。
それらを使っているアプリがあるから

だから、仮想を使う

Docker も良いかも
947デフォルトの名無しさん
垢版 |
2020/03/03(火) 09:40:24.54ID:Zy/UEfGJ
seleniumにてfirefoxの既存のプロファイルを使用する方法はありませんでしょうか?
どうにも既存のプロファイルを読み込まなく難儀しています...
948デフォルトの名無しさん
垢版 |
2020/03/03(火) 09:43:07.58ID:Zy/UEfGJ
コードはたったコレだけなんですが全くといいほど読み込みません

from selenium import webdriver

fp = webdriver.FirefoxProfile('/home/user1/.mozilla/firefox/zaxxxxxt.default')
browser = webdriver.Firefox(fp)
2020/03/03(火) 11:13:11.66ID:GznFhYco
>>947-948
https://techiedelight.com/compiler/?ScFS
↑ここにかんすうはってきたので
fp = get_profile_path("default")
こうやってさがさせてみそ

それでも、なんでかうまく読まないことあるけど。。。

あと、基本的なところだが、
geckodriverのバージョンが古いと失敗すること多い。
2020/03/04(水) 02:21:30.44ID:n/osJUKI
>>949
ありがとうございます

fp = get_profile_path("default")
browser = webdriver.Firefox(fp,executable_path=’場所')

作って頂いた関数を使用したのですが、やはり新規プロファイルを読み込まれ既存のプロファイルが読み込まれません
Chromeでは既存のプロファイルが読み込まれるのですが、如何せんChromeではmeta refreshをdisable出来ないため
firefoxを利用したいのです
プロファイルの場所は初期値 geckodriverは0.26.0なので問題ないと思うのですが…
2020/03/04(水) 12:59:09.91ID:Q2O9cj6l
>>950
プロファイルの場所探すところを改造せんといかんのかもしらん

泥臭いやりかただと、
ターゲットフォルダの中身全部をリストにして
.defaultで終わってるものをとる。みつかったらbreak

みたいなー
952デフォルトの名無しさん
垢版 |
2020/03/04(水) 19:58:03.24ID:fq3DQX8J
>>932
アナコンダインストール一発ではだめなの?
953デフォルトの名無しさん
垢版 |
2020/03/04(水) 20:13:57.82ID:O0VNA921
駄目に決まってんだろアホ
お前だろ「Anacondaをインストールする2020最新」とかいうアマゾンの中華製品みたいな信用度の記事Qiitaに書きまくってるゴミは
2020/03/04(水) 23:19:20.62ID:nNNW6i++
Anaconda は、Python が入っていない、Windows 限定

Mac, Linux など、最初から、Pythonが入っているものについては、
初心者には無理なので、プロに聞いてくださいと、
「みんなのPython 第4版、2017」にも、書いてある

つまり、最初から入っている、Pythonと両立させるのは、仮想が必要だから、難しい
2020/03/05(木) 04:04:41.17ID:eClduRvk
つまりPythonを使うならWindowsという時代が来たということだな
最初からPythonを入れてシステム的に依存する仕組みにしたLinux系は下手打ったよなあ
956デフォルトの名無しさん
垢版 |
2020/03/05(木) 07:16:32.77ID:s/vnmaxn
システムとは別にPythonいれてそっち使えばいいやん
仮想可は実行環境だからまた別の話
957954
垢版 |
2020/03/05(木) 08:01:54.80ID:PBcHTAfh
仮想環境は、Ruby のrbenv・RVM とか、Python のvenv とか、
これが素人には難しすぎるから、入門書には書いていない!

Mac・Linux では、仮想環境になる
958デフォルトの名無しさん
垢版 |
2020/03/05(木) 12:41:11.27ID:s/vnmaxn
>>956
>仮想可
じゃなくて、仮想環境でした
959デフォルトの名無しさん
垢版 |
2020/03/05(木) 15:08:38.13ID:zs+Uexwr
超初心者です
100回動作を繰り返すとします
繰り返しn回目でn回〇〇するといった場合どう記述すればいいんですかね?
たとえば30回目の動作で30回ボタンを押す、55回目で55回ボタンを押すというような感じです
2020/03/05(木) 15:15:03.78ID:CNNRfBpe
それ、pythonの質問じゃなくてどうプログラムしたら良いのかの
プログラミング自体の質問だから
自分で考えなさい
961デフォルトの名無しさん
垢版 |
2020/03/05(木) 15:20:01.54ID:ZS+YL4ip
>>959
for n in range(100):
 for i in range(n):
  doSomething()
962デフォルトの名無しさん
垢版 |
2020/03/05(木) 15:54:57.40ID:zs+Uexwr
>>960
すいません気をつけます

>>961
理想通りできました
ありがとうございました!
2020/03/05(木) 16:30:55.23ID:wTyki8t2
pythonはメジャーになって逆に環境構築に関してはひどい状況になったかもな。。
今正確にやるならdockerで閉じ込めろって話になるが、それ初心者には言えんわ。
2020/03/05(木) 19:06:49.16ID:yi4ntJTq
dockerは厳しいわ
流行っているから本買って来て読んでみたけど
そもそも何をするソフトなのか、何の役に立つのかすら理解できなかった
2020/03/05(木) 19:21:28.75ID:wTyki8t2
やっぱり最低限は環境変数とPATHは理解してもらってanaconda入れてPATH通すってやり方かなと思う。
最悪問題起きても環境変数とPATHがわかってればデバッグできるでしょ。
2020/03/05(木) 19:43:37.44ID:D1lGE/tK
google も動かすまでが結構大変なんだよな
初心者には難しいかな
2020/03/05(木) 20:16:30.47ID:dUqOCP9n
>>966
おまえのぐっぐるとはなんのことやらエスパーする余地がある

さすが、自然言語が不自由なスッドレだなw
2020/03/05(木) 20:26:45.66ID:Fk1ZMAni
(200, 200) のnumpy配列を(1, 80, 80)にしたいです
お願いします
2020/03/05(木) 20:27:11.49ID:Fk1ZMAni
間違えました
(200, 200) のnumpy配列を(1, 200, 200)にしたいです
お願いします
970デフォルトの名無しさん
垢版 |
2020/03/05(木) 20:57:29.83ID:s/vnmaxn
丸投げはやっとるん?
971デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:01:02.49ID:fCV+9Bpk
np.expand_dims
972デフォルトの名無しさん
垢版 |
2020/03/06(金) 03:11:42.52ID:9EQdyE3d
python3で質問です
for i in list1:
if ("A" or "B") in str(i):
list2.append(i)
elif "C"==str(i) or "D"==str(i) or "E"==str(i):#←ここ
list3.append(i)
else:
list4.append(i)

というコードがあるのですが、#部分が汚いというか煩雑で困っています。
いずれは#部分の比較文字列が増える可能性があるので、例えば
("C" or "D" or "E")==str(i)
みたいな感じでスマートに書きたいです。(ちなみにこれだと最初のCしか比較されませんでした。。。)

#部分をどうしたらいいでしょうか?

また、最終的には#部分で比較する別ファイルからリスト型に取り出してぱーっと比較したいです
その場合のアルゴリズムも(ファイルの読み込み操作とかは不要です)できたらほしいです
973972
垢版 |
2020/03/06(金) 03:14:05.66ID:9EQdyE3d
http://codepad.org/QoncQu10
すみません、、、インデント崩れました
これです
2020/03/06(金) 03:40:12.72ID:HMS8G3Kn
>>972
in演算子でいいじゃん
if 比較したい値 in 値の入ったリスト
975デフォルトの名無しさん
垢版 |
2020/03/06(金) 03:41:39.25ID:zMfd3B+p
そんなもんお前…
str(i) in ('C', 'D', 'E')
やろ

ところで、最初の
('A' or 'B') in str(i)
は想定通りに動作してないと思われる
'A' in str(i)
相当だから
もう少し演算子について正確に学んだ方がいい
976デフォルトの名無しさん
垢版 |
2020/03/06(金) 06:32:33.66ID:MUtvLxi6
文字列化すると"A" になるデータってどんなのかな
2020/03/06(金) 06:56:59.42ID:qYlx8Qkc
>>976
ABO式血液型とカー?(ちょうてきとう)
2020/03/06(金) 07:06:27.86ID:Z17kfdKR
>>972
別にifとelifをABCの数だけ並べてもいいでしょ?
スマートな書き方は慣れてからでもいいでしょ

>ぱーっと比較したい
後半は急に雑な説明になって
何がしたいかよく分からん?
2020/03/06(金) 08:46:55.47ID:+VKnEuTi
>>978
>ぱーっと比較したい
俺、思うに、それが str(i) in ['C', 'D', 'E'....] のことじゃないのか
2020/03/06(金) 09:24:34.72ID:6R/8Uuzj
>>972
リストの内容によってはこういう方法でもいける。
import re
list=["A","B","C","D","E","F"]
sList=",".join(list)
list2=list2+re.findall("[AB]",sList)
981972
垢版 |
2020/03/06(金) 15:01:17.68ID:yez0RtUo
>>979
これで#部分でやりたかったことが出来ました。
ありがとうございます
AとかBは簡略化のためで血液型とかじゃないです

比較する値(list1の各要素)には"ACC"みたいなものが来るようになっていて
Cが含まれていても”CX"みたいになっていたらelseに分岐させる感じの処理です

最初の部分の
if ('A' or 'B') in str(i):
も左をリストにして簡潔にしちゃいたいのですが
さっきのやり方(例えばif str(i) in ['A','B']:)だと"AA"とかがstr(i)に来たときに漏れてしまいます
str(i)にAかBが含まれているとき(例えばAB,AF,AA,BE)に分岐させる処理はどう書いたらいいでしょうか?
最初の
2020/03/06(金) 15:10:11.91ID:6R/8Uuzj
なかなかの後出しだな。

単にA,Bが含まれるという条件なのか、A,Bから始まるのか、
C〜の文字列は絶対A,Bは含まないのかなど、細かい条件で全然違うぞ
2020/03/06(金) 16:29:59.27ID:Z17kfdKR
>>981
一言でいうと処理対象の複雑さによって処理が異なる
もし文法構造を有しているならパース処理が必要になるが
字の配列だけの問題なら分岐だけで処理できる

フローチャート的なif文の分岐が基本中の基本だから
短く書くやり方は基本が分かってからにしよう
具体的には先頭から一字ずつ判断して行けばいい

先頭の文字がAの場合、Bの場合、
それぞれについて次の文字がAの場合、Bの場合……
ってif文をネストしていけば書けるはず
2020/03/06(金) 18:02:59.48ID:MP/8tjp8
pandasで以下のようなcsvファイルを読み込み、

burgers,meatballs,eggs
chutney
turkey,avocado

以下のような2次元配列に変換したいです。

[['burgers', 'meatballs', 'eggs'], ['chutney'], ['turkey', 'avocado']]

pandas.read_csv(..., heade=None).to_numpy().tolist()だとnanが含まれてしまいます。
for文でnan削除するよりスマートな方法はないでしょうか?
985972
垢版 |
2020/03/06(金) 20:16:06.38ID:9EOp8vfg
>>982
A,Bが含まれるという条件です
例えばAjsやskBfです
Cの文字列は絶対に含みません

後出しになっちゃって本当にすみません。。。

set()とか使って出来ないかなと思ってさっきも色々試したんですけどだめしでした。。。
2020/03/06(金) 20:45:36.78ID:n2xpzai7
>>984
pandasじゃなくcsv.reader使ったのでよくない?
list(csv.reader(file))で意図した配列にできるよ
987984
垢版 |
2020/03/06(金) 20:56:23.32ID:MhiZvrbz
それでいいです。ありがとうございました。
2020/03/06(金) 20:57:39.83ID:n2xpzai7
>>981
any(x in str(i) for x in ['A', ‘B’])
pythonの場合このケースは正規表現のほうがわかりやすいかもね
2020/03/06(金) 20:58:36.64ID:n2xpzai7
あと、str()必要??
2020/03/06(金) 21:49:10.87ID:gkPkCuAw
perlみたく安直には出来ないようになってるからね
if (/C|D|E/)
ショウガナイね

そもそも最近のワカモンは正規表現の存在自体知らないんだよ
本当に、聞いたことすらないんだよ
2020/03/06(金) 21:52:24.21ID:gp44GQTA
正規表現はもう古すぎだよなあ
あんな暗号みたいなの覚えられんし方言もあるし
しかもデバッグが非常に難しい
2020/03/06(金) 21:56:09.57ID:Fgd+2Xim
そんなあなたにRaku
2020/03/06(金) 22:12:28.48ID:7d5kGJiP
正規表現使わずにプログラムするとかそっちのが苦痛だわ
994デフォルトの名無しさん
垢版 |
2020/03/06(金) 23:07:37.81ID:MUtvLxi6
>>972
プログラムで処理できる
完全なサンプルデータを示してほしい
995972
垢版 |
2020/03/06(金) 23:29:13.41ID:9EOp8vfg
>>988
すごいです。。。できました。。。

正規表現は一応貪欲なんとかとかかるーく使ったことある程度です
今回はうまくいけたのでヨシ!とします。。

any使ったことなかったので精進します
996デフォルトの名無しさん
垢版 |
2020/03/07(土) 00:41:33.17ID:k5ibAr7h
まず新スレ立てろデブ
https://mevius.5ch.net/test/read.cgi/tech/1583509252/
2020/03/07(土) 00:50:58.92ID:CmL9X7tL
>>991
俺は自分が書いた正規表現ですら、後で見ると何にマッチするのかわからんってのが
あるからコメントが必須だからな。
すごい奴のすごい正規表現はもう何にマッチするのか文章の説明がないとさっぱりわからん
2020/03/07(土) 01:00:25.56ID:AvLdWjOA
あれは魔術師の呪文と同じ
999デフォルトの名無しさん
垢版 |
2020/03/07(土) 01:04:17.34ID:k4ffI6Av
うまな
1000デフォルトの名無しさん
垢版 |
2020/03/07(土) 01:04:29.33ID:k4ffI6Av
うめ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 9時間 7分 36秒
レス数が1000を超えています。これ以上書き込みはできません。