iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

題目1:在Python裡,PYTHON HOME 環境變數功能

功能:指定Python的安裝資料夾。這可以用來更改Python的安裝路徑或指定不同的Python環境。
舉例:假設我的Python安裝在Python00的資料夾內,而且我希望Python在執行時,能使用這個這個資料夾的資料庫和設置/配置,而不是系統預設的安裝路徑。我就可以設置PYTHON HOME 環境變數,放到Python00的資料夾內。這樣Python會在Python00的資料夾內尋找所有需要的檔案/資料庫,而不是預設的路徑。

第1題結束。
————————————我是可愛的題目分隔線————————————

題目2:在Python裡,如何設定這些環境變數功能

MacOS:
通過編輯配置文件設置環境變數:

打開終端。
使用文本編輯器(如 nano 或 vim)打開你的 shell 配置文件。例如,如果你使用的是 bash,配置文件通常是 ~/.bashrc 或 ~/.bash_profile;如果你使用的是 zsh,配置文件是 ~/.zshrc。
https://ithelp.ithome.com.tw/upload/images/20240928/20168371Hqgtf6XtWR.png
在文件最後面加入以下內容來設置環境變數:

export PYTHONPATH="/path/to/your/python/libs"
export PYTHONSTARTUP="/path/to/your/startup_script.py"
export PYTHONCASEOK="1"
export PYTHONHOME="/path/to/your/python/home"
https://ithelp.ithome.com.tw/upload/images/20240928/201683716s9h60BT70.png

保存文件並退出編輯器(例如在nano中,按Ctrl + X
https://ithelp.ithome.com.tw/upload/images/20240928/20168371mXYzYF9qOQ.png
然後按Y確認保存再按Enter:
https://ithelp.ithome.com.tw/upload/images/20240928/20168371BZj4B9lk64.png
讓新的環境變數生效,可以執行以下指令:
https://ithelp.ithome.com.tw/upload/images/20240928/20168371CPw3jLYiol.png
以上這些步驟可以在MacOS系統中設置Python的環境變數。

第2題結束。
————————————我是可愛的題目分隔線————————————

題目3:在Python裡,什麼是更改全域變數的內容

在Python裡,更改全域變數的內容意思是,修改一個函數外部定義的變數。
全域變數是在整個程式碼中的任何一個地方,都可以使用的變數。
如果我想要在函式內部改變全域變數的值的話,就需要使用global關鍵字,來告訴Python我要改變的變數,要變成全域變數。
舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240928/20168371HrpKjWtfwn.png
x因為加了global關鍵字,我又接著指定他等於20,所以當我最後呼叫change_golbal( )時,x就變成全域變數20的值了。
https://ithelp.ithome.com.tw/upload/images/20240928/201683719I3raaLaAq.png

第3題結束。
————————————我是可愛的題目分隔線————————————

題目4:在Python裡,要如何整理客戶資料

當我在Python中整理客戶的資料時,內容可能包含:客戶姓名、年齡及電子信箱。
就可以使用Python中一個叫pandas套件來整理這些資料:

Step 1:
安裝pandas
首先,我會先安裝一個虛擬環境,然後再把pandas安裝在虛擬環境中,這樣就不會造成其他檔案/專案不想要用pandas時,還要再另外刪掉。
https://ithelp.ithome.com.tw/upload/images/20240928/20168371aYrBzfw3aL.png
mkdir my_project:建立一個名叫my_prpject的資料夾
cd my_project:指定my_prpject的資料夾,因為我要在這個資料夾內安裝虛擬環境
python3 -m venv venv:安裝一個名叫venv的虛擬環境
source venv/bin/activate:啟動虛擬環境
https://ithelp.ithome.com.tw/upload/images/20240928/20168371bFzwma0Jrl.png
pip install pandas:在這個虛擬環境下安裝pandas
pip show pandas:檢查pandas有沒有正確安裝,有的話就會顯示下面這些訊息(主要會有version: 2.2.2的版本顯示):
https://ithelp.ithome.com.tw/upload/images/20240928/20168371sf84XdYilZ.png
接下來,每次使用專案時,記得先啟動虛擬環境,這樣安裝的所有套件都會只在這個專案中生效,不會影響其他專案。
如果我不再需要使用虛擬環境時,可以用以下指令來離開:

deactivate

Step 2:
準備資料:
假設這些客戶資料儲存在一個CSV檔案(檔案名稱叫:customers.csv)裡,
而且要保存到剛剛建立的 my_project 資料夾內:
https://ithelp.ithome.com.tw/upload/images/20240928/20168371EtHyA1CJB6.png
在裡面輸入以下資訊:
https://ithelp.ithome.com.tw/upload/images/20240928/20168371jaNIXWJYgJ.png
再創建一個名叫customers.py的檔,並在裡面輸入以下內容:
註:因為我最終是可以跑出我要的資訊,而且也找不到為什麼我會有紅字(有可能我是在嚴格模式下有什麼地方出錯,如有大神願意給我解惑的話,歡迎留言給我,萬分感謝!^ ^)
https://ithelp.ithome.com.tw/upload/images/20240928/20168371t25FB0Zjk0.png

如果要額外篩選年齡大於26的客戶資料,可以寫成這樣:


這樣就可以輕鬆讀取、查看、排序和篩選客戶資料了。
pandas 提供了許多強大的功能來處理和分析資料,非常適合用來整理各種數據。

第4題結束。
————————————我是可愛的題目分隔線—————————

———

題目5:用白話文說明Java 不支持多重繼承,Python 可否支持多重繼承

在Java中,類別無法直接繼承多個父類別,這是因為多重繼承會帶來一些複雜性和潛在問題,例如方法名稱衝突。
為了避免這些問題,Java採用了介面(interface)來提供多重繼承的效果。
通過時做多個介面,類別可以用有多個不同的行為,但實際上仍然只繼承一個父類別。

相反,Python是支持多重繼承的。這意味著一個類別可以繼承多個父類別,從而獲得多個父類別的方法和屬性。Python中的多重繼承是通過一種稱為方法解析順序(MRO,Method Resolution Order)的機制來管理的,這個機制確保了在繼承練中正確的查找和調用方法。

第5題結束。
————————————我是可愛的題目分隔線————————————

題目6:在Python裡刪除字串內的空格,使用replace( )

replace( )方法會把字串中的指定部分替換成我想要的內容。
我們可以用它來把所有的空格替換成空字串(也就是完全移除空格)。
舉個例子:
假設有一個字串是 "Hello World”,我想把這個字串中的空格移除,讓它變成"HelloWorld”:

最後得到的結果就是"HelloWorld",因為空格已經被移除了。

第6題結束。
————————————我是可愛的題目分隔線————————————

題目7:在Python裡刪除字串內的空格,使用split( )

舉跟上一題一樣的例子:

最後得到的結果也依樣是黏在一起的"HelloWorld”。

第7題結束。
————————————我是可愛的題目分隔線————————————

題目8:在Python裡陣列和串列的差異

在Python裡,陣列(Array)和串列(List)都是用來儲存一組數據的資料結構,但它們在某些方面有些不同。

舉個例子:

  1. 串列(List):
    定義:串列是Python內建的資料結構,可以儲存多種不同型別的數據(如整數、浮點數、字串等)。
    特性:
    可以儲存不同型別的數據
    支援動態調整大小,即可以隨時添加或刪除元素
    常用的操作包括增加、刪除、查詢元素等

  2. 陣列(Array)
    定義:在Python中,array通常是指array模組中的陣列,它們是一種能夠儲存相同型別數據的資料結構,主要用於需要高效數值計算的情況。
    特性:
    只能儲存相同型別的數據(通常是數字)
    尺寸固定,意思是指在創建後不容易更改
    提供了比串列更高效的數值操作

如果我要加7.5這個數字進去,就會顯示TypeError,因為array陣列裡的[ ]不能儲存不同類型的數據,而且只能是整數的數字。


[ ]內的數據如果統一類型,且都是整數的數字的話:

就會對了:

總結:
串列(List):
像是一個裝滿各種不同東西的盒子,裡面可以有不同種類的東西,且你可以隨時增加或減少這些東西。
陣列(Array):
像是一個只能裝同樣東西的專門盒子,通常這些東西都是數字,並且這個盒子的大小一旦設定就不容易改變。

第8題結束。
————————————我是可愛的題目分隔線————————————

題目9:在Python裡將串列打包,然後列印結果

在Python中,將串列打包的過程通常指的是把串列中的元素進行打包,並以特定的方式進行處理,比如將其傳遞到函數中或者以元組的形式顯示。

舉個例子:

  1. 用tuple( )打包:

  2. 用*運算符打包:

第9題結束。
————————————我是可愛的題目分隔線————————————

題目10:在Python裡,什麼是pickling 和unpickling

在 Python 中,pickling 和 unpickling 是用來儲存和讀取 Python 物件的技術。
想像一下現在有一個玩具組,裡面有很多小玩具和配件。
如果我們想把這些玩具組合起來,並且好好的收藏它們,我們可以把它們放進一個玩具盒裡。
這樣,當我們把他們拿出來玩時,只要打開箱子就可以了。

  1. Pickling
    Pickling 就像是把你的玩具組放進箱子裡的這個動作。
    用 pickle 模組進行 pickling 時,我們是把 Python 物件(像是列表、字典、物件等)轉換成一種可以儲存或傳輸的格式。
    這個過程會把物件轉換成一個二進制格式,這樣它們可以被存儲到檔案中或通過網絡傳輸。

    ** with open('doll.pkl', 'wb') as file: 這一行是在說:「我想打開一個名叫 dollpkl 的檔案,並且準備往裡面寫東西。」
    這裡的 wb 表示我們要以「二進制寫入模式」(write binary)打開這個檔案。
    ** pickle.dump(doll, file) 這一行是在說:「請把這個洋娃娃(doll)的東西裝箱(pickling),然後把這個裝好的箱子寫入到 doll.pkl 檔案中。」
    ** with 語法的好處是它自動處理了檔案的打開和關閉。
    當這段程式碼執行完後,檔案會自動關閉,所以不需要擔心忘記關閉檔案。

  1. Unpickling
    Unpickling 就像是從箱子裡取出來的玩具組。

    在Python中,rb是用來打開檔案的模式,表示以「二進制讀取模式」(read binary)打開檔案,並從該檔案裡拿東西出來。
    這個模式主要用於處理非文本文件,如圖片、音頻、視頻檔案,或者像pickled檔案(例如.pkl檔)這樣的二進制數據。

    在這個例子中,data.pkl 檔案中的 pickled 物件被 unpickled,恢復成原來的字典形式,並存儲在 loaded_data 變數中。

簡單來說,
pickling 是把 Python 物件轉換成可以儲存的格式,而 unpickling 是把這些儲存的格式再轉換回原來的 Python 物件。
rb:打開檔案,從裡面拿東西出來
wb:打開檔案,從外面放東西進去

第10題結束。
---距離集滿300題還剩260題---


上一篇
第十三天刷題
系列文
Python 新手入門:挑戰30天刷完300題14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言