Pythonのお勉強 Part71at TECH
Pythonのお勉強 Part71 - 暇つぶし2ch962:デフォルトの名無しさん
23/12/23 16:44:24.69 v4dsWN6K0.net
>>952
[int(x) for x in s.split('\t') if x]
or
[int(x) if x else None for x in s.split('\t')]
or
def to_int(s):
 try:
  return int(s)
 except ValueError:
  return None
map(to_int, s.split('\t')))
Pythonはパイプライン処理とは相性が悪いので
無理せずおとなしくPython風の書き方を従っておいたほうがベター

963:デフォルトの名無しさん
23/12/23 17:10:46.05 +yR1xAXI0.net
やっぱり自分用intを作るのが正解か

964:デフォルトの名無しさん
23/12/23 17:11:30.40 MC2+Dwkk0.net
そんなバカな発想やめな

965:デフォルトの名無しさん
23/12/23 17:50:31.60 v4dsWN6K0.net
pandasならそれなりによろしくやってくれる
converterも指定できるので自分でmapする必要はない
s = "111\t\t222\t\t333\t\t000"
pd.read_csv(StringIO(s), header=None, sep='\t')
Out:
0 1 2 3 4 5 6
0 111 NaN 222 NaN 333 NaN 0

966:デフォルトの名無しさん
23/12/23 17:58:11.43 cGlPuzRM0.net
>>952
モナドの出番だな

967:デフォルトの名無しさん
23/12/23 18:04:54.64 cGlPuzRM0.net
def maybe_int(value):
try:
return Just(int(value))
except ValueError:
return Nothing()
class Just:
def __init__(self, value):
self.value = value
def bind(self, func):
return func(self.value)
def __repr__(self):
return f"Just({self.value})"
class Nothing:
def bind(self, func):
return self
def __repr__(self):
return "Nothing()"
# 例としてのタブ区切りの文字列
input_string = "123\t456\t\t789"
# モナド風の変換
result = [maybe_int(x) for x in input_string.split('\t')]
# 結果の確認
print(result)

968:デフォルトの名無しさん
23/12/23 18:05:26.31 cGlPuzRM0.net
インデントおかしくなったスマソ

969:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 19:36:53.20 /V7lYSgm0.net
Haskellを使いたい願いながらPythonを使わざるを得ない哀れな人間が書きそうなコード見て笑っちゃった

970:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 19:58:21.69 /V7lYSgm0.net
しかもこれモナドというよりはファンクターじゃね

971:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 20:01:20.65 /V7lYSgm0.net
あ、いやファクターではなさそう

972:デフォルトの名無しさん (ワッチョイ 031d-tFpX)
23/12/23 20:57:15.51 cy6wCCec0.net
result = [int(i) if type(i) == int else None for i in s.split('¥t')]
これでいけんか?

973:デフォルトの名無しさん (ワッチョイ f354-NbWU)
23/12/23 21:21:39.45 +yR1xAXI0.net
いけるかどうかで言えば、lambdaで書いてもいけるんだろうけど、
いちいちそんなこと書きたくない

974:デフォルトの名無しさん (ワッチョイ 6f01-sfQN)
23/12/23 23:12:44.45 WlHvEb3t0.net
>>964
strなのでtype(i) == intはFalse

975:デフォルトの名無しさん
23/12/24 05:47:20.20 jOD7RUSOM.net
モナドってなんなの?
数学系の人が書いたHaskellの入門書読んだけど写像!写像!ばっかでめんどくさくなっちゃった
あれ本当に便利なの?

976:デフォルトの名無しさん
23/12/24 06:03:40.69 2RNZTzrB0.net
モナドはRustでも採用されとらんし、HaskellでもIOモナド以外であんま使われてる印象ないし、神経質なオタクがIOすら数学的にしたくて入れたような印象があるな
それはそうと写像とかの数学概念は普通に筋の良い抽象化で便利だとは思う

977:デフォルトの名無しさん
23/12/24 08:20:03.60 Cma5/cXc0.net
内包表記も数学から持ってきてるな

978:デフォルトの名無しさん (ワッチョイ 03de-tFpX)
23/12/24 11:28:16.67 r1BGz2rf0.net
>>966
ああそうかsplit後はstrか
ならtypeじゃなくてre.fullmatchならいけるでしょ

979:デフォルトの名無しさん
23/12/24 13:10:11.85 +alFE5Zb0.net
>>970
いけるけど記号を考慮すると面倒なのでtry-exceptしたほうが簡単だよ
int(1_000) => 1000
int(1__000) => ValueError
int(1_0_0_0) => 1000
int(1_0_0_0_) => ValueError

980:デフォルトの名無しさん
23/12/25 04:22:31.09 1pIswkAR0.net
Python使ったデータサイエンス系の開発環境を会社の事情でLinuxからWindowsに移行したんだけど
ファイルやフォルダへのショートカット(.lnk)をPythonで直接的に扱えないことに今更気づいた
Pythonのせいではないとはいえ死ぬほど不便なのでなんとかしたい
WshShortcutを使ってごちょごちょすればアクセスできるけどそんな面倒なことしてられないし
環境がWindowsの人って普段どうしてるの?
ショートカット使うのはやめてmklinkコマンドでシンボリックリンク張る感じ?
でもシンボリックリンク自体がWindowsだとあまり文化として一般的ではないと思う(たとえギークレベルでも)

981:デフォルトの名無しさん
23/12/25 05:28:22.15 fZmNQMgb0.net
漏れは、デスクトップにショートカットを作って、
Windows 10, WSL2 でLinux・Ubuntu を起動して、
VSCode でRuby on Rails をやってるけど
リンク先
C:\Windows\System32\wsl.exe code .
作業フォルダ
\\wsl$\Ubuntu-18.04\home\<ユーザー名>\project

982:デフォルトの名無しさん (スップ Sd1f-AH//)
23/12/25 12:27:50.83 w/c7nza5d.net
Pythonに限った話でなくプログラム言語全般の話で恐縮なのですが、変数名などの命名規則で先頭小文字のキャメルケースが使われることも良くあると思います。(先頭大文字パターンもあるのは認識しています)
この「先頭は小文字」というのは、見た目的に読みやすい、とかそういう理由なのでしょうか?

例えば、ある変数 productCode があったとして、「productCode」をチェックする関数だと
checkProductCode()
みたいな感じになり、Productの先頭が大文字になります。
同じものを指してるのに、先頭が小文字大文字が混在してなんかモヤモヤします。
こういうのはあまり気にならないものなのでしょうか?

983:デフォルトの名無しさん (ワッチョイ 639a-l39z)
23/12/25 12:46:19.39 HDhwTf8w0.net
productCodeはProductCodeのインスタンスが入ってる変数
checkProductCodeは特定のインスタンスではなくProductCodeに対する関数


というふうにわざわざ考えたりしないくらいには気にならない

984:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/25 13:01:34.08 bUfbLUPY0.net
先頭小文字のCamelCaseみたいなキモい書き方Pythonには存在せんだろ
なんでよりによってPythonスレで聞くんだ

985:デフォルトの名無しさん
23/12/25 13:45:24.80 Ebjaalbb0.net
移植する時に直すの面倒でキャメルケースが残ることもある
区切り部分を大文字にしてるんだから先頭は小文字が合理的だけど、
世の中一般では固有名詞に使うことが多いので先頭も大文字になる
pythonでクラス名や例外名が大文字始まりのキャメルケース推奨なのは、
どういう経緯があるんだろう

986:デフォルトの名無しさん
23/12/25 13:46:50.50 KMEA0AVf0.net
>>974
先頭大文字だとクラスを指してるように勘違いしちゃうからとかかもしれん

987:デフォルトの名無しさん
23/12/25 13:52:36.73 93zueivl0.net
>>972
win32comとか使えばできるっしょ

988:デフォルトの名無しさん
23/12/25 14:10:07.28 4YZcJ8/J0.net
初心者が今からこの言語をやりたくなったらこっちをやれ
Perl→PHP+WordpressかPythonやれ
Ruby→絶対Pythonに引っ越すからPythonやれ
Fortran、Matlab、Julia、R、Processing→自分の専門領域でメジャーなものに従え、なければPython使え
Java、VB.net→これ勧めるやつは人売りだから逃げろ、プライベートならC#やれ
Lisp、C→日曜日にやるならOK
VBA→平日にやるならOK
C++→Rustやれ
Rust→Cのあとにやれ
Javascript、Typescript→やるならWebで学ぶのに慣れろ、本はすでに古いかすぐ古くなる
Go→利点がわかるならやれ、なんとなくならC#かPythonにしとけ
Haskell、O'caml、Scala→5年後くらいにイキりたくなったらやれ
SQL、正規表現→できて当たり前だからやっとけ

989:デフォルトの名無しさん
23/12/25 14:31:05.96 77r75M+dM.net
>Lisp、C→日曜日にやるならOK
>VBA→平日にやるならOK
>C++→Rustやれ
>Rust→Cのあとにやれ
おいw

990:デフォルトの名無しさん
23/12/25 14:49:35.59 93zueivl0.net
>>980
C#に関する発言だけは的外れ

991:デフォルトの名無しさん
23/12/25 14:50:59.66 4YZcJ8/J0.net
>>982
マジか

992:デフォルトの名無しさん
23/12/25 15:00:57.01 Ebjaalbb0.net
C#を勧める人は筋トレ勧める人に似てる

993:デフォルトの名無しさん
23/12/25 15:29:16.14 4Z5LCY+60.net
F#で書きたいけど仕方なくC#で妥協してる

994:デフォルトの名無しさん
23/12/25 20:56:30.50 1pIswkAR0.net
>>973
WSLか、あれはいいものだ・・・
でも残念ながらLinux扱いされて社内承認がクッソ面倒な上にホストで動いてるBox Driveへのアクセスができなくて断念した
>>979
できるけど、なんでこんなことしなきゃならんのって気持ちが湧いてきてしまう
慣れれば何も思わなくなるのかな
こりゃもう普通にLinux使用許可もらうよう動いたほうが早いかな

995:デフォルトの名無しさん
23/12/25 22:38:56.44 WF81hfK00.net
どうでもいいことだが
オナ禁したらめちゃ勉強捗るのな

996:デフォルトの名無しさん
23/12/26 07:38:40.27 3bMmKL6bH.net
>>972
普通にパスを指定するだけだが…
ショートカットというのは人が手でファイル操作する時に使うものだろ

997:デフォルトの名無しさん
23/12/26 10:18:42.86 a0/8HJXg0.net
こういう意見が平然と出て来るあたりが、いかにもMS-Windowsだなあという感じする。
>>988
> ショートカットというのは人が手でファイル操作する時に使うものだろ

998:デフォルトの名無しさん
23/12/26 10:34:36.79 3bMmKL6bH.net
>>989
平然も何も、Windowsのショートカットは人がマウスでWクリックするために用意されている機能だろ

999:デフォルトの名無しさん
23/12/26 11:02:02.09 kpi70gTP0.net
Explorerで整理したファイル郡に対して処理したいんでしょ?
OS標準のデスクトップなんだし
自分ではそんなことしないが想像できる範囲の話やん

1000:デフォルトの名無しさん
23/12/26 13:05:12.49 i/USyFaH0.net
マウント取りたいアホしかいない地獄のようなスレ

1001:デフォルトの名無しさん
23/12/26 13:48:05.30 a0/8HJXg0.net
# The Thread from Hell !
from hell import thread

1002:デフォルトの名無しさん
23/12/26 14:13:43.15 HS5XBp93a.net
>>991
まずExplorerを捨てろ

1003:デフォルトの名無しさん
23/12/26 21:26:30.09 kk4yj+FYM.net
ショートカットはシンボリックリンクとは違う

1004:デフォルトの名無しさん
23/12/27 04:00:17.75 TJvzVpkY0.net
小学4・5年生にPython早いですかね?
スクラッチやるよりturtle極めさせようと思ってるんだが
間違ってますかね?

1005:デフォルトの名無しさん (ワッチョイ 53a7-tFpX)
23/12/27 06:26:47.20 U0sabDMs0.net
>>996
何を懸念してるのかさっぱりわからん

1006:デフォルトの名無しさん (JP 0H7f-5bsa)
23/12/27 06:43:09.18 axeHJPf5H.net
>>996
子供の頃からプログラミングなんかさせたら引き籠りニートになっちまうぞ
その時間で勉学をきっちりさせて東大か京大に行かせとけ

1007:デフォルトの名無しさん (ワッチョイ 8f87-6eTB)
23/12/27 07:00:37.83 oR+jfmx80.net
pythonは初心者なんで詳しい説明はできんが基本的なアルゴリズムの考え方は後々役に立つし本人の興味さえあれば年齢は関係無いと思う、俺は早いほうがいいと思う

1008:デフォルトの名無しさん (ワッチョイ bf4b-qNuo)
23/12/27 07:39:33.71 TJvzVpkY0.net
レスありがとう
ゲームクリエイターになりたいっていうんだけど、
テキストプログラミングやる前に、
ビジュアルプログラミングやる方が良いって
散々言われてるし、小学校中学校ではScratch教えてるっぽいから
どうしようかなって悩んでる

勉強させるほうが良いってのはわかる
個人ではいつでもゲーム作れるが
任天堂には勉強してないと入れないからな

1009:デフォルトの名無しさん
23/12/27 08:14:26.20 PW7pbSu60.net
素質があれば言語選ばずなんでもいけるだろ
選ばないと出来ないなら素質が無いんだよ

1010:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 97日 23時間 0分 45秒

1011:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch