くだすれPython(超初心者用) その50【まず1嫁】

■ このスレッドは過去ログ倉庫に格納されています
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 ###
2020/09/02(水) 12:43:56.82ID:CUgqg1rv
>>95
モジュール
99デフォルトの名無しさん
垢版 |
2020/09/02(水) 14:58:25.48ID:PicHUi2j
VBAで描いたら6000行は下らないから
pythonで600行なら良く出来た方じゃね
2020/09/02(水) 14:59:44.60ID:/XFBlUpE
>>95
モスコミュール
2020/09/02(水) 15:28:52.69ID:D/RfpMe8
>>99 Python でそんなになるはずないだろ。
統計処理で何をやってるのか知らないけど。matplotlib でグラフを書くだけだろ。
2020/09/02(水) 16:32:21.76ID:U40YU3HI
jupyter/scipy-notebook というDocker を使えば、一式揃っているのでは?
2020/09/02(水) 16:59:24.39ID:uEUYmCsp
1 データ成型
2 統計書
3 グラフ出力
4 画像出力

とやってたら600行越えてちょっとややこしくなってきました。
1〜4の間でやり取りするデータやDFが多いのと、
単なる逐次処理で、クラスにしても内部保持するデータがないのでどうすればいいのかと悩んでます。

モジュール化勉強してみます。
104デフォルトの名無しさん
垢版 |
2020/09/02(水) 17:03:34.59ID:PicHUi2j
描き捨てならメリット無い
モジュール化して見透しが良くなったりするかも知れないが行数は減らないだろう
2020/09/02(水) 17:07:08.13ID:uEUYmCsp
すいません。
もう一つ質問なんですが、
関数で引数がなかったら処理1、引数があれば引数をつかった処理2をさせたいときは以下のようなコードをかけば良いのでしょうか?

def show_start_menu(hoge=None):

if (hoge is None):
処理1

else:
print(hoge)
2020/09/02(水) 17:10:14.14ID:65NJoCJF
>>105
>if (hoge is None):
>処理1
ここ↑って
if hoge:
処理1
じゃ、イカン何か特別な理由ある?
あと、引数でNoneが渡ってくる可能性は0?
2020/09/02(水) 17:11:49.02ID:65NJoCJF
>>103
104を読め

そして
おれいをいうとチヌ病気をなおせ
108デフォルトの名無しさん
垢版 |
2020/09/02(水) 17:12:11.98ID:PicHUi2j
def function(*hoge):

def function(**fuga):

def function(*hoge, **fuga):
2020/09/02(水) 17:45:10.63ID:6BwXysZH
ほげほげふが
2020/09/02(水) 18:09:21.38ID:oPbAh6sy
>>104
見通しがよくなるのがメリットでしょ
書捨てでも600行もあれば見通しが悪いと変更に時間がかかるようになる
それにコードを構造化することで考え方やパターン認識が強化できるから上達も早くなるよ
2020/09/02(水) 18:11:15.00ID:65NJoCJF
> パターン認識が強化できる
ヒソ( ´・д・)ヒソ(´・д・`)ヒソ(・д・` )ヒソ
2020/09/02(水) 18:32:57.09ID:oPbAh6sy
>>105
Noneでもいいけどデフォルト値が使えるならそのほうがベター
関数定義時にデフォルト値が定まらず
呼び出し時に動的に評価させたい場合はNoneにする
2020/09/02(水) 18:44:05.33ID:7n9X1hO3
デフォルト引数の =[] でハマる人ですね判ります
2020/09/02(水) 20:52:48.67ID:oPbAh6sy
>>113
そういうのは一度ハマればいいと思うよ
色んな意味でPythonのレガシーなところを知る取っ掛かりになるから
2020/09/02(水) 20:55:16.63ID:65NJoCJF
さらっとエンバグすすめんなw
2020/09/03(木) 01:02:16.73ID:HRrMH9TX
エンバーーーーグ
嫌ぁああああ♪
I will always love youぅううう♪
2020/09/03(木) 01:06:00.70ID:9keo2Hbe
c#からpython起動するときにcsvファイルのパスを渡したいのですがこういうときってどうやるのでしょう
どうもc#から起動時に飛ばさpythonのに引数としてパスは渡せないっぽい。テキストファイルに書き込んでやり取りがシンプルなのかな
2020/09/03(木) 04:22:16.36ID:FwEdzFo5
>>117
json
2020/09/03(木) 06:47:41.92ID:lLKpXXcZ
>>117
なわけ無いだろ。やり方がおかしいだけ
2020/09/03(木) 07:33:38.71ID:1sdfw5t+
>>117
>飛ばさpythonのに引数としてパスは渡せない
おまえがばぐっとるぞw
なおせ
はなしはそれからだ
121デフォルトの名無しさん
垢版 |
2020/09/03(木) 08:35:20.00ID:QpPhCbCy
チョンは犯罪者!
日本から駆逐すべき!
122デフォルトの名無しさん
垢版 |
2020/09/03(木) 13:01:05.48ID:DK3Ul6vK
C#のスレにマルチしてた人か
もう解決しただろ
2020/09/03(木) 16:18:10.35ID:a0nrio53
Notepad++ はauto complete使えるですか?
vs codeが楽なんでしょうけどね
2020/09/03(木) 17:29:40.22ID:1sdfw5t+
>>123
Notepad++はPythonじゃない件
2020/09/03(木) 17:30:35.78ID:1sdfw5t+
(設定できる腕前があるようなヤツなら
ぐぐってとっくに使ってるだろJK)
2020/09/03(木) 20:11:34.47ID:oRLrJFx7
>>123
使えるよ
https://npp-user-manual.org/docs/auto-completion/
でも同梱されてる補完用のxmlファイルはpython2用のままだと思うので、自分で修正するか、jediとか使った方が良いかも
vscodeの方が日本語の情報も多いしオススメ
2020/09/03(木) 21:16:33.96ID:9keo2Hbe
tkinterで

root = tk.Tk()
button = tk.Button(root, text='時系列で分析', width=20,
font=menu_font, command=graph(root))

def graph(root):

としてgraph関数ないでrootから取得した値を使いたいのですが、

button = tk.Button(root, text='時系列で分析', width=20,
font=menu_font, command=graph)

としないと、ボタンを幼くてもgraph(root)が実行されてしまいます。
ボタンを押したら引数を渡して関数を実行させるにはどうしたらいいのでしょう?
2020/09/03(木) 21:53:57.71ID:mT93v89x
>>127
command=lambda:graph
でどうかな?

参考サイト
https://teratail.com/questions/118018
2020/09/03(木) 22:41:45.57ID:9keo2Hbe
>>128
ありがとうございます
引数渡すことは出来ました
2020/09/03(木) 22:44:30.33ID:9keo2Hbe
ボタンが押されたらテキストボックスに入力した名前を習得し、
analyze関数にわたしたいのですが、

# Make text box
txt = tk.Entry(root, width=20)

name = txt.get()

# Button1
button1 = tk.Button(root2, text='1データを分析', width=20,
font=menu_font, command=lambda: analyze(name))

ではうまくいきません。
一つのボタンでテキストボックスの名前取得、関数に引数として渡して実行の2つを行う方法ってないでしょうか?
2020/09/03(木) 22:52:29.22ID:9keo2Hbe
もしくは

button1 = tk.Button(root, text='1データを分析', width=20,
font=menu_font, command=lambda: analyze(root2))
button1.place(x=120, y=90)


def analyze(root):
name=root.txt.get()
print(name)

みたいな感じでrootを渡してcommandから呼び出した関数でテキストボックスの値を取得して複数の命令を実行したいのです。
2020/09/03(木) 22:53:26.89ID:9keo2Hbe
すいませんコード修正します。

もしくは

button1 = tk.Button(root, text='1データを分析', width=20,
font=menu_font, command=lambda: analyze(root))
button1.place(x=120, y=90)


def analyze(root):
name=root.txt.get()
print(name)

みたいな感じでrootを渡してcommandから呼び出した関数でテキストボックスの値を取得して複数の命令を実行したいのです。
2020/09/03(木) 22:53:45.02ID:mT93v89x
自分もまだまだ初心者で分からない所あるけど流れからすると

1.画面開く
2.テキスト実装
3.テキストの値取得(空っぽ)
4.ボタンの実装

ボタンを押した時の引数値は2の値
もし、2で正しく値が取れてるなら引数にtxt.get()を渡す。
もしくはnameをglobal宣言
2020/09/03(木) 23:08:17.66ID:9keo2Hbe
global変数はスコープの関係でのちのちややこしくなるので、定義したくないんですよね。
でもググった例では確かにグローバル変数使ってるんですよね。

GUIのボタンを押したらテキストボックスから値を取得するだけのことなのに、
なんでこんなに難しいんだろう・・・。
135デフォルトの名無しさん
垢版 |
2020/09/03(木) 23:10:57.19ID:0NFHPd2z
馬鹿には無理
2020/09/03(木) 23:37:06.03ID:0U0YdbWY
この連投カスだけはうまくいかないとざまあと思うわ

C#
Windowsのフォルダパス
スクレイピング
イテレータ
2020/09/03(木) 23:48:10.20ID:9keo2Hbe
質問をきちんと整理すると

関数内で
1. ウィンドウ、テキストボックス、ボタンを作成
2. ボタンを押したらテキストボックスの値を取得
をしたいのですが、

def sub_menu():

# Make text box
txt = tk.Entry(root, width=20)

# Button1
button1 = tk.Button(root2, text='テキストボックスの値を取得', width=20,
font=menu_font, command=????????)

command=????????
のところでどう記述すればテキストの値を取得できるんでしょう?
2020/09/03(木) 23:56:08.09ID:pZSgCrgx
pyqtにしてみたら
2020/09/04(金) 00:04:29.92ID:x27eEnB4
>>128
ありがとうございます
引導渡すことは出来ました
2020/09/04(金) 00:29:41.73ID:3nni6rVq
ひかえーい!ひかえおろー!!
2020/09/04(金) 00:33:38.52ID:Wl7qFIBb
HTML, jQuery では、
ボタンをクリックすれば、入力コントロールから文字列を取得する

<input type="text" id="Text1" value="あいう">

<button id="Button1">押して</button>

<scr@ipt>
$( "#Button1" ).click( function ( ) {
console.log( inputText = $( "#Text1" ).val( ) )
} )
</scr@ipt>

<scr@ipt> の@ は、5ch に書き込めないので入れたので、無視して
2020/09/04(金) 06:44:21.02ID:cc1Vcc3X
vscodeが重いのですが、軽量エディタあるですか?
補完ありで
2020/09/04(金) 07:18:31.82ID:jvrr6lZ7
>>142
notepad++を自前で補完セッティングする
Py3に対応する設定が完成したら、ぜひ配布してくれ
144デフォルトの名無しさん
垢版 |
2020/09/04(金) 07:56:26.39ID:xAjvg3mj
goto文でもグローバル変数でも、神の逆鱗に触れて世界が滅ぶわけでもないので、必要性に応じて適切に使用すればいいよ。
何も考えずに全てgotoだけ、全てグローバル変数だけってのが良くないだけ。
2020/09/04(金) 08:23:50.11ID:cc1Vcc3X
>>143
どうやって作るの?
c++?
2020/09/04(金) 11:26:22.18ID:XpUpcTyA
Sublime text

(win)Pythonの開発環境(IDE)としてSublimeText3を使う。
https://qiita.com/FireFoxCorp/items/01d79207ab071c2a7522

コード補完ツール kite
https://acokikoy.
hatenablog.com/entry/2019/03/09/133840
2020/09/04(金) 13:59:03.66ID:jvrr6lZ7
>>145
どっかでPy2用セッティングが配布されてるから
落としてきて改変よろしく
148デフォルトの名無しさん
垢版 |
2020/09/04(金) 14:10:39.73ID:l2EHvy2i
引数
引導
印籠
陰嚢
2020/09/04(金) 17:47:58.12ID:RUA5Nqz0
async関数内のawait文(コルーチン?)をWhile True文内で定期実行することは難しいのでしょうか?
非同期処理は学習中なのですがいまいちよくわかりませんでした
2020/09/04(金) 21:38:58.26ID:x5PBGnu2
>>145
py2用は最初から入ってるよ
>>126
2020/09/05(土) 13:03:15.23ID:39rD+iX+
vimって補完使えるんですか?
2020/09/05(土) 13:09:54.66ID:39rD+iX+
>>150
python3用は自分で設定するのですか?
あと文法チェックっはないでしょうか?
vccodeのターミナルみたいなやつです
dbgpというのがありますけど
2020/09/05(土) 14:34:41.49ID:UJIZnxu4
>>151
vimもいろいろな補完の方法があるよ
「vim python 補完」で検索すれば詳しい解説がたくさん見つかるから読んでみて

>>152
notepad++の補完は↓読めばわかるよ
https://npp-user-manual.org/docs/auto-completion/
同梱されてるpython.xmlはpython2用なので、それを自分で修正する必要がある
文法チェックは本体にはないけど、外部ツールと組み合わせてできるよ
「notepad++ python lint」とかで検索するといろいろな方法が見つかる
https://github.com/deadem/notepad-pp-linter
https://stackoverflow.com/questions/4987920/python-correctness-i-e-lint-analyzing-for-notepad
pylint.bat使う方法は、notepad++に限らず、いろいろなエディタと組み合わせて使えるよ
2020/09/05(土) 14:47:21.43ID:39rD+iX+
>>153
どうも
vim試してみましたが操作が独特すぎたのでnotepadにしときます
2020/09/05(土) 14:50:27.39ID:39rD+iX+
>>153
pythonに関してはモジュールまでは補完されないようです
デフォルトでは
2020/09/05(土) 15:02:06.28ID:39rD+iX+
phpの場合はxdebugというのが必要でしょうか?何にしてもデフォルトで文法チェックはできないみたいですね
軽量なのが魅力なんですがね
2020/09/05(土) 15:07:34.45ID:iGsEfTXU
phpはPythonじゃないぞ
(・∀・)カエレ
158デフォルトの名無しさん
垢版 |
2020/09/05(土) 16:39:20.68ID:xH7brzyl
>>151
vimは一度でもあの操作体系になれちゃうと、それ無しではコード書きたくなくなる程度に中毒性があるから、手を出さない方がいいですよ
慣れちゃった人は新しいエディタ触るときでも無意識に同じ操作体系使えるようになるvisvimみたいなツール探してしまうっていうし
2020/09/05(土) 17:16:03.77ID:VXJBsegh
TEXTエディタでimport したモジュールの補完までできるのってあるのかな?

Python専用IDEなら当然だが。
2020/09/05(土) 17:44:16.99ID:HZ8zC1Q4
>>159
vscodeだったら普通に対応してるぞ
というか導入しやすさ考えるとテキストエディタはほぼvscode一択レベル
161デフォルトの名無しさん
垢版 |
2020/09/05(土) 18:14:45.06ID:oHfHPBnf
>>159
jedi-vimだったらimportというか実行環境に登録されてるpathは追ってくれた気がする
2020/09/05(土) 18:43:26.83ID:39rD+iX+
やっぱvscodeが一番ですよね
しばらく放置したあと、アクティブにするともたつくんですが、ssdにするといいんでしょうか?
放置したあとにもたつくというのは、おそらくデータをhddに退避させているということだと思います。
タスクマネージャを見るとhddへのアクセスが集中しますので(´・ω・`)、、、
2020/09/05(土) 19:23:27.08ID:FIgbh/lD
ほかのエディタやIDEにVSCodeのRemote Containerと同等の拡張機能が追加されない限り、pythonの開発環境はVSCode一択や

それくらい革命的
2020/09/05(土) 20:27:57.89ID:PVFZCM04
辞書型のデータを文字列に変換して出力してるんですけど
キーを囲っているコーテーションがシングルで出力されます
これをダブルコーテーションで出力するにはどうしたら良いんでしょう?
2020/09/05(土) 20:49:01.37ID:PVFZCM04
すいません>>164はなかったことに
2020/09/05(土) 21:34:34.84ID:/gaK0RR/
質問です
Pythonをターミナルからファイルで実行して、
実行中に引数を受け渡してプログラムでその引数を受け取ってプログラムの処理を変えるというのはどうしたらできますか?

例えば、
def sum_numbers(x, y)
answer = x + y
return answer

というcalc_numbers.pyというファイルがあって、
ターミナルから python calc_numbers.py 1 1
と実行したあとに
実行中にもう一度 python calc_numbers.py 2 2
とし直して計算結果を変えたいのです
よろしくお願いします
2020/09/05(土) 21:55:12.29ID:3ODLTOe4
sys.argv
2020/09/05(土) 22:03:23.14ID:TSad4edo
ターミナルで実行(引数a)するとプロセス1が起動します。
例えばループ処理で常駐化した状態でターミナルで最実行(引数b)するとプロセス2が起動するので難しいです。

プロセス間非同期処理まで考慮すれば…ですが初心者には難解です。

代替案として以下の感じですかね?
1.ループ処理:
2.入力待機処理:
3.計算処理
2020/09/05(土) 22:09:09.99ID:l/GIyZ6Q
>>166

ん?こういうことかな?

import calc_numbers

rt1 = calc_numbers.sum_numbers(1,1)
print(f'{rt1}')
rt2 = calc_numbers.sum_numbers(2,2)
print(f'{rt2}')
2020/09/05(土) 22:18:31.30ID:SWw75AsV
df
0 2020/5/21 12:41
1 2020/5/22 12:41
4 2020/5/21 12:41
5 2020/5/21 12:41
6 2020/5/21 12:42

のようなdfで

同一日のデータが複数あるときに時刻が一番後のデータ以外を削除する方法ってないでしょうか
(日付と時刻は一つの列に記載しています)
2020/09/05(土) 22:40:06.44ID:TSad4edo
>>170
考え方としては日付とファイルパスの配列があって
日付をシリアル値に変換ソート
最終日以外はforやイテレタで回して削除は?
2020/09/05(土) 23:07:29.44ID:l/GIyZ6Q
>>170
新しいdf作って、最大日付のレコードのみコピーじゃダメなの?
どうしても削除しなくちゃダメ?
2020/09/05(土) 23:15:10.80ID:dBv/QpBg
sortしてから
df.drop_duplicates(subset=[‘日付’], keep='last')
2020/09/06(日) 00:28:06.19ID:+2jMTMUg
>>173
ありがとうございます

duplicate()

使えばできそうと思って悪銭苦闘してましたが、

drpo_duplicate()

なんて便利なものがあったんですね
10行くらいのコードが一行に圧縮されて気持ちいですm(_ _)m
2020/09/06(日) 00:30:16.65ID:+2jMTMUg
もう一つ質問なのですが、

>>170

の日付と時刻が一緒に入ってるデータ列を

日付の列、時刻の列

2つに分ける方法って無いでしょうか?
2020/09/06(日) 07:44:16.84ID:28nY3XQR
>>174
きもちいのはわかったからもちつけ
つづりまちがっとる

>>175
170の例の通りなら
new_df = df.str.split(' ')
2020/09/06(日) 09:22:58.22ID:i+8xvqI/
>>149お願いします
178デフォルトの名無しさん
垢版 |
2020/09/06(日) 10:21:17.40ID:y7ovSoOJ
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
2020/09/06(日) 11:37:36.42ID:+2jMTMUg
>>176
ああ、昨夜壊れていました・・・
教えていただいた方法で分けられました。
ありがとうございます。
2020/09/06(日) 11:39:28.23ID:+2jMTMUg
df
date_and_time other
1 2020/5/21 12:41 hoge
2 2020/5/22 12:41 fuga
3 2020/5/21 12:41 fuga
4 2020/5/21 12:41 hoge
5 2020/5/21 12:42 hoge

で時刻と日付を分割したい。
2020/09/06(日) 11:43:52.38ID:+2jMTMUg
それで

# dfからdate_and_timeだけを切り出して、時刻と日付を分割

df_date_and_time = df['date_and_time']
df_date_and_time=df_date_and_time.str.split(' ')

# 分割したdf_date_and_timeともともとのdfを結合

df_new=pd.merge(df,df_date_and_time)

と結合の箇所でやったのですが、
TypeError: unhashable type: 'list'
というエラーが出ます。どうやって再結合したら良いのでしょう?
2020/09/06(日) 12:11:25.64ID:+2jMTMUg
>>181
打ち間違いすいません
訂正します

?
と結合の箇所でやったのですが、
TypeError: unhashable type: 'list'
というエラーが出ます。どうやって再結合したら良いのでしょう?


とやると分割まではうまくいったのですが、
結合の箇所で
TypeError: unhashable type: 'list'
というエラーが出ます。どうやってdfにdf_date_and_timeを結合したら良いのでしょう?
2020/09/06(日) 12:17:38.96ID:28nY3XQR
>>181-182
.mergeの引数の説明ちゃんと読んでるか?
なんでもおまえのよきにはからってくっつけてくれるまほうのじゅもん ではないぞ。

.joinについても調べれのこと
2020/09/06(日) 13:35:17.55ID:+2jMTMUg
>>183
キーを指定していないから、結合のしようがないということでしょうか?

df_new = pd.merge(df, df_date_and_time, left_index=True, right_index=True)

同じdfから切り出してきたものだからインデックスの対応は保持されているはずなのでいいのかな
2020/09/06(日) 14:07:17.58ID:28nY3XQR
>>184
違う

どうしてそこしか読まないんだwww
他にもあるだろいろいろ
2020/09/06(日) 20:26:41.48ID:K/7w7+Go
関数の中で自分自身の関数を実行するのですが
変数名指定の引数がたくさんあります

def hoge(f,*,a=0,b=0,c=0,d=0,e=0,g=0):
_if f==0:
__f=1
__hoge(f,a=a,b=b,c=c,d=d,e=e,g=g)
__return
_print(a,b,c,d,e,g)

hoge(0,a=1,b=0,c=1,d=0,e=1,g=0)

hoge(f,a=a,b=b,c=c,d=d,e=e,g=g)のように引数は
全て列挙しないといけないのでしょうか?
4行目でhoge(*arguments)みたいにかけたらすっきりするのになと思いました
2020/09/06(日) 21:11:51.94ID:dj2uyvZ0
ホゲホゲホゲホゲ
188デフォルトの名無しさん
垢版 |
2020/09/06(日) 21:12:31.77ID:g9db9pcO
>>186
hoge(f, **arguments)
https://docs.python.org/ja/3/tutorial/controlflow.html#unpacking-argument-lists
2020/09/06(日) 21:34:04.68ID:K/7w7+Go
>>188
NameError: name 'arguments' is not defined
と出たのですが最新版のpythonだと大丈夫なのでしょうか?
2020/09/06(日) 21:42:48.01ID:K/7w7+Go
すみません、もしかして
arguments={a:a,b:b,c:c,d:d,e:e,g:g}を
hoge(f,a=a,b=b,c=c,d=d,e=e,g=g)手前で定義するって意味ではないですよね?
191デフォルトの名無しさん
垢版 |
2020/09/06(日) 21:52:33.59ID:g9db9pcO
関数の定義文で引数を渡す変数名が指定されていて、再帰的に呼ぶときにhoge(*arguments)みたいに書きたいんだよね?
2020/09/06(日) 21:55:51.64ID:O6bK25fj
JavaScript のargumentsのようなものは、Pythonでは使用されないのでは?
キーワード専用引数にする必要がある引数なら、そうするしかないような気がするが。可変長キーワードじゃダメなんでしょ
2020/09/06(日) 22:14:08.79ID:K/7w7+Go
>>191-192
そうです!
>javascriptのargumentsのような

無理っぽいですかね
根本的に別の方法も何か探ってみることにします
ありがとうございました
2020/09/06(日) 22:30:14.59ID:iNxLllkp
キーワード引数でデフォルト値を定義しつつ、それらをすべて**kwargsを使うようなイメージでネストした関数に渡したいってことだとおもうけど

デフォルト値を持ったディクショナリを作って受け取ったkwargsをマージさせた結果をネストした関数に渡すくらいしかないんじゃないかな

hoge(1, a=10, z=20)みたいに呼び出した場合のz=20をどうしたいかでも処理が変わる
2020/09/06(日) 22:36:07.03ID:Bdj7AItn
hoge(f, { a = a, b = b, c = c })とかにすれば
2020/09/06(日) 23:32:54.81ID:IOp5Lxwc
namedtupleで一括で渡せばいいんでね?
2020/09/07(月) 10:02:44.13ID:DOYVT1Si
見様見真似でtweepyとかを使ってtwitterのDM botを作りました。

DMが届いたら、そのDMの内容に従って返信をするというものなのですが、
twitterのDMの承認機能のせいで、フォローしていない人からDMが来ると、
そもそもDMを受信したと認識せず、意図した通りに動作しません。

今私が考えられる解決策は、

botにフォローバックさせる機能を追加

一旦DMの送信者にフォローしてもらう

DMを送ってもらう

というオペレーションに変えるというものくらいなのですが、
他に何か良い方法を知ってる人はいないでしょうか?
198デフォルトの名無しさん
垢版 |
2020/09/07(月) 11:01:47.22ID:K0kNn/Cs
def hoge(f,**hage):
_if f==0:
__f=1
__hoge(f,**hage)
__return
_print(hage)

hoge(0,a=1,b=0,c=1,d=0,e=1,g=0)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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