X



くだすれPython(超初心者用) その50【まず1嫁】
■ このスレッドは過去ログ倉庫に格納されています
0001蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/27(木) 20:24:10.68ID:WXD9Eu8v
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

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

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
  ↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。最近流行中?
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 くだすれPython(超初心者用) その49【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1595057607/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
0492デフォルトの名無しさん
垢版 |
2020/09/24(木) 02:03:08.49
まぁそれならあとはVScodeから実行するならpython3のパスを通してやるか
Terminalから直接pyファイルを実行するならpython3で実行してみるか
0493デフォルトの名無しさん
垢版 |
2020/09/24(木) 02:32:02.40ID:6tjmZbDW
488ですが無事解決しました。
何も考えずにYouTubeの動画のチュートリアルで言われた通りに入れたanacondaと、VScodeでInstallしたpythonのpathが合っていなかったのが原因でした。
完全にanacondaをアンインストールすれば実行できました。
お騒がせしました、ならびにありがとうございました。
0495デフォルトの名無しさん
垢版 |
2020/09/24(木) 12:21:54.54ID:CHq4JQRq
指定した整数の回数だけ、同じカウントをやりたいのです

count = 0
life = 5
d = 0

for i in range(100):
_if d == life:
__d=0
__count+=1
_print(count)
_d+=1

# 000001111122223333344444555556666677777...

みたいなカウントの仕方です
dが野暮ったい気がするのですがもっとシンプルに書けないものでしょうか
0496デフォルトの名無しさん
垢版 |
2020/09/24(木) 12:43:47.90ID:z+BbFKst
for i in range(100): print(i // life)
0500デフォルトの名無しさん
垢版 |
2020/09/24(木) 22:35:34.15
import itertoolsとnext()なる便利なものを知ったのですが
これ、”一周回ってきた”を知るにはどうしたらよいのでしょう
リストの長さをカウントするしかないのでしょうか?
0501デフォルトの名無しさん
垢版 |
2020/09/25(金) 04:46:29.14ID:ivzUOZ7m
意味不明
無限イテレータなら一周なんて概念はないし
listみたいなイテレータなら一周以上できないから一周しか存在しないだろ
変な説明するよりコードを提示して質問しろ
0502デフォルトの名無しさん
垢版 |
2020/09/25(金) 06:27:16.79ID:7HeHw0Rd
ある自然数を適当に分割したいんです。
例えば100という自然数があったばあい10,50,16,24みたいな感じです。
教えてエロい人
0505デフォルトの名無しさん
垢版 |
2020/09/25(金) 07:05:44.12ID:7HeHw0Rd
>>504
1,1,98でも構いませんが、

分割する場合、それぞれの値の期待値が同じになれば大丈夫っす。
0506デフォルトの名無しさん
垢版 |
2020/09/25(金) 07:12:46.95ID:7HeHw0Rd
分割する自然数=100
分割数=3
配列=[]
配列2=[]
for i in range(分割数):
  配列.append(random.random())
for i in range(分割数):
  配列2.append(配列[i]/sum(配列)*分割する自然数)
print(配列2)

ちなみに私が思いつきで書いた公式です。
結果が少数になってしまうので不採用となりました。。。
0508デフォルトの名無しさん
垢版 |
2020/09/25(金) 08:41:44.33
>>501
import itertools
import time

ary = ['a','b','c']
it_ary = itertools.cycle(ary)
for n in it_ary:
_print(n)
_time.sleep(3)

これで一周回る、つまり毎回'c'がprintされたあとに処理をしたいわけです
(aryの中身は変わるので値'c'を比較してって意味ではありません)
len(ary) == iすればいいだけなのですが気になりまして
0510デフォルトの名無しさん
垢版 |
2020/09/25(金) 09:31:56.69ID:UVM8czPJ
>>505-506
期待値同じ縛りなのか・・・

合計がピッタリ分割もとの数になるように
ランダムさんを割り当ててくのってむずかしいきがした。

おれかんがえたのは
506の記法に従うと

max=分割する自然数-分割数+1
for i in range(分割数):
____tmp=random.randint(1,max)
____配列.append(tmp)
____max=max-tmp-(分割数+1-i)
0512デフォルトの名無しさん
垢版 |
2020/09/25(金) 09:37:55.05
>>509
つまりitertools以外のものであれば
it_ary.count(今の位置を整数で取れる)だったり
'c'をprintし終わったあとに実行できるようなit_aryにコールバックを設定できたり
そういう慣例があるということでしょうか?
自分でそういうモジュールを作る、という話ではないですよね?
0514デフォルトの名無しさん
垢版 |
2020/09/25(金) 09:42:19.52ID:ur/x7yKF
あらしと思わせたければIDを隠す
そう思わせたくなければIDを出す
これだけで精神レベルの低い人間を簡単に操作することができます
0515デフォルトの名無しさん
垢版 |
2020/09/25(金) 09:44:15.01ID:UVM8czPJ
おれいを言うとチヌ病気にかかってるアフォに目印ついて便利っちゃー便利>うんこ装着してID隠し
0517デフォルトの名無しさん
垢版 |
2020/09/25(金) 09:48:57.77ID:7HeHw0Rd
>>510
ありがとう。
配列[0]に大きい数字が入りやすいけど最後に
シャッフルすれば期待値は同じになりそうですね。
0518デフォルトの名無しさん
垢版 |
2020/09/25(金) 09:54:23.25ID:ADlgR+X9
>>500
StopIterationがraiseされる
0519デフォルトの名無しさん
垢版 |
2020/09/25(金) 10:41:40.02
>>516
そうなんです
使わないのなら2重ループすればいいし
使うなら分岐でitertools自身の関数を使えるし
それらの落とし所を探っている感じです

>518
cycleはその名の通りstopしないのでしょうがisliceなどはtry:except StopIteration:で処理を分岐できました

ただ、もしかしたらという方法を何個か思いついたので試してみたいとおもいます
ありがとうございました
0522デフォルトの名無しさん
垢版 |
2020/09/25(金) 12:19:53.43ID:4ovx1Tzj
100個の候補から150個ランダムに出力する場合
期待値同じに出来ないだろう
0523デフォルトの名無しさん
垢版 |
2020/09/25(金) 14:40:18.87ID:0Ox6cB/k
n = ['aaa','bbb']
m = ('ccc','ddd')

n = n + m
は通らないのに
n += m
は通るのはなんでだで?
0525デフォルトの名無しさん
垢版 |
2020/09/25(金) 19:57:07.41ID:2UfubMhi
Pathlibで拡張子抜きのファイル名だけリネームしたいんだけど
renameの仕様が凄く気持ち悪い
なんでrename(’hoge’)でhoge.txtにリネームしてくれないんだ…
0528デフォルトの名無しさん
垢版 |
2020/09/25(金) 20:07:16.09ID:ev0lGGxz
Pathlibのrenameはosのrenameを呼んでる
osのファイルシステム操作関数はposixインターフェースに習っている
文句はposixに言ってくるべき
0534446
垢版 |
2020/09/25(金) 23:28:21.84ID:+b1tEVaH
>>483 
ダウンロードしようとしたんですが、libclangにpython2.7.3時点のバージョンがないので
2.7.3のときは別のものを必要としたように見えます
あとなぜか Make sure you have a working Qt qmake on your PATH.に逆戻りしました

今更ですがpip使ったほうが早いですかね
ただpipもslscontext objext not foundとかでインストール失敗するんですよね
0535デフォルトの名無しさん
垢版 |
2020/09/26(土) 00:09:25.31ID:evkbhpg+
とあるサイトをrequests.getするとres.status_codeで403が返ってきます
ブラウザからだと普通に繋がります
で、User-AgentやらRefererをブラウザのリクエストヘッダから写し取り
headersに設定したのですがやはり403です
何か他に思いつく要因はありますでしょうか?
ちなみに他のサイトだと403だったのがheadersの設定後、200のステータスコードを取得できました
0536デフォルトの名無しさん
垢版 |
2020/09/26(土) 00:15:21.58ID:evkbhpg+
あと同じ403でもheadersを設定した場合と設定しなかった場合とで
微妙にrequests.get後のresponse.textの内容が変わってるので
headersやその他に足りないパラメータがあるのかと思うのですが・・
0537デフォルトの名無しさん
垢版 |
2020/09/26(土) 01:36:07.54ID:en54jqZM
とりあえずブラウザ使ってる時のリクエストを丸コピする

copy as cURLしてどのヘッダーが必須なのかを
curl使って切り分けしてからコードにすると楽
0538デフォルトの名無しさん
垢版 |
2020/09/26(土) 02:17:29.76ID:evkbhpg+
>>537
あらためてコピペで設定したらすんなり通りました・・

なんらかのコピペミスだったのか
(あと、403になったあとに接続するとどうやら一定期間
同じipで全ページで接続できなくなる仕様みたいでした、それが関わっていたのかもしれない)
とにかくできました
ありがとうございました
0539デフォルトの名無しさん
垢版 |
2020/09/26(土) 11:01:07.02ID:j0h+lLOK
python2.7.3を使っています

python -c "import ssl; print(ssl.OPENSSL_VERSION)
OpenSSL 0.9.8l 5 Nov 2009

新しいバージョンのopensslにするにはどうすればいいですか?
https://github.com/pypa/pip/issues/4704
このページを見つけたのですが手順四番目の./Configureというコマンド?が認識されないです
0540デフォルトの名無しさん
垢版 |
2020/09/26(土) 11:46:36.51ID:9azqN3P6
Windows98を使ってます。
YouTubeを見るにはどうすればいいですか?
Meにバージョンアップはできません
理由は
>>472
に書いてます
0541デフォルトの名無しさん
垢版 |
2020/09/26(土) 13:11:34.54
class hoge:
_def __ini__(self):
__pass
__# ここ
_def tes(self):
__pass

def __init__とdef tes(self)の間のインデント(#ここ)って無い方がいいよね?
0542デフォルトの名無しさん
垢版 |
2020/09/26(土) 14:00:10.58ID:0j6Y03dC
空白文字のみで構成される空行扱いになると思うので、どちらでも良いのでは?
0543デフォルトの名無しさん
垢版 |
2020/09/26(土) 14:30:58.76
やっぱそうか
削除するよりも放置する(気づかない)ほうが簡単なのでとりあえず放置しとくかな・・
0544デフォルトの名無しさん
垢版 |
2020/09/26(土) 14:32:01.89ID:ER2LZL5Z
行末が空白の連続で終わってるのは勝手にトリミングするエディタ使え
0547デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:30:22.20ID:gRR2jm5z
>>546
フォーマッターは色々試したけどBlackが一番楽だったな
細かいオプション弄れないってのは目から鱗だったわ

ただデフォルトの1行88文字だけイケてないから、そこだけ変えてるな
99がpep8にも従ってるから理想だと思うけど、個人的には120ぐらいの方が見やすいからそれで設定してる)
0548デフォルトの名無しさん
垢版 |
2020/09/26(土) 21:25:34.34ID:GBugeZhr
>>540
Windows98 というOS 自体が古すぎる。
サポート切れ

時間の無駄だから、捨てた方がよい

Windows7 でも、もうサポート切れだよ
0549539
垢版 |
2020/09/27(日) 20:47:58.24ID:2JLD83qY
>>545

windows10です 
0550デフォルトの名無しさん
垢版 |
2020/09/28(月) 01:01:50.23ID:eTNt7YMM
csv.readerで、10数桁の数値を読み込むと
指数表記になっちゃうんだけど、どうすればいい?
誰か教えてください・・・
0551デフォルトの名無しさん
垢版 |
2020/09/28(月) 06:34:33.43ID:JgS2isID
csv.readerは関係ない。表示するときに勝手に指数表示されてるだけ。
print(f"{v:.15f}")
とかして表示方法を指定する
0552デフォルトの名無しさん
垢版 |
2020/09/28(月) 08:37:01.65ID:nRbCQgPa
>>551
返信ありがとうございます。
読み込みは問題なかったんですね。
処理した後データフレームを作成し、
df.to_csv('c:\\python\\aaa.csv',encoding='utf_8_sig')
で出力すると、情報落ちが発生てしまうのですが
これもデータフレームに書き込む際にフォーマット指定すればいいんでしょうか?
0553デフォルトの名無しさん
垢版 |
2020/09/28(月) 12:01:38.28ID:PXJ7xAyj
全部文字列で処理しろ
0555539
垢版 |
2020/09/28(月) 15:35:18.48ID:CHxZqZBW
>>545
失礼しました。バージョンは2004と書いてあります、これでいいでしょうか。
0556デフォルトの名無しさん
垢版 |
2020/09/28(月) 18:23:16.35
a = False
b = False
のとき、

これと
print(True if not a == True and not b == True else False)
これって一緒の意味ですよね?
print(True if not (a == True and b == True) else False)
0557デフォルトの名無しさん
垢版 |
2020/09/28(月) 18:31:41.70ID:zjrobJ8x
if hoge == True: は使うと問題起きるので
if hoge:
で良い
0558デフォルトの名無しさん
垢版 |
2020/09/28(月) 18:36:32.27ID:5gUs019O
not a == True and not b == True
これは ~A ∩ ~B

not (a == True and b == True)
これは ~(A ∩ B)
であって等価ではない

一番上と等価なのは
not (a == True or b == True)
これは ~(A ∪ B)
0559デフォルトの名無しさん
垢版 |
2020/09/28(月) 18:37:46.83ID:fmmBl4Wo
ド・モルガンの法則だと、後ろの条件式はandではなくorなのでは? ベン図を描いてみたら?
0561◆QZaw55cn4c
垢版 |
2020/09/28(月) 18:54:17.64ID:ZZCh9OIz
>>559
ドモルガンは公理であって法則ではない!
0563◆QZaw55cn4c
垢版 |
2020/09/28(月) 20:03:35.77ID:iFBbxDDj
>>562
そんなに簡単に妥協してはいけない!
0564デフォルトの名無しさん
垢版 |
2020/09/28(月) 20:10:58.54
>>557
(実際はif hoge == True:は使ってないのでどうでもいいのですが)
使ったとしてif hoge == True:で問題が起きるようなコードなら
if hoge:でも問題がおきるのでは?
そうではなくhogeがTrueとFalseしか取らない場合でも
== Trueすること自体に問題があるということでしょうか?
(つまりhoge=Falseのときでも、hoge==TrueがTrueとなってしまう)

>558,559
ありがとうございます
なるほどあらためて言葉に書き下ろしたり
このような図にするとわかりやすかったです
https://i.imgur.com/Io2rS55.png
>>556の後半は、aとbの重なった部分以外(aとbの一部含む)
になってしまいますね
0565◆QZaw55cn4c
垢版 |
2020/09/28(月) 20:14:56.86ID:iFBbxDDj
>>564
そのベン図が有効なのは集合の要素が有限、いやせいぜい可算個までの場合ですね
無限集合に対しては無力だと思います
0566デフォルトの名無しさん
垢版 |
2020/09/28(月) 20:53:04.92ID:ejW4RwcM
TrueとFalseの二値論理なら等価だし、二値じゃないならTrueとの比較は
hoge == True こそが唯一の正しい方法ということになる。
0567デフォルトの名無しさん
垢版 |
2020/09/28(月) 21:12:11.60
>>566
安価がないのでだれに言っているのかがわからないのですが
(流れからいってそうなのかな、と迷う書き方をされているので・・)
さらに>>556>>557に系譜している返信かどうかもわからないので想像でかきますが
そもそも>>557は566に対しての返信じゃなく
独り言だったということでしょうか・・?
そうではなく関連した返信だった場合は話がズレていると思いますのでスルーしますねすみません

>>565
たしかに
もっと複雑なif文を一行で書こうとすると頭が混乱しそうなので
最初はネストして書いてから整理しようかなとおもいます
0569539
垢版 |
2020/09/28(月) 22:25:15.47ID:CHxZqZBW
>>568
そうですか。それではwindows用のpythonのopenssl更新法を教えてください。
0571デフォルトの名無しさん
垢版 |
2020/09/28(月) 23:54:27.84ID:KQK2imSo
>>566は、排中律が妥当しない三値論理等の場合(その意味で直接的にはPytnonと関係しない場合)を想定した議論かなと思ったが、その場合、if hogeという書き方ができるかどうかは、ifの構文に依存するのでは?
仮に、(Falseの場合に対応する)elseとパラレルなキーワードがifに付け加わるとすれば、三値論理等の場合でもif hogeという書き方はできそうな気もするが……。

>>570は、TruthとTruthyな値を区別するか否かという==演算子の意味づけの話だよね。
0572デフォルトの名無しさん
垢版 |
2020/09/29(火) 00:10:19.89ID:MtZ1Pd/Y
Truthyならif hoge:
普通は使わないが Trueであることを条件にしたければ if hoge is True:
if hoge == True: は__eq__の定義次第で変化する
0573デフォルトの名無しさん
垢版 |
2020/09/29(火) 00:42:41.01ID:Iz7+ZlTk
>>539
4月20日、「Python 2.7.18」をリリースした。
「Python 2」シリーズは、本バージョンが最終。すべての開発は終了

Python 2.7.18 を使えないの?
もう、2系もサポート切れだけど

これに変えても、OpenSSL のバージョンが上がるかどうかは、知らないけど
0576デフォルトの名無しさん
垢版 |
2020/09/29(火) 12:37:01.77ID:nGoip8g3
>>565
プログラム板で扱う、しかも条件式の中での集合論理なのだから可算個の論理演算でなんの問題もない。板違い
0577デフォルトの名無しさん
垢版 |
2020/09/29(火) 13:10:07.67ID:pVIW4ypp
>>575
メンテなら止むを得ず2使う
ライブラリやモジュールが2系しかなければ使う
それ以外の新規なら3
0578デフォルトの名無しさん
垢版 |
2020/09/29(火) 16:31:45.51ID:JH9UPQiv
>>575
1.8はもう捨てていいのではないかと思われ
1.9はR*b*Motion(iOS/macOS環境)があるから、完全には捨てきれない
いずれにしても、ライブラリやフレームワークといった移行性に問題が
無ければ、確実に性能向上が図られている2.xへ移行するのがベスト

もちろん性能、何それ美味しいの?って人は1.8.7を使い続けてもいい
特に日常的なテキスト処理に標準ライブラリだけで楽しんでいる人であれば、
後方互換性は維持されているから1.8から2.xまでお好きなように味見すればいい
0579デフォルトの名無しさん
垢版 |
2020/09/29(火) 18:55:37.73ID:85pY7Xlb
>>572
>普通は使わないが Trueであることを条件にしたければ if hoge is True:
この辺は動的言語特有の落とし穴があるから、安易に「使わない」とは言わない。
0580デフォルトの名無しさん
垢版 |
2020/09/29(火) 19:56:29.07ID:XIO1sidm
ブラウザからだと普通に繋がるのに
それと同じプロキシ、同じヘッダ使っても
pythonのrequestsからだとCloudflareのキャプチャに飛ばされる
何かまだ設定しないといけないのだろうか?
どちらにせよCloudflareに接続後に取得しているとみられるPHPSESSID周りが怪しいと思ってるんだけど
0582539
垢版 |
2020/09/29(火) 23:44:43.44ID:5dIuqAsn
皆さんありがとうございます。
結局anaconda使うことにしました。(pipがインストールできなかったので)
サイズが大きくまた機械学習はやらないのでほとんどが無駄ですが
容量はありますしやりたい作業が終わったらたぶんさくっとアンスコするので無問題です
質問は二つです
・使いたいソフトがpython2.7.3までのバージョンを指定してくるのですが
2.7.3で動いて2.7.4以降で不具合が出るソフトがありうるでしょうか。
・Traceback (most recent call last):
File "C:\Users\ユーザー名\Anaconda2\lib\site-packages\enchant\_enchant.py", line 143, in <module>
raise ImportError(msg)
このエラーの直し方を教えてください。windows10バージョン2004です。
0583573
垢版 |
2020/09/30(水) 00:02:00.02ID:/dbaz1tV
Python 2.7.3 と、2.7.18 は、パッチバージョンが異なるだけだから、基本的には同じでしょ。
ちょっとした修正

だから、
>>573
で、最新版にすれば? と言った
0587デフォルトの名無しさん
垢版 |
2020/09/30(水) 02:48:12.17ID:/dbaz1tV
5ch の運営は、ダブルクリック対策も知らない馬鹿

ちょっとした連続クリックで、2回書き込まれてしまう
0588デフォルトの名無しさん
垢版 |
2020/09/30(水) 08:49:24.91ID:6w0L7884
同一内容文のマルチポストチェックはされてるはずなのになんでなんだろうな
0591デフォルトの名無しさん
垢版 |
2020/09/30(水) 12:57:00.51ID:M5cvcI7i
WebApp & APIになってるからじゃね?
昔ながらのhtmlのsubmitならダブルクリックで2重になるってことはないでしょ。
■ このスレッドは過去ログ倉庫に格納されています

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