くだすれPython(超初心者用) その37

■ このスレッドは過去ログ倉庫に格納されています
2018/03/17(土) 16:32:25.91ID:S1lkLDnv
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その36
http://mevius.2ch.net/test/read.cgi/tech/1514805522/
2018/03/17(土) 17:20:52.13ID:apINGZdL
1乙
2018/03/17(土) 22:54:10.59ID:71uTBaAx
>>1
やっぱこのスレがないとな
2018/03/18(日) 01:10:06.02ID:1gnxon3r
>>1
乙ぱいそん
2018/03/18(日) 08:16:22.54ID:5YCBO0rZ
>>1乙!!!
6デフォルトの名無しさん
垢版 |
2018/03/18(日) 14:40:54.55ID:gweQjn0m
O2
7デフォルトの名無しさん
垢版 |
2018/03/20(火) 16:48:16.51ID:UQThoPnt
てst
8デフォルトの名無しさん
垢版 |
2018/03/20(火) 21:57:11.58ID:4r2XpJ0O
pythonで変数を単にprintで出力等でなく、for文の中の引数のあたりで用いたいのですが
正しい表示の仕方が分からない状態です…。

【NO.1】
driver.execute_script("window.open('about:blank', 'tab0')")
driver.execute_script("window.open('about:blank', 'tab1')")
driver.execute_script("window.open('about:blank', 'tab2')")
driver.execute_script("window.open('about:blank', 'tab3')")
driver.execute_script("window.open('about:blank', 'tab4')")
以下tab3,tab4・・・・・、その都度変わる。

と、例えばこれは上手く動くのですが、こういうプログラムを 'tab0'の部分がいくつまで増えるかわからないので
for文を用いたいです。
そこで以下のようにしました。


【NO.2】
for aa in range(5):
bbb = 'tab' + str(aa)
print(bbb)
driver.execute_script("window.open('about:blank', bbb)")


これで5回ループしてwindow.openを繰り返したいのですが、エラーとなってしまいます。

('about:blank', bbb)")  を  ('about:blank', 'bbb')")としても ('about:blank', '{bbb}')")
としてもうまく動かないのですが、NO.1のように書いていると長い時はどれだけでも長くなってしまうので、
NO.2のようにしてうまく動いてほしいのですが、教えて頂きたいです。すみません…。
2018/03/20(火) 22:03:32.55ID:CB6mEnFT
>エラーとなってしまいます
こんなふうに使いたいたいけどエラーになるのは激糞ってことで、
"window.open('about:blank', bbb)"
のbbbを文字列ではなく変数扱いにしろと
Pythonを作っているところに激しくクレームすればOK
2018/03/20(火) 23:41:50.62ID:qVb9KqM8
Method: Selenium::WebDriver::Driver#execute_script

http://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium%2FWebDriver%2FDriver%3Aexecute_script

execute_script(script, *args)

Ruby では、第1引数に、JS のソースコード、
第2引数に、様々な型のオブジェクトの配列だけど
2018/03/20(火) 23:44:43.85ID:8h2nHQPc
Rubyスレに書き込めばいいのに
2018/03/21(水) 00:29:22.31ID:e7ByloC5
window.open('about:blank', 'tab{:d}'.format(aa))

0埋めや桁指定したかったら、{:04d}とかにすればおk
138
垢版 |
2018/03/21(水) 09:16:16.57ID:+xAnIYdW
有難うございました。
色々試させて頂きましたがなぜか出来ずに、
調べてみた>>12の似たようなケースのもので
'tab{%d}'%(aa
など数パターンをしてみましたが駄目でした。
window.open('about:blank')
のみでもタブは開きますが、>>8のように開いたタブを指定しないと
色々操作できないようなので…
引き続いて調べてみようと思います。
14デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:08:37.83ID:9aBHV4ji
javascriptスレ逝け
15デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:12:09.46ID:MTE55bx9
for aa in range(5):
bbb = 'tab' + str(aa)
print(bbb)
driver.execute_script(f"window.open('about:blank', '{bbb}')")
2018/03/21(水) 10:16:50.03ID:wxFTzoek
最も最近に起動した、タブを取得する、というような関数は無いのか?
2018/03/21(水) 10:20:58.28ID:UHcPczyP
pythonってプログラミング言語なの?
18デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:21:00.65ID:9aBHV4ji
>>16
javascriptスレ逝け
2018/03/21(水) 10:50:33.68ID:wxFTzoek
Python は、Ruby みたいに、
文字列内に、変数が埋め込めないのか

"some sentence...#{変数}..."

Python は、不便・ややこしい
20デフォルトの名無しさん
垢版 |
2018/03/21(水) 11:10:28.98ID:4NRc1cWQ
多分ネームスペースの問題だけど詰まった…

myMod内に既製パッケージをインポートしてmyFunc内で既製Modを呼んでる
myMod内の砂場からmyFuncを呼ぶとちゃんと動く
しかし別ファイルのmainにmyModをインポートしてmyFuncを呼ぶと動かない

エラーメッセージは"既製パッケージに既製Modという属性は有りません"
(今手元に無いので概要)

インポートの仕方を色々変えてみたり、(import pkg, import pkg.mod, from pkg import mod…)
呼び方もフルパス、省略…
終いにはmain内にも既製パッケージをインポートしてみたりしても駄目

抽象的だけどなんか詰まりやすいポイントあればエスパーな人教えてください
21デフォルトの名無しさん
垢版 |
2018/03/21(水) 11:15:59.51ID:4NRc1cWQ
取り敢えず既製パッケージはちゃんとmainから呼べるように出来てるんだから、既製パッケージに習って__init__.py置いてパッケージに纏めてみるかな…
22デフォルトの名無しさん
垢版 |
2018/03/21(水) 11:35:22.45ID:9aBHV4ji
>>19
馬鹿には無理
23デフォルトの名無しさん
垢版 |
2018/03/21(水) 11:45:31.65ID:+xAnIYdW
>>15
有難うございました!これで出来ました!
このパターンもどこかのサイトにあった記憶はありますが
結局投げ出し気味でしっかり試さず来ていたと思います…
tab0、tab1と指定して開いていて、あとでタブ切り替えもしっかり行ってくれました。
ありがとうございました!
2018/03/21(水) 11:47:06.86ID:wxFTzoek
>しかし別ファイルのmainにmyModをインポートしてmyFuncを呼ぶと動かない

myModをインポートしても、myMod内のコードが実行されていないとか?

それにより、myFunc内で既製Modを呼んだタイミングでは、
既製パッケージはインポートされていないので、既製Modが見つからないとか?

import とは、ソースコードを実行するのか?
また、どの部分を実行するのか、しないのか?

まあ、具体的なソースコードが無いと、回答するのは難しい
25デフォルトの名無しさん
垢版 |
2018/03/21(水) 12:17:35.83ID:4NRc1cWQ
>>24
手元に無いのですまん、そりゃ分からんよね
でも取り敢えずタイミングというのは手掛かりになりそう、ありがとう
printとdir置いてトレースしてみる
2018/03/21(水) 14:24:13.65ID:F7vjZmd4
>>19
3.6からできなかったっけ
27デフォルトの名無しさん
垢版 |
2018/03/21(水) 15:18:06.81ID:MTE55bx9
2.5からできてますが
2018/03/21(水) 19:39:40.24ID:II1JNNPJ
3.6から文字列内に直接変数名を埋め込めるようになったんだよなあ
format()が余りにも不評だったんだろう
これだけで8文字取るからな
書籍でも従来の%を使っているものが多い
2018/03/21(水) 19:59:57.38ID:ZIWF0mlj
loggerがformatに対応しないから俺もレガシーなフォーマットに戻った
変数展開はきっと使うと思うけど
2018/03/21(水) 22:59:14.27ID:iE0+8PVB
ubuntuでpython 2.x と 3.xを使い分けるにはどうするのが一番いいですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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