当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合★は、
表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
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
〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その54
https://mevius.5ch.net/test/read.cgi/tech/1623240344/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その55
■ このスレッドは過去ログ倉庫に格納されています
2021/10/01(金) 15:46:47.17ID:9qOHXj6D
724デフォルトの名無しさん
2021/11/17(水) 10:32:21.44ID:f/0NZNwK >>698
csv_normalなら簡単にできるよ!
>import csv_normal as csv
>c = csv.csv([['価格','ストア名','配送者'],[r'\2,680','ストアA','yes'],[r'\680','ストアB','yes'],[r'\6,890','ストアC','no']])
>c.header_idx=0; c.data_row_range = slice(1,None) #ヘッダーとデータ範囲設定
>c.money2int() #通貨文字列を数字に変換
>def hoge(row):
____if row[c['配送者']] == 'yes':
________row[c['配送者']] = row[c['ストア名']]
____else:
________row[c['配送者']] = '佐川急便'
>
>c.map_rows(lambda row: hoge(row)) #配送車列の変換
['', None, None, None]
>c.csv #データ確認
[['価格', 'ストア名', '配送者'], [2680, 'ストアA', 'ストアA'], [680, 'ストアB', 'ストアB'], [6890, 'ストアC', '佐川急便']]
>c.print2() #見やすく表示(5chだからズレちゃう)
+------+--------+--------+
|価格 |ストア名|配送者 |
+------+--------+--------+
| 2_680|ストアA ストアA |
+------+--------+--------+
| 680|ストアB ストアB |
+------+--------+--------+
| 6_890|ストアC |佐川急便|
+------+--------+--------+
csv_normalなら簡単にできるよ!
>import csv_normal as csv
>c = csv.csv([['価格','ストア名','配送者'],[r'\2,680','ストアA','yes'],[r'\680','ストアB','yes'],[r'\6,890','ストアC','no']])
>c.header_idx=0; c.data_row_range = slice(1,None) #ヘッダーとデータ範囲設定
>c.money2int() #通貨文字列を数字に変換
>def hoge(row):
____if row[c['配送者']] == 'yes':
________row[c['配送者']] = row[c['ストア名']]
____else:
________row[c['配送者']] = '佐川急便'
>
>c.map_rows(lambda row: hoge(row)) #配送車列の変換
['', None, None, None]
>c.csv #データ確認
[['価格', 'ストア名', '配送者'], [2680, 'ストアA', 'ストアA'], [680, 'ストアB', 'ストアB'], [6890, 'ストアC', '佐川急便']]
>c.print2() #見やすく表示(5chだからズレちゃう)
+------+--------+--------+
|価格 |ストア名|配送者 |
+------+--------+--------+
| 2_680|ストアA ストアA |
+------+--------+--------+
| 680|ストアB ストアB |
+------+--------+--------+
| 6_890|ストアC |佐川急便|
+------+--------+--------+
725デフォルトの名無しさん
2021/11/17(水) 10:37:50.75ID:GPq3lXDW726デフォルトの名無しさん
2021/11/17(水) 10:46:02.33ID:GPq3lXDW こっちの方がいいかな?
set(l)=={'0', '1'}
set(l)=={'0'}
set(l)=={'0', '1'}
set(l)=={'0'}
727デフォルトの名無しさん
2021/11/17(水) 11:55:11.92ID:B6bo55Im 失礼しました
全部strっすね。不定文字列もstr型
'0', '1', 'wooo'
i n ('0', '1')
全部strっすね。不定文字列もstr型
'0', '1', 'wooo'
i n ('0', '1')
728デフォルトの名無しさん
2021/11/17(水) 12:34:52.78ID:4tNSHn/X in '01':
729デフォルトの名無しさん
2021/11/17(水) 12:40:38.25ID:k9NuPgD9730デフォルトの名無しさん
2021/11/17(水) 12:49:55.55ID:iywzxd5E >>722
その条件だとO(n)で回すにはfor-loopしかない気がする
any()とか使えなくもないけど2周必要だし3つ分岐が必要なことには変わりないので素直にforで回すのがいいと思う
def judge_mode(array):
__mode = 0
__for x in array:
____if x == '0':
______continue
____elif x == '1':
______mode = 1
______continue
____else:
______return 2
__return mode
その条件だとO(n)で回すにはfor-loopしかない気がする
any()とか使えなくもないけど2周必要だし3つ分岐が必要なことには変わりないので素直にforで回すのがいいと思う
def judge_mode(array):
__mode = 0
__for x in array:
____if x == '0':
______continue
____elif x == '1':
______mode = 1
______continue
____else:
______return 2
__return mode
731デフォルトの名無しさん
2021/11/17(水) 13:03:09.62ID:4tNSHn/X def judge_mode(array):
__mode = 0
__for x in array:
____if mode == 0:
______if x == '1':
________mode = 1
________continue
______elif x != '0':
________return 2
____elif x != '0' and x != '1':
______return 2
__return mode
__mode = 0
__for x in array:
____if mode == 0:
______if x == '1':
________mode = 1
________continue
______elif x != '0':
________return 2
____elif x != '0' and x != '1':
______return 2
__return mode
732デフォルトの名無しさん
2021/11/17(水) 16:16:01.02ID:f/0NZNwK >>729
csv_normalではデータ読み込みの際のデータ区切りはカンマ固定だったんですが
今回のようにデータにカンマがある例では不便なので、データ区切りを指定できるようにしました
最新Version3.2.4では以下のようにデータ区切りを空白にもできます
c = csv.load('hogehoge.csv', sep='\s+', encoding='utf8')
csv_normalではデータ読み込みの際のデータ区切りはカンマ固定だったんですが
今回のようにデータにカンマがある例では不便なので、データ区切りを指定できるようにしました
最新Version3.2.4では以下のようにデータ区切りを空白にもできます
c = csv.load('hogehoge.csv', sep='\s+', encoding='utf8')
733デフォルトの名無しさん
2021/11/17(水) 20:20:04.76ID:ytfPCTgK >>718
driver.set_page_load_timeout(30)を入れて回してみましたが、フリーズしてから5分くらい待ってもエラーになりません。
driver.set_page_load_timeout(30)を入れて回してみましたが、フリーズしてから5分くらい待ってもエラーになりません。
734デフォルトの名無しさん
2021/11/17(水) 20:28:25.14ID:ytfPCTgK driver = uc.Chrome(options=options, service_log_path=os.path.devnull)
wait = WebDriverWait(driver=driver, timeout=30)
driver.set_page_load_timeout(30)
for url in urllist:
try:
driver.get(url)
print("接続完了でござる")
except:
print("エラー")
で試してもエラーが出ない感じです
wait = WebDriverWait(driver=driver, timeout=30)
driver.set_page_load_timeout(30)
for url in urllist:
try:
driver.get(url)
print("接続完了でござる")
except:
print("エラー")
で試してもエラーが出ない感じです
735デフォルトの名無しさん
2021/11/18(木) 07:11:18.86ID:5H17mfWr psycopg2でテーブル作成時にテーブル名を代入する方法を教えてください
import psycopg2
conn = psycopg2.connect('host=localhost port=5432 dbname=test user=test password=testdayo')
c = conn.cursor()
table_name_list = ["table1","table2","table3",]
for table_name in table_name_list:
c.execute("""
CREATE TABLE IF NOT EXISTS testschema.%s(
"code" text,
)
""",[table_name])
conn.commit()
testschemaにtable1,table2,table3て感じでテーブルを作っていきたいですがうまくいきません。
import psycopg2
conn = psycopg2.connect('host=localhost port=5432 dbname=test user=test password=testdayo')
c = conn.cursor()
table_name_list = ["table1","table2","table3",]
for table_name in table_name_list:
c.execute("""
CREATE TABLE IF NOT EXISTS testschema.%s(
"code" text,
)
""",[table_name])
conn.commit()
testschemaにtable1,table2,table3て感じでテーブルを作っていきたいですがうまくいきません。
736デフォルトの名無しさん
2021/11/18(木) 10:52:34.99ID:/He/baLS c.execute(f"""
CREATE TABLE IF NOT EXISTS testschema.{table_name}(
"code" text,
)
""")
CREATE TABLE IF NOT EXISTS testschema.{table_name}(
"code" text,
)
""")
737デフォルトの名無しさん
2021/11/18(木) 11:31:32.62ID:IG65qiRj psycopg2つかったことないけど
それpreparedステートメント透過的につかわれてるの?
それpreparedステートメント透過的につかわれてるの?
738デフォルトの名無しさん
2021/11/18(木) 16:23:01.48ID:176auHoD Djangoで python manage.py runserverでサーバーを起動させたが全てのターミナルを消しても上記のサーバーのページにアクセス出来る
どうやったらサーバーを止められる?
どうやったらサーバーを止められる?
739デフォルトの名無しさん
2021/11/18(木) 16:27:27.07ID:176auHoD lsof -i :8000でpid確認してkill -QUIT プロセスidで終わらせれました
740デフォルトの名無しさん
2021/11/19(金) 11:20:04.92ID:eyeX0xyM たぶんそれ人違いで殺してる
741デフォルトの名無しさん
2021/11/19(金) 19:16:34.09ID:gJnyLrIF df = df.values.tolist()
print(df)
を実行すると[[a1,b1],[a2,b2],[a3,b3]]のような形でデータを取得できますが、
これをタプルで取得する方法ってありますか?
下記みたいな感じで取得死体です
[(a1,b1),(a2,b2),(a3,b3)]
print(df)
を実行すると[[a1,b1],[a2,b2],[a3,b3]]のような形でデータを取得できますが、
これをタプルで取得する方法ってありますか?
下記みたいな感じで取得死体です
[(a1,b1),(a2,b2),(a3,b3)]
742デフォルトの名無しさん
2021/11/19(金) 19:37:02.12ID:FvmYZMBk [tuple(x) for x in df.values]
743デフォルトの名無しさん
2021/11/19(金) 21:02:22.10ID:gJnyLrIF >>742
できました!ありがとうございます。
ちなみにpsycopg2で[(a1,b1),(a2,b2),(a3,b3)]のデータを
テーブルに入れるにはどうしたらいいんだ?
import psycopg2
from psycopg2 import extras
conn = psycopg2.connect('host=localhost port=5432 dbname=db user=db password=db')
c = conn.cursor()
insert_list = [(a1,b1),(a2,b2),(a3,b3)]
extras.execute_values(c, "INSERT INTO table values %s", insert_list)
c.commit()
調べたら上記でいけるかと思いましたがだめでした
できました!ありがとうございます。
ちなみにpsycopg2で[(a1,b1),(a2,b2),(a3,b3)]のデータを
テーブルに入れるにはどうしたらいいんだ?
import psycopg2
from psycopg2 import extras
conn = psycopg2.connect('host=localhost port=5432 dbname=db user=db password=db')
c = conn.cursor()
insert_list = [(a1,b1),(a2,b2),(a3,b3)]
extras.execute_values(c, "INSERT INTO table values %s", insert_list)
c.commit()
調べたら上記でいけるかと思いましたがだめでした
744デフォルトの名無しさん
2021/11/20(土) 04:07:01.58ID:Pz0iKQrb プログラミング自体が初めて2週間ほどなので幼稚な質問をお許しください。
目的:読み込まれたリストから複数の条件で項目を除外する
testlist = ['月A','月B','火A','火B','','水A','水B','','月C','月D']
boxlist = list(map(str, testlist))
というところまで書いた時に、例えばこのリストから
「'月'が含まれている物全て」と「""(空行)」を消したいんです。
(特に空行はどうしても発生する物なので除去必須です)
たとえば『list(filter(lambda...』というのが使えるらしい事は調べたものの
文法がよく分からず何度やってもエラーが出てしまいました。
他の方法でもいいのでなにとぞ複数条件の除去が可能なコードなりを教えてもらえると助かります。
目的:読み込まれたリストから複数の条件で項目を除外する
testlist = ['月A','月B','火A','火B','','水A','水B','','月C','月D']
boxlist = list(map(str, testlist))
というところまで書いた時に、例えばこのリストから
「'月'が含まれている物全て」と「""(空行)」を消したいんです。
(特に空行はどうしても発生する物なので除去必須です)
たとえば『list(filter(lambda...』というのが使えるらしい事は調べたものの
文法がよく分からず何度やってもエラーが出てしまいました。
他の方法でもいいのでなにとぞ複数条件の除去が可能なコードなりを教えてもらえると助かります。
745デフォルトの名無しさん
2021/11/20(土) 04:49:44.14ID:w0sFPEUw 簡単なところから徐々にステップアップしていけよ
とりあえず超初心者本買って読め
今の調子じゃ一から十まで全部聞くハメになるぞ
newlist = []
for data in testlist:
__if data:
____if '月' not in data:
________newlist.append(data)
これならわかるだろ
lambdaとかfilterは、まずこれが書ける人が次の段階で覚えろ
とりあえず超初心者本買って読め
今の調子じゃ一から十まで全部聞くハメになるぞ
newlist = []
for data in testlist:
__if data:
____if '月' not in data:
________newlist.append(data)
これならわかるだろ
lambdaとかfilterは、まずこれが書ける人が次の段階で覚えろ
746デフォルトの名無しさん
2021/11/20(土) 06:00:34.25ID:hT1QMP3Z 初めて2週間でそんな所まで行くって凄いな
上の奴の言う通りだけどあえて書いてみるならば
testlist = ['月A','月B','火A','火B','','水A','水B','','月C','月D']
a = list(filter(lambda x: x and x[0] != '月', testlist))
filterやmapは高階関数と言うよ
第一引数に関数を取る
第二引数にイテラブルな型のオブジェクトを取る
上記の例ではtestlistから順番に一つずつvalueを:の左のxという引数に取り出して自分で書いたlambda関数内で処理して条件に合うvalueをメモリ領域に一時保存しているよ
そんでtestlistの全てのvalueを取り出し終えたらメモリ上に保存しておいたvalueをlist型に変換してaに代入している
testlist[0]の部分はスライス
上の奴の言う通りだけどあえて書いてみるならば
testlist = ['月A','月B','火A','火B','','水A','水B','','月C','月D']
a = list(filter(lambda x: x and x[0] != '月', testlist))
filterやmapは高階関数と言うよ
第一引数に関数を取る
第二引数にイテラブルな型のオブジェクトを取る
上記の例ではtestlistから順番に一つずつvalueを:の左のxという引数に取り出して自分で書いたlambda関数内で処理して条件に合うvalueをメモリ領域に一時保存しているよ
そんでtestlistの全てのvalueを取り出し終えたらメモリ上に保存しておいたvalueをlist型に変換してaに代入している
testlist[0]の部分はスライス
747デフォルトの名無しさん
2021/11/20(土) 07:17:36.90ID:7hjyIAPL Ruby では色々な書き方ができるが、メソッドチェーンを使うのが、バグらない書き方。
Linux のパイプみたいな感じ。
各フィルターで処理を分けて、実行していく
最後の2つは、処理が複雑
ary_1 = [ "A月A", "", "火B", "", "月C" ]
# 配列から、空文字列を除去する
p ary_2 = ary_1.reject( &:empty? ) #=> ["A月A", "火B", "月C"]
# ary_2 から、月を含む文字列を除去する
p res_1 = ary_2.reject { |str| str.include? "月" } #=> ["火B"]
# 上の2つの処理をメソッドチェーンでつなげる
p res_2 = ary_1.reject( &:empty? ).
reject { |str| str.include? "月" } #=> ["火B"]
# 空文字列か、月を含む文字列を除去する
p res_3 = ary_1.reject { |str| str.empty? || str.include?( "月" ) } #=> ["火B"]
# 上の処理を、lambda にする
lambda_1 = ->( str ){ str.empty? || str.include?( "月" ) }
p res_4 = ary_1.reject{ |str| lambda_1.call( str ) } #=> ["火B"]
Linux のパイプみたいな感じ。
各フィルターで処理を分けて、実行していく
最後の2つは、処理が複雑
ary_1 = [ "A月A", "", "火B", "", "月C" ]
# 配列から、空文字列を除去する
p ary_2 = ary_1.reject( &:empty? ) #=> ["A月A", "火B", "月C"]
# ary_2 から、月を含む文字列を除去する
p res_1 = ary_2.reject { |str| str.include? "月" } #=> ["火B"]
# 上の2つの処理をメソッドチェーンでつなげる
p res_2 = ary_1.reject( &:empty? ).
reject { |str| str.include? "月" } #=> ["火B"]
# 空文字列か、月を含む文字列を除去する
p res_3 = ary_1.reject { |str| str.empty? || str.include?( "月" ) } #=> ["火B"]
# 上の処理を、lambda にする
lambda_1 = ->( str ){ str.empty? || str.include?( "月" ) }
p res_4 = ary_1.reject{ |str| lambda_1.call( str ) } #=> ["火B"]
748デフォルトの名無しさん
2021/11/20(土) 08:38:43.30ID:/G7VwRdk 複数のpythonファイルを順に実行する方法ってないですか?
zikkou.py
1.py
2.py
3.py
ってファイルがあった場合にzikkou.pyを実行すると1.py→2.py→3.pyの順で処理してくれる感じです。
import osかimport subprocessでできますか?
zikkou.py
1.py
2.py
3.py
ってファイルがあった場合にzikkou.pyを実行すると1.py→2.py→3.pyの順で処理してくれる感じです。
import osかimport subprocessでできますか?
749デフォルトの名無しさん
2021/11/20(土) 08:43:20.89ID:EeA4sZVq rubyのアタマがバグってるやつはおいといて
今回の件は
news=[dat for dat in olds if '月' in dat]
だけでいいんじゃ〜
forの実直ループ覚えたら内包表記覚えて
そのあと高階関数とpandas行くのだぞ
やりたいことの範囲はopenpyxlぽいけど
今回の件は
news=[dat for dat in olds if '月' in dat]
だけでいいんじゃ〜
forの実直ループ覚えたら内包表記覚えて
そのあと高階関数とpandas行くのだぞ
やりたいことの範囲はopenpyxlぽいけど
750デフォルトの名無しさん
2021/11/20(土) 09:12:28.20ID:MzN+MOHO >>748
subprocessでできると思うけど、結局コマンドプロンプトのコマンドを実行するわけだから
zikkou.pyじゃなくてbatファイルで1.py, 2.py, 3.pyを呼び出した方がいいんじゃないかな?
subprocessでできると思うけど、結局コマンドプロンプトのコマンドを実行するわけだから
zikkou.pyじゃなくてbatファイルで1.py, 2.py, 3.pyを呼び出した方がいいんじゃないかな?
751デフォルトの名無しさん
2021/11/20(土) 09:22:38.89ID:MzN+MOHO752デフォルトの名無しさん
2021/11/20(土) 13:43:03.64ID:EfL5Dmlb >>744
最初の考え方としては `boxlist.filter(空行以外).filter(‘月’が含まれてない)` みたいに2回filterしてやるのでもいいよ
↑をpythonで愚直に実装すると
list(filter(lambda x: '月' not in x, filter(lambda x: x != ‘’, boxlist)))
↑pythonの場合は2回filterするとオーバーヘッドが大きくなるだけなので1回にまとめて
list(filter(lambda x: x != ‘’ and ’月’ not in x, boxlist))
↑pythonではmapやfilterの代わりに内包表記を使うのが一般的なので
[ x for x in boxlist if x != ‘’ and ’月’ not in x ]
↑空行以外のfalsy値(0やNone)も除外してよければ
[ x for x in boxlist if x and ’月’ not in x ]
2回filterしても最適化されてオーバーヘッドかからない言語もあるので
アルゴリズム的な考え方と特定言語での実装とを分けて捉えるようにしておくと後々役に立つ
最初の考え方としては `boxlist.filter(空行以外).filter(‘月’が含まれてない)` みたいに2回filterしてやるのでもいいよ
↑をpythonで愚直に実装すると
list(filter(lambda x: '月' not in x, filter(lambda x: x != ‘’, boxlist)))
↑pythonの場合は2回filterするとオーバーヘッドが大きくなるだけなので1回にまとめて
list(filter(lambda x: x != ‘’ and ’月’ not in x, boxlist))
↑pythonではmapやfilterの代わりに内包表記を使うのが一般的なので
[ x for x in boxlist if x != ‘’ and ’月’ not in x ]
↑空行以外のfalsy値(0やNone)も除外してよければ
[ x for x in boxlist if x and ’月’ not in x ]
2回filterしても最適化されてオーバーヘッドかからない言語もあるので
アルゴリズム的な考え方と特定言語での実装とを分けて捉えるようにしておくと後々役に立つ
753デフォルトの名無しさん
2021/11/20(土) 15:32:34.01ID:/G7VwRdk754デフォルトの名無しさん
2021/11/20(土) 15:34:29.98ID:/G7VwRdk pandasの列のデータ型をnumpy.int64からpythonのintにするにはどうしたらいいんや?
列名["count"]の場合にdf["count"].astype(int)でいけるのかと思ったらできなかった
列名["count"]の場合にdf["count"].astype(int)でいけるのかと思ったらできなかった
755デフォルトの名無しさん
2021/11/20(土) 17:05:24.67ID:Pz0iKQrb >>744です。
帰ってきたら想像してた以上に色んなやり方を書いてもらえててなんか感動してます。
実は超初心者向けとされている本は読んでいて、>>745さんが書かれてる通りリストやfor inを使う範囲で出来そうな
単純な内容の1000行とかになる記録簿の整理なら覚えた範囲で可能そう、かつ超便利と思ったのがきっかけなんです。
ただ、’月’とかの単語を指定しての除去だけならそれで出来たんですが、同時に空行の除去をしようとすると
ろくに作動しなくなってしまったために色々調べてfilterに行き着いたという流れでした・・・。
特に、というと序列を付けてるみたいで違うのですが、>>745さんのコードが目からうろこでした。
さっきまでどうして空行が除去出来てるのか理解できずググりまくったんですが、さんざん見てたはずの.appendの特性の応用で
正直色々空行の除去についてググってた時に見た色んなコードよりスマートに思えました。
他の皆さんのコードもかなり学び甲斐があってほんと頭が下がりました。
今からまた一個一個調べて見直しますが、かなり成長出来そうなので楽しみです。
・・・ちなみになんですが、こういう引数の知識は基礎の基礎と思うのですが、
その一通りが日本語でまとめてあるような本やサイトってあるんでしょうか?
帰ってきたら想像してた以上に色んなやり方を書いてもらえててなんか感動してます。
実は超初心者向けとされている本は読んでいて、>>745さんが書かれてる通りリストやfor inを使う範囲で出来そうな
単純な内容の1000行とかになる記録簿の整理なら覚えた範囲で可能そう、かつ超便利と思ったのがきっかけなんです。
ただ、’月’とかの単語を指定しての除去だけならそれで出来たんですが、同時に空行の除去をしようとすると
ろくに作動しなくなってしまったために色々調べてfilterに行き着いたという流れでした・・・。
特に、というと序列を付けてるみたいで違うのですが、>>745さんのコードが目からうろこでした。
さっきまでどうして空行が除去出来てるのか理解できずググりまくったんですが、さんざん見てたはずの.appendの特性の応用で
正直色々空行の除去についてググってた時に見た色んなコードよりスマートに思えました。
他の皆さんのコードもかなり学び甲斐があってほんと頭が下がりました。
今からまた一個一個調べて見直しますが、かなり成長出来そうなので楽しみです。
・・・ちなみになんですが、こういう引数の知識は基礎の基礎と思うのですが、
その一通りが日本語でまとめてあるような本やサイトってあるんでしょうか?
756デフォルトの名無しさん
2021/11/20(土) 17:42:34.55ID:IJPPTR8A pythonの勉強を1ヶ月位してるけど、ここ1ヶ月何度も解いてる問題がノーヒントだと解けない
たとえばこういうやつ
>>
文字列 str1 と str2 が引数として与えられたとき、 str2 が str1 を部分文字列として含むかどうか判定する関数 simple_match を作成してください。
具体的には、str2 を含む場合、 その部分文字列が開始される str1 のインデックスを返値として返してください。
str2 を含まない場合、 -1 を返してください。 ただし、simple_match の中で文字列のメソッドやモジュール(正規表現など)を使ってはいけません。
<<
以下コード
https://techiedelight.com/compiler/?~simple_match
局所的な部分は分かるんだけど、全体を把握してきれいな回答が作れない
こういうアルゴリズムはどっからとっかかりを作って組み立てていくの?
たとえばこういうやつ
>>
文字列 str1 と str2 が引数として与えられたとき、 str2 が str1 を部分文字列として含むかどうか判定する関数 simple_match を作成してください。
具体的には、str2 を含む場合、 その部分文字列が開始される str1 のインデックスを返値として返してください。
str2 を含まない場合、 -1 を返してください。 ただし、simple_match の中で文字列のメソッドやモジュール(正規表現など)を使ってはいけません。
<<
以下コード
https://techiedelight.com/compiler/?~simple_match
局所的な部分は分かるんだけど、全体を把握してきれいな回答が作れない
こういうアルゴリズムはどっからとっかかりを作って組み立てていくの?
757デフォルトの名無しさん
2021/11/20(土) 18:00:04.82ID:8IbVqVu9 個人的にそんな問題が解けることになんの価値があるのか理解不能だけど
スライスを使うと簡単に書けるよ
スライスを使うと簡単に書けるよ
758デフォルトの名無しさん
2021/11/20(土) 18:01:23.71ID:8IbVqVu9 スライスを知ってるかどうかはアルゴリズムというより言語の知識の話だよな
アルゴリズムを数知ってるよりググる能力が高い方が
十把一絡げレベルのプログラマならよほど当てになると思う
アルゴリズムを数知ってるよりググる能力が高い方が
十把一絡げレベルのプログラマならよほど当てになると思う
759デフォルトの名無しさん
2021/11/20(土) 18:17:57.11ID:IJPPTR8A こういう練習問題をすぐ解けないからって定期的にやり直すより
どんどん先へ勉強を進めてしまった方が良いのか?
どんどん先へ勉強を進めてしまった方が良いのか?
760デフォルトの名無しさん
2021/11/20(土) 18:31:09.23ID:7hjyIAPL >>756
典型的な2重ループのアルゴリズムの問題
s1 を、1文字ずつ処理していく。
s2 の先頭文字と一致したら、s1のインデックスを保存して、
1文字目の意味で、1も保存する
s1を1文字進めて、s2も1文字進めて、また一致すれば、
2文字目も一致したので、2も保存する
s1を1文字進めて、s2も1文字進めて、また一致すれば、
3文字目も一致したので、3も保存する
この数字が、s2の文字数と一致するまで増加したら、s2がs1に含まれる
スライスを使うと、もっと簡単に書けるのか?
典型的な2重ループのアルゴリズムの問題
s1 を、1文字ずつ処理していく。
s2 の先頭文字と一致したら、s1のインデックスを保存して、
1文字目の意味で、1も保存する
s1を1文字進めて、s2も1文字進めて、また一致すれば、
2文字目も一致したので、2も保存する
s1を1文字進めて、s2も1文字進めて、また一致すれば、
3文字目も一致したので、3も保存する
この数字が、s2の文字数と一致するまで増加したら、s2がs1に含まれる
スライスを使うと、もっと簡単に書けるのか?
761デフォルトの名無しさん
2021/11/20(土) 18:32:51.76ID:7hjyIAPL アルゴリズム系の問題は、図を描いて、考えた方がよい
762デフォルトの名無しさん
2021/11/20(土) 19:11:39.87ID:IJPPTR8A763デフォルトの名無しさん
2021/11/20(土) 20:00:29.61ID:w0sFPEUw 俺はこれは問題のための問題
クソ問だと思う
特に-1返すとか、モジュールはともかく、文字列メソッド使用不可とかバカの極み
クイズは無視してやりたいことを追え
クソ問だと思う
特に-1返すとか、モジュールはともかく、文字列メソッド使用不可とかバカの極み
クイズは無視してやりたいことを追え
764デフォルトの名無しさん
2021/11/20(土) 20:01:36.80ID:fQWlPv63 せっかくだからKMP法まで勉強しろ
765デフォルトの名無しさん
2021/11/20(土) 20:17:33.74ID:72MXZSnK766デフォルトの名無しさん
2021/11/20(土) 20:26:19.53ID:Kgb5xsxv 文字列をスライスするのって文字列のメソッド使ってるよね?
767デフォルトの名無しさん
2021/11/20(土) 20:54:17.15ID:785tmrzC > str2 が str1 を部分文字列として含むかどうか
> str2 を含む場合
逆転してね?
> str2 を含む場合
逆転してね?
768デフォルトの名無しさん
2021/11/20(土) 21:36:08.75ID:hT1QMP3Z769デフォルトの名無しさん
2021/11/20(土) 22:02:54.27ID:IJPPTR8A770デフォルトの名無しさん
2021/11/20(土) 22:05:42.97ID:hT1QMP3Z >>769
普通にググればいいよどうしても自力でやりたいなら組み込み関数のソースコード読んでパクればいいんじゃねやったことないけど
普通にググればいいよどうしても自力でやりたいなら組み込み関数のソースコード読んでパクればいいんじゃねやったことないけど
771デフォルトの名無しさん
2021/11/20(土) 22:16:28.52ID:eO5P7jHp >>756
自分でやるときどうする?
例えば location と cat なら
location
cat → 合わない
location
_cat → 合わない
location
__cat → お、合った、2個ずらしたから 2 を返せばいいんだな
って言うようにずらしながら比較していくよね
って言うところからやればいいんじゃね
自分でやるときどうする?
例えば location と cat なら
location
cat → 合わない
location
_cat → 合わない
location
__cat → お、合った、2個ずらしたから 2 を返せばいいんだな
って言うようにずらしながら比較していくよね
って言うところからやればいいんじゃね
772デフォルトの名無しさん
2021/11/20(土) 23:00:40.68ID:W0+y3mk4773デフォルトの名無しさん
2021/11/20(土) 23:03:09.18ID:W0+y3mk4 まあ、スライスがいい回答だとは思わないけど
小学校の教材ならたぶん0点つけてくる教師がいる回答
小学校の教材ならたぶん0点つけてくる教師がいる回答
774デフォルトの名無しさん
2021/11/21(日) 00:27:58.17ID:QD7EEWWT 構文などの書き方が分からないってなら仕方無いと思うけど
この程度のアルゴリズムを思い付けないってならヤバいだろ
池沼疑われるレベル
この程度のアルゴリズムを思い付けないってならヤバいだろ
池沼疑われるレベル
775デフォルトの名無しさん
2021/11/21(日) 00:38:15.47ID:dCta8OJm アルゴリズムとか使わないから
知能検査は別スレだろ
知能検査は別スレだろ
776デフォルトの名無しさん
2021/11/21(日) 01:16:28.56ID:L8vXU9lo KMP法とかsuffix arrayの話?
777デフォルトの名無しさん
2021/11/21(日) 08:44:34.82ID:1b0LVSEh778デフォルトの名無しさん
2021/11/21(日) 09:58:00.66ID:4YV1JWdz アスペって生き辛そう…
779デフォルトの名無しさん
2021/11/21(日) 11:02:45.04ID:6VEnDrqa def simple_match(str1, str2):
____for idx, _ in enumerate(str1):
________if str1[idx:idx+len(str2)] == str2:
____________return idx
____return -1
____for idx, _ in enumerate(str1):
________if str1[idx:idx+len(str2)] == str2:
____________return idx
____return -1
780デフォルトの名無しさん
2021/11/21(日) 11:15:39.23ID:6VEnDrqa さらに速く高機能にした
def simple_match(str1, str2):
____len_str1 = len(str1)
____len_str2 = len(str2)
____if ret := [idx for idx in range(len_str1) if str1[idx:idx+len_str2]==str2]:
________return ret
____else:
________return -1
simple_match('location', 'cat')
[2]
simple_match('soccer', 'cat')
-1
simple_match('locationcat', 'cat')
[2, 8]
def simple_match(str1, str2):
____len_str1 = len(str1)
____len_str2 = len(str2)
____if ret := [idx for idx in range(len_str1) if str1[idx:idx+len_str2]==str2]:
________return ret
____else:
________return -1
simple_match('location', 'cat')
[2]
simple_match('soccer', 'cat')
-1
simple_match('locationcat', 'cat')
[2, 8]
781デフォルトの名無しさん
2021/11/21(日) 12:37:43.77ID:jllQNQOR __getitem__も__iter__も文字列のメソッドなのでその回答だと0点ですね
782デフォルトの名無しさん
2021/11/21(日) 12:40:01.89ID:jllQNQOR __len__も使ってたか
783デフォルトの名無しさん
2021/11/21(日) 15:17:06.09ID:BLVHorEN 列"B1FD24"は存在しませんになって行のデータが取得できません。
解決策おしえてください。
import psycopg2
conn = psycopg2.connect('host=localhost port=5432 dbname=goya user=goya password=goya1395CCC')
c = conn.cursor()
#練習用のテーブル作成
c.execute('''
CREATE TABLE IF NOT EXISTS info_test(
"A_code" text unique,
"weight(g)" integer,
"item_name" text
)
''')
data = [("B1FD24",int(566),"ハンマー"),("B6DE49",None,"空気"),("B4XB21",int(823),"米")]
for d in data:
c.execute(f'INSERT INTO info_test ("A_code","weight(g)","item_name") VALUES(%s,%s,%s) on conflict ("A_code") do nothing',d)
conn.commit()
#練習
c.execute(f'SELECT "A_code" FROM info_test')
a_code_list = [row[0] for row in c.fetchall()]
for a_code in a_code_list:
c.execute(f'SELECT * FROM info_test WHERE "A_code"="{a_code}"')
d = [row for row in c.fetchall()]
print(d)
解決策おしえてください。
import psycopg2
conn = psycopg2.connect('host=localhost port=5432 dbname=goya user=goya password=goya1395CCC')
c = conn.cursor()
#練習用のテーブル作成
c.execute('''
CREATE TABLE IF NOT EXISTS info_test(
"A_code" text unique,
"weight(g)" integer,
"item_name" text
)
''')
data = [("B1FD24",int(566),"ハンマー"),("B6DE49",None,"空気"),("B4XB21",int(823),"米")]
for d in data:
c.execute(f'INSERT INTO info_test ("A_code","weight(g)","item_name") VALUES(%s,%s,%s) on conflict ("A_code") do nothing',d)
conn.commit()
#練習
c.execute(f'SELECT "A_code" FROM info_test')
a_code_list = [row[0] for row in c.fetchall()]
for a_code in a_code_list:
c.execute(f'SELECT * FROM info_test WHERE "A_code"="{a_code}"')
d = [row for row in c.fetchall()]
print(d)
784デフォルトの名無しさん
2021/11/21(日) 15:24:19.44ID:BLVHorEN 行データを一行ずつ取得したいのですが、できませんでした。
書き込み時にインデントが消えてしまいましたので再度投下します。
import psycopg2
conn = psycopg2.connect('host=localhost port=5432 dbname=goya user=goya password=ksfdkjwoe')
c = conn.cursor()
#練習用のテーブル作成
c.execute('''
CREATE TABLE IF NOT EXISTS info_test(
____"A_code" text unique,
____"weight(g)" integer,
____"item_name" text
)
''')
data = [("B1FD24",int(566),"ハンマー"),("B6DE49",None,"空気"),("B4XB21",int(823),"米")]
for d in data:
____c.execute(f'INSERT INTO info_test ("A_code","weight(g)","item_name") VALUES(%s,%s,%s) on conflict ("A_code") do nothing',d)
conn.commit()
#練習
c.execute(f'SELECT "A_code" FROM info_test')
a_code_list = [row[0] for row in c.fetchall()]
for a_code in a_code_list:
____c.execute(f'SELECT * FROM info_test WHERE "A_code"="{a_code}"')
____d = [row for row in c.fetchall()]
____print(d)
c.execute(f'SELECT * FROM info_test WHERE "A_code"="{a_code}"')
の部分をc.execute(f'SELECT * FROM info_test WHERE "weight(g)"=566')にすると行データを取れるのでどうしていいかわかりません
書き込み時にインデントが消えてしまいましたので再度投下します。
import psycopg2
conn = psycopg2.connect('host=localhost port=5432 dbname=goya user=goya password=ksfdkjwoe')
c = conn.cursor()
#練習用のテーブル作成
c.execute('''
CREATE TABLE IF NOT EXISTS info_test(
____"A_code" text unique,
____"weight(g)" integer,
____"item_name" text
)
''')
data = [("B1FD24",int(566),"ハンマー"),("B6DE49",None,"空気"),("B4XB21",int(823),"米")]
for d in data:
____c.execute(f'INSERT INTO info_test ("A_code","weight(g)","item_name") VALUES(%s,%s,%s) on conflict ("A_code") do nothing',d)
conn.commit()
#練習
c.execute(f'SELECT "A_code" FROM info_test')
a_code_list = [row[0] for row in c.fetchall()]
for a_code in a_code_list:
____c.execute(f'SELECT * FROM info_test WHERE "A_code"="{a_code}"')
____d = [row for row in c.fetchall()]
____print(d)
c.execute(f'SELECT * FROM info_test WHERE "A_code"="{a_code}"')
の部分をc.execute(f'SELECT * FROM info_test WHERE "weight(g)"=566')にすると行データを取れるのでどうしていいかわかりません
785デフォルトの名無しさん
2021/11/21(日) 15:36:48.25ID:uiA0IfT6 a_codeを%sにすりゃいいだけちゃう
fと%sの使いどころの問題では
fと%sの使いどころの問題では
786デフォルトの名無しさん
2021/11/21(日) 15:43:34.67ID:BLVHorEN787デフォルトの名無しさん
2021/11/21(日) 16:48:00.01ID:BwaLJwgU >>754
df["count"].astype(long)
df["count"].astype(long)
788デフォルトの名無しさん
2021/11/21(日) 17:07:50.01ID:BwaLJwgU "weight(g)"=None
になってる行があるから
insert に失敗してるんだろ
になってる行があるから
insert に失敗してるんだろ
789デフォルトの名無しさん
2021/11/21(日) 17:18:17.35ID:BLVHorEN >>788
#練習の上の行に下記を入れると表示されるのでinsertは成功してると思います
import pandas as pd
df = pd.read_sql(sql=f'SELECT * FROM info_test;', con=conn)
print(df)
A_code weight(g) item_name
0 B1FD24 566.0 ハンマー
1 B6DE49 NaN 空気
2 B4XB21 823.0 米
#練習の上の行に下記を入れると表示されるのでinsertは成功してると思います
import pandas as pd
df = pd.read_sql(sql=f'SELECT * FROM info_test;', con=conn)
print(df)
A_code weight(g) item_name
0 B1FD24 566.0 ハンマー
1 B6DE49 NaN 空気
2 B4XB21 823.0 米
790デフォルトの名無しさん
2021/11/21(日) 17:53:07.18ID:pk+QZJjo f'SELECT * FROM info_test WHERE "A_code"=\'{a_code}\''
f"SELECT * FROM info_test WHERE \"A_code\"='{a_code}'"
SQL文字列リテラルはSQL標準ではシングルクォート。
f"SELECT * FROM info_test WHERE \"A_code\"='{a_code}'"
SQL文字列リテラルはSQL標準ではシングルクォート。
791デフォルトの名無しさん
2021/11/21(日) 18:18:28.27ID:szj4saah Warning
Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.
f-stringも同じこと
Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.
f-stringも同じこと
792デフォルトの名無しさん
2021/11/21(日) 18:22:31.92ID:BLVHorEN793デフォルトの名無しさん
2021/11/21(日) 19:25:01.44ID:MSJBJTi1 >>791 をスルーするのが今日の流れっぽい
794デフォルトの名無しさん
2021/11/21(日) 19:40:20.97ID:coVM5S7R 実験や習作だと思うけどprepared statement使うのが筋だし
f-stringで教えるアホは業界去った方がいい
f-stringで教えるアホは業界去った方がいい
795デフォルトの名無しさん
2021/11/21(日) 20:19:01.83ID:BLVHorEN すまん、791はwarningって書いてあったからよくみてなかった。
初心者すぎてよくわからんのですが、f-stringとprepared statementってどっちがどっちですか?
@f"{a}"のやつ
A(%),aのやつ
結果が同じでも処理に違いがある感じですか?
初心者すぎてよくわからんのですが、f-stringとprepared statementってどっちがどっちですか?
@f"{a}"のやつ
A(%),aのやつ
結果が同じでも処理に違いがある感じですか?
796デフォルトの名無しさん
2021/11/21(日) 20:23:30.97ID:BLVHorEN 791google翻訳してみましたが、よくわからん。
警告
変数をSQLクエリ文字列に渡すために、
Python文字列連結(+)または文字列パラメーター補間(%)を使用しないでください。
銃を突きつけても。
(%),aではなくf"{a}"がいいですよってこと?
警告
変数をSQLクエリ文字列に渡すために、
Python文字列連結(+)または文字列パラメーター補間(%)を使用しないでください。
銃を突きつけても。
(%),aではなくf"{a}"がいいですよってこと?
797デフォルトの名無しさん
2021/11/21(日) 20:45:52.97ID:szj4saah798デフォルトの名無しさん
2021/11/21(日) 20:48:25.93ID:BLVHorEN799デフォルトの名無しさん
2021/11/21(日) 21:16:22.28ID:zYUtuXs9 基本、Ruby on Rails などのウェブ開発では、
SQL 文を、文字列で組み立ててはいけない!
ユーザーが危険な文字列を送ってきて、SQL injection しようとするから
必ず、危険な文字列をエラーにするように、
place holder という書き方をしないといけない!
フレームワークを使った、ウェブ開発の基本
SQL 文を、文字列で組み立ててはいけない!
ユーザーが危険な文字列を送ってきて、SQL injection しようとするから
必ず、危険な文字列をエラーにするように、
place holder という書き方をしないといけない!
フレームワークを使った、ウェブ開発の基本
800デフォルトの名無しさん
2021/11/21(日) 21:21:08.30ID:coVM5S7R >>795
@もAもprepared statementではないけどもAが正解
Aでpsycopg2が行っているような処理をRDBMS(PostgreSQL)側で行うのがprepared statements
https://www.psycopg.org/psycopg3/docs/advanced/prepare.html#prepared-statements
psycopg3になれば勝手にやってくれるみたい
@もAもprepared statementではないけどもAが正解
Aでpsycopg2が行っているような処理をRDBMS(PostgreSQL)側で行うのがprepared statements
https://www.psycopg.org/psycopg3/docs/advanced/prepare.html#prepared-statements
psycopg3になれば勝手にやってくれるみたい
801799
2021/11/21(日) 21:44:07.52ID:zYUtuXs9 例えば、Ruby では、
変数a を使って、上の2つのように文字列を連結させたり、
式展開してから埋め込んだりしても、
変数aの内容をユーザーからもらった、危険な文字列の場合、SQL injection される
例えば、WHERE (id = 1 OR 1 = 1)なら、
true となるので、すべてのレコードが取得される!
それを最後のように、place holder, ? を使えば、
危険な文字列をエラーにできる
こういうやり方が、Ruby on Rails などのフレームワークを使った、ウェブ開発の基本
id = '1 OR 1 = 1'
User.where( "id = " + id )
User.where( "id = #{id}" )
User.where( "id = ?", id )
変数a を使って、上の2つのように文字列を連結させたり、
式展開してから埋め込んだりしても、
変数aの内容をユーザーからもらった、危険な文字列の場合、SQL injection される
例えば、WHERE (id = 1 OR 1 = 1)なら、
true となるので、すべてのレコードが取得される!
それを最後のように、place holder, ? を使えば、
危険な文字列をエラーにできる
こういうやり方が、Ruby on Rails などのフレームワークを使った、ウェブ開発の基本
id = '1 OR 1 = 1'
User.where( "id = " + id )
User.where( "id = #{id}" )
User.where( "id = ?", id )
802デフォルトの名無しさん
2021/11/21(日) 21:46:31.38ID:BLVHorEN 調べてきたけど、プレースホルダーを使わないと攻撃されたとき危険ってのがわかったわ。
ちなみに↓をf''使わずに(%)をつかって書くとどうなるんや?
f'SELECT * FROM info_test WHERE "A_code"=\'{a_code}\''
ちなみに↓をf''使わずに(%)をつかって書くとどうなるんや?
f'SELECT * FROM info_test WHERE "A_code"=\'{a_code}\''
804デフォルトの名無しさん
2021/11/21(日) 21:48:35.16ID:6VEnDrqa で、結局どう書くのがベストなの? こう?
c.execute("SELECT * FROM info_test WHERE A_code=%s", (a_code,))
テーブル作成とかの"A_code"って、ダブルクォーテーションいらないんじゃない?
ttps://www.curict.com/item/20/20f70b7.html
とか見るとダブルクォーテーションで囲ってないよね
c.execute("SELECT * FROM info_test WHERE A_code=%s", (a_code,))
テーブル作成とかの"A_code"って、ダブルクォーテーションいらないんじゃない?
ttps://www.curict.com/item/20/20f70b7.html
とか見るとダブルクォーテーションで囲ってないよね
805デフォルトの名無しさん
2021/11/21(日) 21:51:23.16ID:BLVHorEN 大文字の時は括らなきゃいけないのかと思ってたわ
806デフォルトの名無しさん
2021/11/21(日) 22:20:00.67ID:EfkKXMOb > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
ゲリ便をじゅるじゅると
うまそうに食ってるw
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
ゲリ便をじゅるじゅると
うまそうに食ってるw
807デフォルトの名無しさん
2021/11/21(日) 22:30:00.92ID:nzk7IXVa808デフォルトの名無しさん
2021/11/21(日) 23:10:08.06ID:i/lteX3h809デフォルトの名無しさん
2021/11/22(月) 16:55:05.56ID:axkd8Lua810デフォルトの名無しさん
2021/11/23(火) 12:20:48.24ID:HWlCU4L+ 3.10に変えたらscikit-learnがインストール出来なくなった
まあそう頻繁に使うライブラリでもないけど
まあそう頻繁に使うライブラリでもないけど
811デフォルトの名無しさん
2021/11/23(火) 19:50:40.69 assertの使いどころがぐぐってみましたがいまいちピンと来ません
812デフォルトの名無しさん
2021/11/23(火) 20:09:45.21ID:HurF++pM813デフォルトの名無しさん
2021/11/23(火) 20:42:03.75ID:mB/cMOfZ あくまで開発中の考慮漏れなんかを防ぐ用途なので
ランタイムエラーにしたいならassertの出番ではない
ランタイムエラーにしたいならassertの出番ではない
814デフォルトの名無しさん
2021/11/23(火) 22:55:20.18ID:bS29UIDJ815デフォルトの名無しさん
2021/11/23(火) 22:55:45.59ID:xEN2JBOU var : Optional[str] =None
on_btn():
__assert var
__var処理
みたいな。pylanceとかに怒られない
varにモノ入ってっからbtnが押されるに決まってんだろうがっていうとき
on_btn():
__if not var:
____return
__else:
____var処理
て書くのがバカらしいので
on_btn():
__assert var
__var処理
みたいな。pylanceとかに怒られない
varにモノ入ってっからbtnが押されるに決まってんだろうがっていうとき
on_btn():
__if not var:
____return
__else:
____var処理
て書くのがバカらしいので
816デフォルトの名無しさん
2021/11/24(水) 03:25:37.66ID:Q5JPayEq >>812
絶対壊れる未来しか観えない
絶対壊れる未来しか観えない
817デフォルトの名無しさん
2021/11/24(水) 03:27:08.47ID:Q5JPayEq818デフォルトの名無しさん
2021/11/24(水) 08:02:23.61ID:jO3RIx+f 1000行のプログラムって初心者からすると途方もない規模のプログラムに感じるけど、慣れた人からすると当たり前な規模なのかな
819デフォルトの名無しさん
2021/11/24(水) 10:22:49.14ID:9k7x+oD0 一本の文脈でプログラム書こうとすると人間は必ずワーキングメモリの限界がくるから、そんなもんだよ
自分の場合、そうやって場当たり的に書けるのは1000行くらいが限界だな
大きなプログラムを書くには、プログラムというものをトップダウンに考えて、モジュールや関数に適宜分割していくことが必要
そうすることで枝葉の細かい部分を忘れてワーキングメモリを節約できる
特にPythonの場合はJupyter使って勉強する人が多いから、プログラムの分割が身に着きにくいんだよ
自分の場合、そうやって場当たり的に書けるのは1000行くらいが限界だな
大きなプログラムを書くには、プログラムというものをトップダウンに考えて、モジュールや関数に適宜分割していくことが必要
そうすることで枝葉の細かい部分を忘れてワーキングメモリを節約できる
特にPythonの場合はJupyter使って勉強する人が多いから、プログラムの分割が身に着きにくいんだよ
820デフォルトの名無しさん
2021/11/24(水) 10:39:50.61ID:kXzWnsgO821デフォルトの名無しさん
2021/11/24(水) 10:42:31.59ID:kXzWnsgO >819
Jupyterは慣れた人が楽するためには良いけど
あれで勉強するのは限界もあるな
Jupyterが悪いとは言ってない
あれがPython世界の全てだと勘違い認識しないようにするのが大事
Jupyterは慣れた人が楽するためには良いけど
あれで勉強するのは限界もあるな
Jupyterが悪いとは言ってない
あれがPython世界の全てだと勘違い認識しないようにするのが大事
822デフォルトの名無しさん
2021/11/24(水) 11:34:24.45ID:q9kQZP30 Jupyterなんか、ここ5年くらいてpythonはいった人の一部がつかってるだけで、python流行り出した2005年頃から利用してるpython使ってる組み合わせは今もあまり使ってないでしょ。
823デフォルトの名無しさん
2021/11/24(水) 16:15:21.36ID:uoHN98GH 今日中にあるサイトのスクレイピングコードを書かないといけなくなりました
しかしスクレイピングはしたことがありません
どのように書くのがいいのでしょうか?
恐らくpostであろうformっぽい部分にデータを入れて検索すると色々と表示される感じです
djangoだろうと思います
インプット・アウトプットが特にイメージできません
しかしスクレイピングはしたことがありません
どのように書くのがいいのでしょうか?
恐らくpostであろうformっぽい部分にデータを入れて検索すると色々と表示される感じです
djangoだろうと思います
インプット・アウトプットが特にイメージできません
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★4 [蚤の市★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【速報】旧統一教会会長が辞任 [459590647]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【高市速報】中国「このままだと日本が先制攻撃してくる」 [583597859]
- AI「その画像AIだぞ」AIぼく「そうなんだ助かる」
- 【悲報】山里亮太(南海キャンディーズ)さん [329329848]
- ネトウヨ「我が国の総理大臣可愛すぎるだろ!」 [201193242]
