X



くだすれPython(超初心者用) その37
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/
0006デフォルトの名無しさん
垢版 |
2018/03/18(日) 14:40:54.55ID:gweQjn0m
O2
0007デフォルトの名無しさん
垢版 |
2018/03/20(火) 16:48:16.51ID:UQThoPnt
てst
0008デフォルトの名無しさん
垢版 |
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のようにしてうまく動いてほしいのですが、教えて頂きたいです。すみません…。
0009デフォルトの名無しさん
垢版 |
2018/03/20(火) 22:03:32.55ID:CB6mEnFT
>エラーとなってしまいます
こんなふうに使いたいたいけどエラーになるのは激糞ってことで、
"window.open('about:blank', bbb)"
のbbbを文字列ではなく変数扱いにしろと
Pythonを作っているところに激しくクレームすればOK
0012デフォルトの名無しさん
垢版 |
2018/03/21(水) 00:29:22.31ID:e7ByloC5
window.open('about:blank', 'tab{:d}'.format(aa))

0埋めや桁指定したかったら、{:04d}とかにすればおk
00138
垢版 |
2018/03/21(水) 09:16:16.57ID:+xAnIYdW
有難うございました。
色々試させて頂きましたがなぜか出来ずに、
調べてみた>>12の似たようなケースのもので
'tab{%d}'%(aa
など数パターンをしてみましたが駄目でした。
window.open('about:blank')
のみでもタブは開きますが、>>8のように開いたタブを指定しないと
色々操作できないようなので…
引き続いて調べてみようと思います。
0014デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:08:37.83ID:9aBHV4ji
javascriptスレ逝け
0015デフォルトの名無しさん
垢版 |
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}')")
0018デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:21:00.65ID:9aBHV4ji
>>16
javascriptスレ逝け
0019デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:50:33.68ID:wxFTzoek
Python は、Ruby みたいに、
文字列内に、変数が埋め込めないのか

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

Python は、不便・ややこしい
0020デフォルトの名無しさん
垢版 |
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内にも既製パッケージをインポートしてみたりしても駄目

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

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

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

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

まあ、具体的なソースコードが無いと、回答するのは難しい
0025デフォルトの名無しさん
垢版 |
2018/03/21(水) 12:17:35.83ID:4NRc1cWQ
>>24
手元に無いのですまん、そりゃ分からんよね
でも取り敢えずタイミングというのは手掛かりになりそう、ありがとう
printとdir置いてトレースしてみる
0027デフォルトの名無しさん
垢版 |
2018/03/21(水) 15:18:06.81ID:MTE55bx9
2.5からできてますが
0028デフォルトの名無しさん
垢版 |
2018/03/21(水) 19:39:40.24ID:II1JNNPJ
3.6から文字列内に直接変数名を埋め込めるようになったんだよなあ
format()が余りにも不評だったんだろう
これだけで8文字取るからな
書籍でも従来の%を使っているものが多い
0029デフォルトの名無しさん
垢版 |
2018/03/21(水) 19:59:57.38ID:ZIWF0mlj
loggerがformatに対応しないから俺もレガシーなフォーマットに戻った
変数展開はきっと使うと思うけど
0031デフォルトの名無しさん
垢版 |
2018/03/21(水) 23:28:46.60ID:120kxtjS
Linuxを使っていないWinユーザーの俺でも
Linuxではそう言うのはシバンでやると知っているが.
次の質問はutf-8とかの文字コードを使い分けるにはどうするのが一番いいですか?
かな
0032デフォルトの名無しさん
垢版 |
2018/03/22(木) 00:02:13.59ID:tdHViWJs
>>20-21
1. function print(){ };
2. (function print(){ })();

JavaScript では、1. のように、ただ関数を定義しても、実行されない。
2. のように関数を( ) で囲んで、式にしてから、( ) を付けて実行する

Python はよく知らないけど、
何かのスコープ内の関数・モジュールは、import されても実行されないのかも?

スコープ外に出してみれば?
つまり、ファイルスコープ

それか、あちこちに、print 文をばらまいて、
どこが実行されるか、チェックしてみれば?

>>30
Windows10・WSL のUbuntu シェルで、実行すると、
$ python3 --version
Python 3.5.2

$ python2 --version
プログラム 'python2' はまだインストールされていません。
次のように入力することでインストールできます:
sudo apt install python-minimal
0033デフォルトの名無しさん
垢版 |
2018/03/22(木) 02:54:23.14ID:6YcPw3Wb
python3でreqieatsモジュールについてなのですが、postでパラメータを送る際のurlエンコードの文字コードを指定する方法はありますか?
0035デフォルトの名無しさん
垢版 |
2018/03/22(木) 06:40:32.12ID:nTB8AQAc
>>34
取得したレスポンスの文字化けに関する記事ばっかで、postのパラメータについてのものが見つけられません…
requestsでパラメータが英数のものは動くのですがurllibだとできなかったのでできればrequestで行いたいです。
dataにurllibでurlエンコード済みのstring文字列入れても駄目でした。
0036デフォルトの名無しさん
垢版 |
2018/03/22(木) 07:33:15.74ID:tdHViWJs
form 送信か

元々、そのform があるHTML に、文字コード・地域を指定しているはず
0037デフォルトの名無しさん
垢版 |
2018/03/22(木) 08:57:23.33ID:+wYf8aa1
黙れ統失Rubyカス

>>35
requests.postのdataにurlencodeした結果を指定する、であってる
それでも化けるならContent-Typeヘッダーにcharsetつける
それでも化けるならおま環問題である可能性が高い
0038デフォルトの名無しさん
垢版 |
2018/03/22(木) 09:10:10.92ID:MSVR+REx
>>35
最近プログラム板に来た人かな?
ID:tdHViWJsは、この板の全域に出没して適当な回答を繰り返す問題のある人物なので、
時間を無駄にしたくないのなら相手にしないほうがよい。
この人物は文章が特徴的なので、何度か目にすれば察せるようになるだろう。
0039デフォルトの名無しさん
垢版 |
2018/03/22(木) 09:46:12.22ID:Q2/ylW7b
迷ったらMIME
0040デフォルトの名無しさん
垢版 |
2018/03/22(木) 13:27:14.07ID:8yaQ1Td9
pythonの勉強のためにAnacondaを導入しました
webサイトを見ながら触ってみたのですが、Anaconda promptでconda update condaと入力するとSolving environment:failedと表示されCondaHTTPErrorと続いてアップデートが完了していないと思われる現象が起こります
検索してみたのですが英語が読めず原因が分かりません
プログラム以前の問題で申し訳ないのですが原因と考えられる要素を教えてください
0041デフォルトの名無しさん
垢版 |
2018/03/22(木) 13:30:22.51ID:Q2/ylW7b
net繋がってないだけとか
0044デフォルトの名無しさん
垢版 |
2018/03/22(木) 14:56:15.47ID:Z8Y+8YFX
>>37 >>38
ありがとうございます。
今手元にないので後でもう一度試してみます。
0045デフォルトの名無しさん
垢版 |
2018/03/22(木) 15:14:14.52ID:+AIswhSt
あいやー
おちぃんちんサーバに接続
ぴぃーーーー。小5ロリ以外を粛清せよ
0047デフォルトの名無しさん
垢版 |
2018/03/22(木) 15:38:27.86ID:o6o53GFc
証明書のクリアしてみるか?
0048デフォルトの名無しさん
垢版 |
2018/03/22(木) 15:39:41.97ID:o6o53GFc

そもそも windows の firewall でブロックかな
ウィルス対策ソフトとか firewall とか一時的に無効でもだめか?
0049デフォルトの名無しさん
垢版 |
2018/03/22(木) 16:53:47.05ID:8yaQ1Td9
>>48
ありがとうございます
ファイアウォールは切ってみてもダメでした
社内のPCを使っているのですが、ネットワークの知識もないのでどこが影響してるのかも追えなくてすいません…
0050デフォルトの名無しさん
垢版 |
2018/03/22(木) 18:42:33.32ID:/vagzVD7
配列aの要素が配列bにすべて含まれていればTrue、そうでなければFalseとしたい
配列a、bの要素数は可変(ただしlen(a)>=len(b))
また配列内で各要素は重複しない
例えば以下のような形です

#True
a=(1,2,3,4)
b=(2,1,3)
#False
a=(1,2)
b=(4,3)

こういうテストを大量に繰り返したいので、早い書き方を考えています

test=[num for num in a if num in b]
if len(test)==len(b)

みたいなのを考えてみたんですが、たぶんもっとスマートな方法があると思うので、教えてください
0053デフォルトの名無しさん
垢版 |
2018/03/22(木) 19:59:16.77ID:RnvqqGyo
同じ配列に対して繰り返しその比較するならあらかじめソートしておくと良いことあるかもしれない。
0055デフォルトの名無しさん
垢版 |
2018/03/22(木) 20:38:51.79ID:+AIswhSt
a,bをinで粛清せよ
0056デフォルトの名無しさん
垢版 |
2018/03/22(木) 20:48:12.70ID:+AIswhSt
同士諸君、赤
0058デフォルトの名無しさん
垢版 |
2018/03/22(木) 21:41:09.52ID:mUCyPZ6U
>>49
>社内のPC
会社のネットポリシーにひっかかって会社のファイアウォールがブロックしているんじゃないのか?
このせいで俺のところなんかでもアクセスできないところが色々ある
5chも行っちゃだめよだし
0060デフォルトの名無しさん
垢版 |
2018/03/22(木) 22:14:23.56ID:+AIswhSt
要素が含まれてるか検知するのに、lenやifを使うなんて
頭が悪すぎる。

粛清せねば成らない。
0061デフォルトの名無しさん
垢版 |
2018/03/22(木) 22:15:25.38ID:+AIswhSt
ifは必要だ
0064デフォルトの名無しさん
垢版 |
2018/03/22(木) 22:23:11.07ID:+wYf8aa1
内包表記でリストを作る場合は専用命令を使うので、微々たる物だが速くなる
0065デフォルトの名無しさん
垢版 |
2018/03/22(木) 23:35:44.33ID:q/Ja7+Ba
>>50
> 配列aの要素が配列bにすべて含まれていればTrue
> 例えば以下のような形です
> #True
> a=(1,2,3,4)
> b=(2,1,3)

???
4が配列bに含まれていないようだが?
なぜにTrue???
0066デフォルトの名無しさん
垢版 |
2018/03/23(金) 00:03:52.46ID:qUw1cRZJ
え?
0067デフォルトの名無しさん
垢版 |
2018/03/23(金) 00:22:49.84ID:i31Fn5mw
うーんまあ
配列aの要素が配列bの要素をすべて含んでいる場合
あるいは
配列bの要素が配列aにすべて含まれている場合
と書くのが正確ね
0068デフォルトの名無しさん
垢版 |
2018/03/23(金) 00:53:01.08ID:0pO3RnAr
>>65
このスレの質問者は超低脳が多い。
そんな奴の質問は辻褄が合うことはあまりない
そんなもんだから回答者は真の質問を見抜ける高脳でないと駄目

len(a)>=len(b)なら、配列aの要素が配列bにすべて含まれている可能性あるのは....
0070デフォルトの名無しさん
垢版 |
2018/03/23(金) 04:01:48.52ID:NfdpbbfG
誰かアプリ作れる人いませんか?
0071デフォルトの名無しさん
垢版 |
2018/03/23(金) 07:22:27.94ID:qUw1cRZJ
このスレでアプリ作れるのは俺くらいのもんだろ
0072デフォルトの名無しさん
垢版 |
2018/03/23(金) 11:51:11.90ID:L1wsKiud
pythonでアプリ(実行ファイル)作るのは難しいよな
俺もスクリプト作るのが限界だわw
0075デフォルトの名無しさん
垢版 |
2018/03/23(金) 18:11:07.27ID:OUYN8NdW
class NewClass:
hoge = "hoge"

class NewClass:
def __init__(self):
self.hoge = "hoge"
この2つに違いってありますか?
0076デフォルトの名無しさん
垢版 |
2018/03/23(金) 18:43:03.09ID:GtydX90K
あるよ
0077デフォルトの名無しさん
垢版 |
2018/03/23(金) 19:37:01.46ID:ZnDm/A5o
>>64
それってジェネレータに勝てるの?
0079デフォルトの名無しさん
垢版 |
2018/03/23(金) 21:21:46.68ID:9yghwvRE
>>78
違うよ
0080デフォルトの名無しさん
垢版 |
2018/03/23(金) 21:50:35.83ID:cWFdcGfI
こうかな?

class A:
hage="hage"

class NewClass:
hoge=A()

a=NewClass()
b=NewClass()

b.hoge.hage="huga"

print(a.hoge.hage)
print(b.hoge.hage)

class NewClass2:
def __init__(self):
self.hoge=A()

a=NewClass2()
b=NewClass2()

b.hoge.hage="huga"

print(a.hoge.hage)
print(b.hoge.hage)
0081デフォルトの名無しさん
垢版 |
2018/03/24(土) 00:06:55.67ID:ua0H29LU
>>80
なるほどコンストラクタ外に記述したプロパティは参照するたびに更新されるということですかね
ありがとうございました
0083デフォルトの名無しさん
垢版 |
2018/03/24(土) 01:02:21.46ID:M254L+Kv
コンストラクタってどれのことを言っているんだろ
ダンダーinitのことかな?
0084デフォルトの名無しさん
垢版 |
2018/03/24(土) 01:36:03.13ID:ua0H29LU
なるほどクラス変数とインスタンス変数の違いですかね
これが別物だということを分かっていませんでした
ありがとうございました
0085デフォルトの名無しさん
垢版 |
2018/03/24(土) 03:51:20.06ID:5DHcZkrY
リストの2次元配列に文字列をappendしていきたいのですが、
完全に空な2次元リストはどのように宣言すればいいんですか?

arr = [[]]
arr.append("apple")
arr.append("hage")
とすると
[[],[apple],[hage]]
となってしまいます

[[apple],[hage]]というリストを作りたいです
0086デフォルトの名無しさん
垢版 |
2018/03/24(土) 04:12:14.60ID:DtiNFwiJ
リストにリストを持たせたければ
リストをappendするしかないんじゃないか

>>> arr = []
>>> arr.append(['apple'])
>>> arr.append(['hage'])
>>> arr
[['apple'], ['hage']]
0089デフォルトの名無しさん
垢版 |
2018/03/24(土) 09:20:52.26ID:3cN93bef
2次元配列じゃなくて配列の配列だけどな。
0091遊園地-24
垢版 |
2018/03/24(土) 14:45:04.21ID:iVzkwtpj
.pyをexe形式する方法有るケドな
0093デフォルトの名無しさん
垢版 |
2018/03/24(土) 21:02:13.48ID:6+fQqcMh
Linux上で動いてるパイソンコード(ライブラリ等も含めて)をWindows exeにする方法ってありますか?
0097デフォルトの名無しさん
垢版 |
2018/03/24(土) 21:50:51.20ID:CjNpxR1+
Linuxは全然分からないけど、windowsとかMACのモジュールと同じモジュールでも動くならあるよ
0098デフォルトの名無しさん
垢版 |
2018/03/25(日) 02:06:35.44ID:vGx9Wf9w
>>93
pythonコードをLinux上でwinのexeに変換するプログラムはあるんじゃないのか。
これの需要はかなりありそうだし
ただ、WinにはないLinux独特の機能を使っているコードだとだめだろうが。
0099デフォルトの名無しさん
垢版 |
2018/03/25(日) 14:03:56.05ID:ydE12e/a
UbuntuのB shellでワンライナーで実行したいんですけど、
文字列をprintしようとすると変数と解釈されてしまうみたいでエラーが出てしまいます。
整数だったらエラーにならないんですが...
どうすればいいのでしょうか?

python -c "print("aaa")"

Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'aaa' is not defined


python -c "print("1")"
1
■ このスレッドは過去ログ倉庫に格納されています

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