くだすれPython(超初心者用) その50【まず1嫁】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★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 ### まぁそれならあとはVScodeから実行するならpython3のパスを通してやるか
Terminalから直接pyファイルを実行するならpython3で実行してみるか 488ですが無事解決しました。
何も考えずにYouTubeの動画のチュートリアルで言われた通りに入れたanacondaと、VScodeでInstallしたpythonのpathが合っていなかったのが原因でした。
完全にanacondaをアンインストールすれば実行できました。
お騒がせしました、ならびにありがとうございました。 指定した整数の回数だけ、同じカウントをやりたいのです
count = 0
life = 5
d = 0
for i in range(100):
_if d == life:
__d=0
__count+=1
_print(count)
_d+=1
# 000001111122223333344444555556666677777...
みたいなカウントの仕方です
dが野暮ったい気がするのですがもっとシンプルに書けないものでしょうか for i in range(100): print(i // life) >>496
できたーーー!
ありがとうございます! import itertoolsとnext()なる便利なものを知ったのですが
これ、”一周回ってきた”を知るにはどうしたらよいのでしょう
リストの長さをカウントするしかないのでしょうか? 意味不明
無限イテレータなら一周なんて概念はないし
listみたいなイテレータなら一周以上できないから一周しか存在しないだろ
変な説明するよりコードを提示して質問しろ ある自然数を適当に分割したいんです。
例えば100という自然数があったばあい10,50,16,24みたいな感じです。
教えてエロい人 ごめん。実際は3分割したいのです。
よろしくしまっす。 >>502-503
てきとうって完全ランダム?1,1,98とかもOKってこと? >>504
1,1,98でも構いませんが、
分割する場合、それぞれの値の期待値が同じになれば大丈夫っす。 分割する自然数=100
分割数=3
配列=[]
配列2=[]
for i in range(分割数):
配列.append(random.random())
for i in range(分割数):
配列2.append(配列[i]/sum(配列)*分割する自然数)
print(配列2)
ちなみに私が思いつきで書いた公式です。
結果が少数になってしまうので不採用となりました。。。 Python もマルチバイト文字が使えるようになったか。 >>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すればいいだけなのですが気になりまして >>505-506
期待値同じ縛りなのか・・・
合計がピッタリ分割もとの数になるように
ランダムさんを割り当ててくのってむずかしいきがした。
おれかんがえたのは
506の記法に従うと
max=分割する自然数-分割数+1
for i in range(分割数):
____tmp=random.randint(1,max)
____配列.append(tmp)
____max=max-tmp-(分割数+1-i) >>509
つまりitertools以外のものであれば
it_ary.count(今の位置を整数で取れる)だったり
'c'をprintし終わったあとに実行できるようなit_aryにコールバックを設定できたり
そういう慣例があるということでしょうか?
自分でそういうモジュールを作る、という話ではないですよね? ID隠してるやつは土着の?あらしだからスルーな>>all あらしと思わせたければIDを隠す
そう思わせたくなければIDを出す
これだけで精神レベルの低い人間を簡単に操作することができます おれいを言うとチヌ病気にかかってるアフォに目印ついて便利っちゃー便利>うんこ装着してID隠し >>512
f=True
while f:
_for n in ['a','b','c']:
__print(n)
_print('回った') >>510
ありがとう。
配列[0]に大きい数字が入りやすいけど最後に
シャッフルすれば期待値は同じになりそうですね。 >>500
StopIterationがraiseされる >>516
そうなんです
使わないのなら2重ループすればいいし
使うなら分岐でitertools自身の関数を使えるし
それらの落とし所を探っている感じです
>518
cycleはその名の通りstopしないのでしょうがisliceなどはtry:except StopIteration:で処理を分岐できました
ただ、もしかしたらという方法を何個か思いついたので試してみたいとおもいます
ありがとうございました コードを書く以前に日本語で仕様を書く練習をしたほうがいいやつが多いな 100個の候補から150個ランダムに出力する場合
期待値同じに出来ないだろう n = ['aaa','bbb']
m = ('ccc','ddd')
n = n + m
は通らないのに
n += m
は通るのはなんでだで? Pathlibで拡張子抜きのファイル名だけリネームしたいんだけど
renameの仕様が凄く気持ち悪い
なんでrename(’hoge’)でhoge.txtにリネームしてくれないんだ… >>525
ファイル名だけリネームならバッチで充分やろ そんなリネームする関数がある環境が知りたいわ
VBAとかにはあるのかな Pathlibのrenameはosのrenameを呼んでる
osのファイルシステム操作関数はposixインターフェースに習っている
文句はposixに言ってくるべき >>531
ren foo.txt bar.*
もしかしてこういうのを拡張子を指定しないと言ってる? >>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とかでインストール失敗するんですよね とあるサイトをrequests.getするとres.status_codeで403が返ってきます
ブラウザからだと普通に繋がります
で、User-AgentやらRefererをブラウザのリクエストヘッダから写し取り
headersに設定したのですがやはり403です
何か他に思いつく要因はありますでしょうか?
ちなみに他のサイトだと403だったのがheadersの設定後、200のステータスコードを取得できました あと同じ403でもheadersを設定した場合と設定しなかった場合とで
微妙にrequests.get後のresponse.textの内容が変わってるので
headersやその他に足りないパラメータがあるのかと思うのですが・・ とりあえずブラウザ使ってる時のリクエストを丸コピする
copy as cURLしてどのヘッダーが必須なのかを
curl使って切り分けしてからコードにすると楽 >>537
あらためてコピペで設定したらすんなり通りました・・
なんらかのコピペミスだったのか
(あと、403になったあとに接続するとどうやら一定期間
同じipで全ページで接続できなくなる仕様みたいでした、それが関わっていたのかもしれない)
とにかくできました
ありがとうございました 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というコマンド?が認識されないです Windows98を使ってます。
YouTubeを見るにはどうすればいいですか?
Meにバージョンアップはできません
理由は
>>472
に書いてます class hoge:
_def __ini__(self):
__pass
__# ここ
_def tes(self):
__pass
def __init__とdef tes(self)の間のインデント(#ここ)って無い方がいいよね? 空白文字のみで構成される空行扱いになると思うので、どちらでも良いのでは? やっぱそうか
削除するよりも放置する(気づかない)ほうが簡単なのでとりあえず放置しとくかな・・ 行末が空白の連続で終わってるのは勝手にトリミングするエディタ使え >>546
フォーマッターは色々試したけどBlackが一番楽だったな
細かいオプション弄れないってのは目から鱗だったわ
ただデフォルトの1行88文字だけイケてないから、そこだけ変えてるな
99がpep8にも従ってるから理想だと思うけど、個人的には120ぐらいの方が見やすいからそれで設定してる) >>540
Windows98 というOS 自体が古すぎる。
サポート切れ
時間の無駄だから、捨てた方がよい
Windows7 でも、もうサポート切れだよ csv.readerで、10数桁の数値を読み込むと
指数表記になっちゃうんだけど、どうすればいい?
誰か教えてください・・・ csv.readerは関係ない。表示するときに勝手に指数表示されてるだけ。
print(f"{v:.15f}")
とかして表示方法を指定する >>551
返信ありがとうございます。
読み込みは問題なかったんですね。
処理した後データフレームを作成し、
df.to_csv('c:\\python\\aaa.csv',encoding='utf_8_sig')
で出力すると、情報落ちが発生てしまうのですが
これもデータフレームに書き込む際にフォーマット指定すればいいんでしょうか? すみません、上手く行きました。
ありがとうございます! >>545
失礼しました。バージョンは2004と書いてあります、これでいいでしょうか。 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) if hoge == True: は使うと問題起きるので
if hoge:
で良い 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) ド・モルガンの法則だと、後ろの条件式はandではなくorなのでは? ベン図を描いてみたら? >>559
ドモルガンは公理であって法則ではない! >>561
数学的に厳密な話はわからないや、ごめんね。 >>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の一部含む)
になってしまいますね >>564
そのベン図が有効なのは集合の要素が有限、いやせいぜい可算個までの場合ですね
無限集合に対しては無力だと思います TrueとFalseの二値論理なら等価だし、二値じゃないならTrueとの比較は
hoge == True こそが唯一の正しい方法ということになる。 >>566
安価がないのでだれに言っているのかがわからないのですが
(流れからいってそうなのかな、と迷う書き方をされているので・・)
さらに>>556と>>557に系譜している返信かどうかもわからないので想像でかきますが
そもそも>>557は566に対しての返信じゃなく
独り言だったということでしょうか・・?
そうではなく関連した返信だった場合は話がズレていると思いますのでスルーしますねすみません
>>565
たしかに
もっと複雑なif文を一行で書こうとすると頭が混乱しそうなので
最初はネストして書いてから整理しようかなとおもいます >>549 >>555
いいけど
そのConfigureってやつはLinux系用の命令だから
そのままでは動くはずがないぞっと >>568
そうですか。それではwindows用のpythonのopenssl更新法を教えてください。 >>566
2 は True だけど True と等価ではないよね。 >>566は、排中律が妥当しない三値論理等の場合(その意味で直接的にはPytnonと関係しない場合)を想定した議論かなと思ったが、その場合、if hogeという書き方ができるかどうかは、ifの構文に依存するのでは?
仮に、(Falseの場合に対応する)elseとパラレルなキーワードがifに付け加わるとすれば、三値論理等の場合でもif hogeという書き方はできそうな気もするが……。
>>570は、TruthとTruthyな値を区別するか否かという==演算子の意味づけの話だよね。 Truthyならif hoge:
普通は使わないが Trueであることを条件にしたければ if hoge is True:
if hoge == True: は__eq__の定義次第で変化する >>539
4月20日、「Python 2.7.18」をリリースした。
「Python 2」シリーズは、本バージョンが最終。すべての開発は終了
Python 2.7.18 を使えないの?
もう、2系もサポート切れだけど
これに変えても、OpenSSL のバージョンが上がるかどうかは、知らないけど >>569
573がなんか書いてくれてるからそれ嫁 PythonとRubyのバージョン2はもう捨てていいの? >>565
プログラム板で扱う、しかも条件式の中での集合論理なのだから可算個の論理演算でなんの問題もない。板違い >>575
メンテなら止むを得ず2使う
ライブラリやモジュールが2系しかなければ使う
それ以外の新規なら3 >>575
1.8はもう捨てていいのではないかと思われ
1.9はR*b*Motion(iOS/macOS環境)があるから、完全には捨てきれない
いずれにしても、ライブラリやフレームワークといった移行性に問題が
無ければ、確実に性能向上が図られている2.xへ移行するのがベスト
もちろん性能、何それ美味しいの?って人は1.8.7を使い続けてもいい
特に日常的なテキスト処理に標準ライブラリだけで楽しんでいる人であれば、
後方互換性は維持されているから1.8から2.xまでお好きなように味見すればいい >>572
>普通は使わないが Trueであることを条件にしたければ if hoge is True:
この辺は動的言語特有の落とし穴があるから、安易に「使わない」とは言わない。 ブラウザからだと普通に繋がるのに
それと同じプロキシ、同じヘッダ使っても
pythonのrequestsからだとCloudflareのキャプチャに飛ばされる
何かまだ設定しないといけないのだろうか?
どちらにせよCloudflareに接続後に取得しているとみられるPHPSESSID周りが怪しいと思ってるんだけど 別の串にしたら普通に繋がったわ…
お騒がせしました 皆さんありがとうございます。
結局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です。 Python 2.7.3 と、2.7.18 は、パッチバージョンが異なるだけだから、基本的には同じでしょ。
ちょっとした修正
だから、
>>573
で、最新版にすれば? と言った 5ch の運営は、ダブルクリック対策も知らない馬鹿
ちょっとした連続クリックで、2回書き込まれてしまう 同一内容文のマルチポストチェックはされてるはずなのになんでなんだろうな この前LinuxコマンドかSQL書いたら規制されたぞ WebApp & APIになってるからじゃね?
昔ながらのhtmlのsubmitならダブルクリックで2重になるってことはないでしょ。 ■ このスレッドは過去ログ倉庫に格納されています