Pythonのお勉強 Part64
■ このスレッドは過去ログ倉庫に格納されています
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに増やすこと。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」をNGワード登録推奨
・エラーを解決したいときは、まず
エラー文(勝手に省略/スクショうp等の横着禁止)と
おま環(Pythonのバージョン+OS名IDE名と夫々のバージョン)を書け。
★Pythonのソースコードを5ちゃんに直コピペするとインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをimgur等にうpる「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。最近流行中?
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ●
くだすれPython(超初心者用) その46【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1577948214/
〇前スレ〇 Pythonのお勉強 Part63
https://mevius.5ch.net/test/read.cgi/tech/1582507911/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなってからだいぶ経っつる)### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured ファイルをwatchして読み取り専用で表示を更新してくれるようなViewerがあればいいかもね
openpyxlじゃなくてxlwingsならファイル操作じゃなくCOM経由でExcelを操作するから
リアルタイムでExcelの表示が更新されるよ >>315
xlwingsを軽くググったら、こっちの方が自分向きかもしれない >>305です
pythonの標準入力で、入力した文字列の中に判定文字が含まれればprintで表示、該当する文字列がなければ なし と表示したいです
で、コードを書いてみたけど何を入力しても "該当文字列なし" としか表示されないの
コードのどこがおかしいか教えてください。。
s = int(input()) #入力文字列の個数
search_string =str(input()) #判定文字
flag = True
for i in range(s):
string = input()
if string in search_string: #ここで文字が含まれるか判定
print(string)
flag == False
else:
break
if flag == True:
print("該当文字列なし") >>319
stringとsearch_stringが逆 こうですかね?
s = int(input())
search_string =str(input())
flag = True
for i in range(s):
string = input()
if search_string in string:
print(string)
flag = False
else:
continue
if flag == True:
print("該当文字列なし") >>325
ケツから2行目のif flag == True:は
if flag:だけでおk
それから
次のレスを書き込む前に>>1嫁 if flag == True:
ブール代数を勉強したなら↑これは↓こう書ける。
if flag:
あと
else:
continue
は必要なのかね。 >>326
>>327
まだまだ自分が甘ちゃんだということが分かったよ。。
インデントについてはすまぬ >>329
まだCランクの問題が解けたり解けなかったりってレベルですね
精進精進。。。 >>329
年寄りはダメか。
パイザの主人公、女子高生とかだしな。 pythonからプログラムに入るのか。
pythonとか便利すぎるからな、初めはCのが良い気がする。
まあ、いいんだけど。 >>333
表記がシンプルなんで学びやすそうな印象を受けたんですよね 主にCで飯を食ってる身だが必要に迫られない限りCのような旧石器時代の言語を勉強する必要はないと思うぞ
まあ静的型付けの言語を先に勉強すべきだとは思う
コンパイル通らないからPythonってのはダサいし害悪 >>336
動的型付け言語と静的型付け言語の違いって
型宣言の有無位ですかね?
いまいちどう違うのか分からない >>337
実行前に型が決定されるのが静的型付け
実行時に型が決定されるのが動的型付け pythonも結局速度が必要なところはc/c++じゃん。
機械学習ならpythonって言われるけど、どのライブラリもバックエンドはC/C++で、適材適所でpythonと協調動作している。
CもC++もここ10年でこれまでにない速さで進化してるし、勉強しておいて損はないと思うぞ。
あ、でも僕のおすすめはJavaかC#かな。洗練された膨大なAPIを眺めるのはとても有意義だからね
python覚えたらこれらの言語も是非 Javaが闇鍋とか言ってたらPythonは風呂とか便器とかのレベルだな Linuxカーネルは確かCで作ってある
カーネルを理解するのにCの理解は必要と思う
ちょっとしたツールを作りたいと言うなら
とっつきやすくすぐ動かせる言語が便利だと思う
人に使わせたいアプリケーションなら
実行性能とメンテナンス性の高い言語を選ぶと良い >>348
ありがとう。
ラズパイでPyQt5+eric6の環境なんですが、コーディングチェックにお勧めのツールをアドバイス頂けますか? メモリ16GB 以上のパソコンで、
Windows 10, WSL2, Docker などで、コーディングするのがベスト
VSCode で、Microsoft の拡張機能も入れる windowsのC#アプリ作るにVS2019Pro入れているけどVsCodeですか。
ところで文字列は" "でやってますが' 'じゃないと駄目ですか? >>350
ラズパイにPyQt5とeric6入れてVNCでQtDesignerでGUI設計しながらデバックしてます。
初めて通過するコードで綴りミスがあるとがっかりなんです。
バグなら納得しますが。 >>352
>”派’派
基本的には、好きな方でおk。
英語キーボードでは「”」はうちづらく「’」なら楽、らしいので
英語圏からのソースコピペをよくやるのならば「’」に統一した方が
足並みがそろうので多少は気分がいいかもしれない
ほかについては他の人のレスちゃんと読んでおk ちげーだろ
宗教的戒律によって「文字列は''で囲む」と決まっている
その主流派に従うかどうかは信心次第 みなさんありがとう。
もう一つ質問です。
ラズパイですが、AutoStartの「~/.config/lxsession/LXDE-pi/autostart」に
「/usr/bin/python3 /home/pi/Desktop/Test/main.py」としていますが、
カレントディレクトリが/home/piになっていているため、ソース内の.pngファイルが/home/piに存在しないためエラーになります。
.pngファイルはQt Desginerでボタンのアイコンで.uiファイルに記録されて、コンパイル後の.pyは“hoge.png”で”/home/pi/hoge.png”に書き換えないと動作しません。コンパイル後の.pyは触りたくないのですが、AutoStartで良い方法はありますか? シェルスクリプトなどに倣って、展開する予定がないならシングル、そうでないならダブル、という使い分けをしている派閥も多そうだけど(自分も)。
ちなみに、最近人気のBlackというフォーマッタは、ダブルへの統一を推奨している。 静的型付け言語見てみたけど、これ記述量が多いから大変だなあ
このご時世で一からコーディングすることってあるのかな 記述量が多くて大変って感覚がわからんけどね
スマホ世代でキー入力が余程苦手とか遅いとか? >>360
キーボード入力で変な癖がついちゃってブラインドタッチ出来ないの
ノールックでガンガン打てる人が羨ましい >>357
プログラムの引数にするか
外部設定ファイルから読み取る >>363
Qt Designerでボタンのアイコンにソースフォルダのhoge.pngを指定して、そのuiファイルをコンパイルするとpyファイルにQtGui.QPixmap("hoge.png")なってしまうので、pathを付けるにはpyファイルを編集することになるのです。
AutoStartでカレントディレクトリが指定出来れば良いのですが。
pythonから話題がそれますので、ラズパイへ移動します。 >>361
英字キーだけならほぼ移動無いけど
記号とか数字とかがからむと
メーカーや機種でキーボード上の位置かなり違う
眼瞑って打てる必要は無い >>364
それあるよね。
おれはshellファイルを作って。
pyuic5 -o ui_file.py file.ui
sed -i -e 's/hoge.png/\/home\/pi\/hoge.png/g' ui_file.py
みたいに力技で直してるw
正しい方法があるならオレも知りたい。 アプリ内の画像ファイルが、
/home/pi/hoge.png
こういう場所にあると想定されるのが、おかしい
アプリの作り方が間違っているのでは?
普通、アプリ内のリソースは、アプリのディレクトリ以下にあるはず。
/home/ユーザー名
の直下にあるのは、おかしい >>367
っていうか。
Qt Designerでフルパスで指定しても、出来上がったuiファイルの中身が相対パスになっちゃうんだよ。
その場で動かせばパスが通るんだけど、違う所だとパスが通らない。
まあ、Qt Designerのバグだと思うんだけど。 qtの問題じゃないのでは?
画像を全部Testディレクトリにぶっこんで、
/usr/bin/python3 ...
のところを
(cd ~/Desktop/Test; /usr/bin/python3 main.py)
に書き換えれば動くんじゃね 先頭でカレントディレクトリを変更
os.chdir(os.path.dirname(__file__)) >>370やな
エクセルVBAなんかでもよく初心者がつっかかってるとこやな >>368
解説ありがとうございます。
私もQt Designerの悪さと思います。
しょうがないのでui側でアイコン設定しないで継承する実体クラスにコードを書いてカレントディレクトリが/home/piならパスを反映させる様にしました。
でもQt Designerでアイコンとテキストのサイズ確認が出来ないのが不便です。 >>373
subprocessでディレクトリ移動しても駄目だった。 >>368
Qt Designer って、Qtを作っているプロが作っているのかな?
そんなプロが、場所を変えるだけで動かないような、アプリを作るかな?
ちょっとテストすれば分かるものだから、そんなプロがいるとは考えにくい
失礼な先入観かも知れないけど、
君らのアプリの作り方が間違っているのじゃないの?
失礼で、スマン ツールに頼る者はツールに泣く
ライブラリに頼る者はライブラリに泣く
これに懲りて他人依存のプログラミングはやめることだ
Pythonには標準で十分な機能が備わっている >>375
そう実際そうなんだよ。
こっちの使い方間違いのせんも大いにある。
だから詳しい人がいたら聞きたいんだよね。 >>375
プロはGUIの部分のテキストを作ってるだけなので
これはlinux shell scriptの制限 「Qt リソースファイル」で検索すればいいよ
変なこと言ってる人がたくさんいて驚く 画像のモザイク消したい場合、どのへんの勉強したらいいんでしょうか?
ganからやるべきなのか、既存のライブラリを使うべきなのか
deepmosaicというのを使ってみたけど、あんまりクリアにならない 普通に考えるとプログラム自身が使うリソースファイルを
フルパスで指定するってのは違和感あるな、配布等も考慮すると相対パスでアクセスできる方が都合が良いだろうし >>382
相対パスもカレントディレクトリが定まってないと意味無し
windowsはexeファイルがあるディレクトリのライブラリを読む仕様
要するに仕様を知らないで動かないのを自分以外のせいに
しないで >>368
>Qt Designerのバグだと思うんだけど
俺はPyQt使ったことないけど、Qt Designerは超使われているツールなんだろ
そんなのにこんなバグがあるっておいおいツールすぎじゃないか
Linuxは超ユーザー少なくてバク放置で良いって感じなのかな Qtインストールするときに/home/piを指定したんじゃないの?
デフォルトが/home/[user]/Qtってのも考えものだけどw
/usr/share/qt/とかにインストールし直してみては? Qt Designerでアイコンのファイルを指定するとファイルダイアログボックスが出て、ソースフォルダ内のhoge.pngファイルを選択すると.uiファイルには"hoge.png"が登録されて、変換後の.pyファイルにも"hoge.png"になるから相対パスが条件と思います。
AutoStartはパス指定が/home/piで呼び出すから、今回の問題となっています。 hoge.png が、相対パスになっているのなら、たぶん正しい
>AutoStartは、パス指定が/home/piで呼び出す
この決め打ちがおかしい。
このアプリは、まともなアプリなのか?
まともなアプリなら、設定できるはず。
その方法を調べれば? >>387
アプリがおかしいと言われてもmain.pyは以下の通りでMainWindowを呼び出すだけです。
from PyQt5.QtWidgets import QApplication
from mainform import MainWindow
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
Window = MainWindow()
Window.showFullScreen()
sys.exit(app.exec_())
フォルダー表示でmain.pyをクリックすればラズパイのThonnyが起動して、Runさせる分には相対パスでアイコンは現れます。
別のフォルダーに移動しても同様にアイコンは現れます。
AutoStartで起動するとNGです。
AutoStartの“~/.config/lxsession/LXDE-pi/AutoStart”ファイルには
/usr/bin/python3 /home/pi/Desktop/Test/main.py
としています。
このAutoStartファイルの書き方がおかしいのでしょうか?
cd /home/pi/Desktop/Testも入れてみましたが結果変わらずです。
アプリ側でフォームのラベルにカレントディレクトリを表示すると/home/piです。
# 現在のpathを取得する
import os
self.path = os.getcwd()
self.ui.testLabel.setText(self.path)
です。 「僕の思った通りに忖度してやってくれないからクソ」 スクリプトと同じフォルダにアイコンのファイルを配置できないならリソースファイルを使う
それだけ
autostartの話はともかく考え方としては>>367の言ってることは正しいよ >>390
ありがとうございます。
リソースにしたら問題解決しました。 Java と TypeScript ( JavaScript ) からは、Win32API 叩いたことあるんだけど、
それらと比べて、Python から Win32API 叩くのってどれくらい楽?難しい?
C++ とか除けば C# が一番ラクなのはとりあえず知ってる。 英語圏でも、characterの短縮語にも関わらず、チャーかカーが主流みたいよ。
残念ながら大佐は主流でないようだ… 256倍本に読み方が載ってる
pythonじゃなくてCのやつな >>390
アイコン等のリソースはどっかに配置したraw dataを直接指定ではなく
リソースファイルを通して扱うのが正しい(常識的)なやり方なんだろうな。 リソースファイルと言っても.pyファイルでimportで指定するだけ。
直接オブジェクトファイルを指定するとアプリディレクトリとカレントディレクトリが合わないと駄目で、何でimportだと良いのか理解は出来ていません。 https://dpaste.com/6HUZFQTQQ
九九の表を作るプログラミングを書いているんですが、nの段の終わりに改行したいです
現在のコードだ改行が二回入ってしますのですがなぜでしょうか >>402
rangeが1〜10になってるからiが9の時と10の時に改行が入る あ、そうか
なんで改行文字入れたんだ。。
ありがとうございます >>402
i判定の前にi表示して実行してみては? >>381
BOOTHにあるモザイク除去の技術書が良かったからオススメ OpenpyxlでExcelいじってるんだけど、列ごとの最終行のセルを調べたい。どうしたらいいの? ダメもとで、pythonのsliceみたくインデックスに-1指定してみるとか? len(ws['A'])
最終行以降に余計な書式がついてると意図しない数が返ってくるから結局自分でカウントするほうが無難かと Openpyxlって読み取り専用のExcelファイルに書き込みってできないですよね?
読み取り専用解除→書き込み→読み取り専用に戻すっていう処理はどうやって書けばいいんですかね? ■ このスレッドは過去ログ倉庫に格納されています