🔥 PTT.BEST 熱門專區 💬 八卦 Gossiping 😊 希洽 C_Chat 💰 股票 Stock 🏠 房屋 home-sale 🏀 美國職籃 NBA ⚾ 棒球 Baseball 👛 省錢 Lifeismoney 🚗 汽車 car 😡 政黑 HatePolitics 💻 電蝦 PC_Shopping 🥰 韓星 KoreaStar ✨ 英雄聯盟 LoL 🍿 電影 movie 🪖 軍事 Military 📡 通訊 MobileComm 🏀 台籃 basketballTW 🍼 寶媽 BabyMother 🇯🇵 日旅 Japan_Travel 🏭 科技 Tech_Job 👧 女孩 WomenTalk 👻 媽佛 marvel 💳 卡版 creditcard 👉 NS NSwitch 👉 PS5 PlayStation 👉 大氣 TY_Research 👉 婚姻 marriage 👉 台南 Tainan 👉 台中 TaichungBun 👉 Steam Steam 👉 高雄 Kaohsiung 👉 羽球 Badminton 👉 超商 CVS 👉 米哈遊 miHoYo 👉 iOS 👉 兄弟 Elephants 👉 日劇 Japandrama 👉 玄幻 CFantasy 👉 ES e-shopping 👉 WOW 👉 遊戲交易 Gamesale 👉 4X BaseballXXXX 👉 Lakers 👉 韓劇 KoreaDrama 👉 汽車買賣 CarShop 👉 機車 biker 👉 新竹 Hsinchu 👉 美保 BeautySalon 👉 串流 OTT 👉 歐美影集 EAseries 👉 手機交易 mobilesales 👉 健身 MuscleBeach 👉 MacShop 👉 Lions 👉 FGO FATE_GO 👉 中劇 China-Drama 👉 數位貨幣 DigiCurrency 👉 暗黑 DIABLO 👉 實習教師 studyteacher 👉 航空 Aviation 👉 藝文票券轉售 Drama-Ticket 👉 韓綜 KR_Entertain 👉 美妝 MakeUp 👉 速食 fastfood 👉 手錶 watch 👉 體適能 FITNESS 👉 攝影 DSLR 👉 Headphone 👉 嘻哈 Hip-Hop 👉 轉珠 PuzzleDragon 👉 美食 Food 👉 蔚藍 BlueArchive 👉 數位相機交易 DC_SALE 👉 筆電蝦 nb-shopping 👉 軟工 Soft_Job 👉 汪踢 Wanted 👉 台綜 TW_Entertain 👉 坂道閒聊 SakaTalk 👉 貓咪 cat 👉 日GO BabyProducts 👉 TypeMoon 👉 MLB 👉 職場 Salary 👉 臺劇 TaiwanDrama 👉 海賊王 ONE_PIECE 👉 PMGO PokemonGO 👉 國營 Gov_owned 👉 碧航 AzurLane 👉 家電 E-appliance 👉 布蘭德 Brand 👉 DMMG DMM_GAMES 👉 贈送 give 👉 神魔 ToS 👉 銀行服務板 Bank_Service 👉 原創 YuanChuang 👉 期權 Option 👉 重機 SuperBike
※ 引述《arrenwu (最是清楚哇她咩)》之銘言: : 而如果追求更方便、同時短短幾行就能引出很大效果的程式語言, : 那從Python入門也行。這個對程式麻瓜最友善 : 缺點就是使用者對於電腦處理整數、小數點、字串的方式, : 以及記憶體管理會很沒有概念。 : 有人可能覺得這些計概會教,我個人覺得是... : 這些東西只有摸了才會知道在幹嘛,讀過計概就只有「反正底下就是01010101」 : : 推 phoenix286: 就算不清楚電腦處理資料型態及記憶體管理的方式 12/20 08:33 : → phoenix286: 這對使用者會有什麼影響嗎? 12/20 08:33 整數簡單,會出現問題通常是浮點數 ------ Pytthon 3.9.7 ------ >> x = 0.1 + 0.2 >> x - 0.3 == 0.0 False 表面上看起來是 "0.1 + 0.2 - 0.3 不等於 0.0"的怪事, 但實際上是你打進一個浮點數,實際上程式存進去的數值跟人想的不一樣。 這必須要知道電腦怎麼處理資料 另外關於記憶體管理的部分,我講記憶體管理可能容易造成誤解, 我想描述的是在 C 裡面 malloc 或 new 算子在記憶體裡面創造物件的機制 最終是要了解 pass by reference 和 pass by value 的差異。 C/C++ 會強迫使用者要理解這差異 但是Java以上隱藏了pointer的存在後,這部分就比較模糊 這差異的重要性在於... x = 3; y = x; # 複製x到y y = 9; # 現在設定y的數值為9 x -> 3 y -> 9 非常直覺的結果 但換成 numpy 的矩陣: import numpy as np A = np.array([[1,2],[3,4]]) B = A # 複製A到B B[0,0] = 9 # 改動B的第一個entry為9 B -> [9,2] [3,4] A -> [9,2] <---- 你只有改B,但A也被改動了 [3,4] 要理解這個情況,使用者無論如何都要理解pointer的概念 啊對了,矩陣那個例子,在MATLAB不成立 MATLAB 矩陣的等號算子是 deepcopy 嘻嘻 不過記憶體管理也確實該要了解啦 因為有時候你一個不小心還是會在Python造成memory leak。 如果沒有記憶體管理概念的話,你連你的程式可能造成memory leak都不知道 -- 角卷綿芽Line貼圖上市囉~ 24種可愛貼圖,只要30元! https://pbs.twimg.com/media/FTwzC2AUYAAF5AY.jpg
購買連結:https://t.co/lNGU5jN7b2 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.45.195.96 (美國) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1703038911.A.7A1.html
SangoGO: 只好出動邏輯大師javascript了 12/20 10:22
smart0eddie: js不好嗎 12/20 10:28
說來慚愧 javascript雖然夯到爆 但我沒用過
Ericz7000: 大大都用什麼 12/20 10:29
個人娛樂用Anaconda Python
JustBecauseU: js 1=='1' 嘻嘻 12/20 10:30
msbdhdfceb: C#有decimal可以用,不會出現0.3那個例子的問題,如 12/20 10:31
msbdhdfceb: 可你很在意十進位精度時可使用(金融計算時尤其重要 12/20 10:31
madrac: 我覺得浮點數是另個單獨的問題啦 12/20 10:32
ccpz: js 0=="0", 0==[] 都是 true, 但是 "0"==[] 會是 false 12/20 10:32
==
madrac: 我通常都是教人: 沒必要的話就全部用整數記資料 12/20 10:33
s7503228: js爛死了幹 12/20 10:33
但是js超爆幹夯耶
ccpz: NaN==NaN 也是 false 12/20 10:33
madrac: 真的要寫需要大量數值方法的程式就是開 Matlab 了 12/20 10:33
用Python也可以啦
devilkool: 我還看過全部用字串記的= = 12/20 10:33
SangoGO: 因為js是用在前台的,戰場不同 12/20 10:36
usoko: js真的是邏輯大師 py算什麼 12/20 10:38
usoko: 不過這年頭IDE都會跳warning告訴你memory leak 12/20 10:39
s7503228: 我也常用所以知道問題 不過還好現在我只搞後端 前端不用 12/20 10:40
s7503228: 弄了 基本上可以跳過 JS只適合搞一些簡單的東西 再多都 12/20 10:40
s7503228: 要套件去弄 12/20 10:40
msbdhdfceb: 動態型別語言都會有很多魔法 JS只是裡面巫力特別高的 12/20 10:40
Python 的函數,變數可以不用宣告型別。 這點有時候會搞得debug滿痛苦的
rabbithouse: 傳址跟傳值搞得懂的話 C++用起來會有人機一體的感覺 12/20 10:40
rabbithouse: 很舒服 12/20 10:40
我...嗯...只覺得C++的macro能搞得error log很難懂而已 倒是從來沒有人機一體的感覺 ※ 編輯: arrenwu (98.45.195.96 美國), 12/20/2023 10:41:48
s7503228: 現在寧願值都在後端處理完在丟到前端做簡單處理就好 JS 12/20 10:41
s7503228: 本身能不用就不用== 12/20 10:41
SangoGO: 越方便就越不清楚...,畢竟是js,一個var包山包海 12/20 10:41
usoko: 以算力來說 複雜的事情本來就該在後端做完 12/20 10:41
bpk: https://i.imgur.com/f1ZTRf9.png 12/20 10:42
usoko: 這年頭type safe對軟體開發很重要 py其實不能亂寫 12/20 10:42
usoko: 經典js meme 12/20 10:42
madrac: 我這邊 C++ 趨勢都是沒在寫 macro 了, 太難維護 12/20 10:45
zyxx: 只有var是幾年前的事了 現在有let const 12/20 10:46
Issarc0721: js真的是很多奇葩的玩法可以搞人XD 12/20 10:46
bpk: js在瀏覽器按F12就可以用console測一些指令 12/20 10:48
thelittleone: 這個不是基本之一嗎?不管學Python Java都會遇到 12/20 10:49
thelittleone: 寫JavaScript 就自求多福,自己不搞不表示同事不搞 12/20 10:50
ccaao311: 補另個點,R跟matlab一樣不會改動到前者的array 12/20 10:52
inte629l: python記得有參照機制吧 12/20 10:54
mikuyoyo: 值本來就是越後面處理越好吧,js 用途就是網頁框架都用 12/20 10:56
mikuyoyo: 他,又沒人在用別的語言 12/20 10:56
lay10521: 原來拍森也會這樣== 12/20 10:58
entaroadun: 學過其他語言再看js會覺得這是啥小XD 12/20 11:00
kirimaru73: 這邊可以測試一下用浮點數玩弄電腦 12/20 11:05
kirimaru73: https://bit.ly/41sFKvp 12/20 11:06
kirimaru73: 0.1 0.2 0.3 0.4 0.6 0.7 0.8 0.9 都是不準的 12/20 11:06
herbleng: 那個浮點數的問題其實c也會有,畢竟電腦處理小數的方式 12/20 11:07
herbleng: 都是2的負次方在做 12/20 11:07
kirimaru73: 但是0.5 0.25 0.75 1.5 2.125 等等就會是準的 12/20 11:07
kirimaru73: 所以不會有人開0.25 + 0.5 != 0.75的玩笑 12/20 11:08
kirimaru73: 浮點數就是效率>>精確度 各語言也都有精確度>>效率的 12/20 11:08
kirimaru73: 資料型態,算錢的時候如果需要就會改用那些 12/20 11:08
kirimaru73: 64bit浮點數雖然算一次看起來好像是準的,但你連算100 12/20 11:09
kirimaru73: 次還是會大爆炸 12/20 11:09
dosiris: 都2023了 浮點問題還沒克服 笑鼠 12/20 11:10
kirimaru73: 你可以寫出完全沒有浮點問題的程式,然後如果是遊戲引 12/20 11:13
kirimaru73: 擎的話FPS保守比競爭者少了三倍左右 12/20 11:13
kirimaru73: 那你是要克服浮點問題還是老老實實賣遊戲 12/20 11:14
kirimaru73: 不過如果是計算無人機去冥王星探測一圈這種應用,我就 12/20 11:16
kirimaru73: 不知道會採用哪種策略了,這個貪效率可能真的會出事 12/20 11:16
broian: 我只想知道為什麼要一直出不同的程式語言 12/20 11:16
lightdogs: 浮點問題的確很麻煩 能用int 就用int 判斷式能用str 12/20 11:18
lightdogs: 就用str 純粹數字有時候就是會搞人 12/20 11:18
lightdogs: 這就要去問各家廠商了 不管硬體軟體 很多廠商就是喜歡 12/20 11:19
lightdogs: 自創自己的語言 然後87%跟ja python c++很類似 12/20 11:19
kirimaru73: 最簡單的例子 顯示卡又看不懂C++ 你想要他高效率地做 12/20 11:21
kirimaru73: 牛做馬,你就要幫他創造他能懂的語言 12/20 11:21
Suleika: 新語言的發展通常跟解決效能還有特化某領域有關,語言跟 12/20 11:24
Suleika: 產業有關,產業跟錢有關 12/20 11:24
kirimaru73: 近代的發展已經開始自創天生願意做牛做馬的卡(已經不 12/20 11:27
kirimaru73: 叫顯示卡了),畢竟人類的慾望無窮無盡,顯示卡表示我 12/20 11:27
kirimaru73: 就一介算螢幕畫面的,你們怎麼要求越來越多 12/20 11:27
sarafciel: 沒到一直出吧 主流語言裡最年輕的rust也有8年了XD 12/20 11:29
sarafciel: 不過近期是有些人打算弄點新東西幹掉C++就是 12/20 11:31
kirimaru73: 湊數量的話可以請esoteric language出來開趴 12/20 11:31
broian: 感謝解答! 12/20 11:32
hollen9: 現在最有機會取代 C++ 的不就是 Rust 嗎 12/20 11:47
hollen9: Linux內核, 微軟Windows系統元件都有相關新聞 12/20 11:48
hollen9: 可以根絕人為開發疏失 造成記憶體洩漏 12/20 11:49
tsubasawolfy: wsl: memory leak 叫我? 12/20 11:52
hollen9: 更不要講還有防禦性寫程式 故意埋地雷甚至開後門的 12/20 11:52
hollen9: 不要相信任何東西 12/20 11:53
kirimaru73: 這牽涉到效率問題,C++允許你直接插腦控制記憶體內容 12/20 11:54
kirimaru73: 有時候就是真的要這樣才能逼出極限的運算效率 12/20 11:54
kirimaru73: 當然手一滑就leak到天邊了,不過你需要效率時就是需要 12/20 11:55
kirimaru73: 「絕對不會memory leak」且 「效率永遠發揮到極限」的 12/20 11:56
kirimaru73: 程式語言,如果真的存在,我也想要去跪舔啊 12/20 11:56
hollen9: Rust之所以會討論到取代 C++ 就是沒有犧牲自由調度空間吧 12/20 11:56
Suleika: 扯一堆不如看人家報告為啥用rust做kernel module比較實在 12/20 12:01
as80110680: C++你想人機一體,先去搞懂左值右值再說 12/20 12:35
spfy: 防禦性程式碼到底是不是從中國開始的阿 超虎爛欸 12/20 12:36
nthank: C++複雜是它的缺點也是優點 光是保留字就有60幾個 相比C只 12/20 13:06
nthank: 有30幾個 語法多元實際平常會用的語法可能只有20% 如果只 12/20 13:07
nthank: 有自己寫倒還好 最怕的是你旁邊那個老哥平常用的20%跟你用 12/20 13:08
nthank: 的20%是空集合 12/20 13:08
smallreader: 浮點數rounding不是很基本的嗎 12/20 13:29
henry4204aaa: 之前沒用deepcopy de到天荒地老 12/20 14:41
ejnfu: C++比Java難多了 lvalue rvalue reference, universal ref 12/20 15:18
ejnfu: erence先搞懂再說.. 12/20 15:18
louner: 沒碰過JS 但看過很多JS相關的玩笑或鬼故事XD 12/20 17:00
b0920075: 為什麼要出不同語言?這問題就像明明就有菜刀為什麼要 12/20 17:17
b0920075: 弄柴刀、鐮刀、生魚片刀、開山刀一樣 12/20 17:17
zxc8787: Python也有decimal, 你第一個例子根本不是Python獨有的 12/20 18:54
zxc8787: 問題 12/20 18:54
micbrimac: C++跟C誰比較強? 12/22 00:58

😊 希洽 C_Chat 版:熱門文章

😊 希洽 C_Chat 版:更多文章