Python 基礎

閱讀時間約 11 分鐘

hello world

print('hello world')

Variable (變數)

a = 123 
type(a)
a = '456' 
type(a)
a = 3.13
type(a)

輸入 input()

a = input()
print('your name',a)

四則運算

a = int(input('數值1='))
b = int(input('數值2='))
print((10+(a*b)-1)/2)

列表 list (陣列)

list_num = [1, 2, 3]
list_length = len(list_num)	
num_sum = sum(list_num)
a = list_num[0]
print(list_length)
print(num_sum)
print(a)

集合

s = set()
s.add(1) # { 1 }
s.add(2) # { 1, 2 }
s.add(3) # { 1, 2 , 3 }
len(s) # 3
1 in s # True
print(s)

字典(Dictionary)

dict1 = {} # 建議寫法
dirct2 = dict()
grades = { 'a': 10, 'b': 20 }
grades['a']

給值

grades['c'] = 100
len(grades) # 3

try 檢驗

try:
	grade = grades['abc']
except KeyError:
	print('no grade for abc')
grades.get('abc', 40) # 若無則使用 default 值

取所有值

grades = { 'a': 10, 'b': 20 }
grades.keys() # 所有鍵值組成的 list
grades.values() # 所有值組成的 list
grades.items() # 所有鍵值組成的 tuple of list [('a', 10)]

判斷式 If else

score = int(input("score: "))
if score >= 90:
    print('Grade is: A')
elif score >= 80:
    print('Grade is: B')
elif score >= 70:
    print('Grade is: C')
elif score >= 60:
    print('Grade is: D')
else:
    print('Grade is: F')

迴圈

#for [變數名稱] in range(n): (縮排) print([變數名稱])
#for [變數名稱] in range(範圍, 比如從數字X到Y):    
#(縮排) 做一件事    
#(縮排) 做一件事
for x in range(10): # 0...9 不含 10
	if x == 3:
		continue
	if x == 5:
		break
	print(x)
cmp = ['google', 'facebook', 'youtube', 'yahoo']
for i in range(len(cmp)):
    print(cmp[i])
cmp = ['google', 'facebook', 'youtube', 'yahoo']
for i,cmps in enumerate(cmp):
    print(i, '-->', cmps)
names = ['lily', 'jojo', 'jojo', 'lily', 'lily', 'pk']
d = {}
#檢查 list 內有多少重複的字串
for n in names:
    if not n in d:
        d[n] = 0
        print('x=' , d) #初始賦予 {keys:0}
    d[n] += 1 
    print('y=' , d)
    
print(d)
x = 0
while x < 10:
	print('x is less than 10')
	x += 1

Switch //字典方式

#關鍵字 (keyword) lambda 是種將運算式 (expression) 重複運用的方式,類似函數 (function) 
#卻又不像函數需要額外命名函數的識別字 (identifier) ,因此又被稱為無名函數、匿名函數
#基本上 lambda 運算式就是函數的簡化,因此某些需要函數的場合可以用 lambda 運算式代替
a = lambda x: x ** 5 + 2
print(a)
print(a(2))
print(a(12))

def b():
    return lambda x: x + 2
c = b()
print(c)
print(c(18))

def sum(a, b, c = 0):
    print(a,b,c)
    return a + b + c
print(sum(10, 20, 30))   # 顯示 60
print(sum(10, 20))       # 顯示 30

x  = 10
{
  1: lambda y : y + 1,
  2: lambda y : y * 5
}[2](x)
score = int(input('請輸入分數:'))
level = score // 10
{
    10 : lambda: print('Perfect'),
    9  : lambda: print('A'),
    8  : lambda: print('B'),
    7  : lambda: print('C'),
    6  : lambda: print('D')
}.get(level, lambda: print('E'))()

CSV控制

寫入

import csv #引用 引入 csv 內建函示庫
# 開啟輸出的 CSV 檔案
with open('output.csv', 'w') as csvfile:
  # 建立 CSV 檔寫入器
  writer = csv.writer(csvfile)
  # 寫入一列資料
  writer.writerow(['姓名', '身高', '體重'])
  # 寫入另外幾列資料
  writer.writerow(['Joker', 175, 60])
  writer.writerow(['Hello', 165, 57])
讀寫模式的型別有: rU 或 Ua 以讀方式開啟, 同時提供通用換行符支援 (PEP 278) w 以寫方式開啟, a 以追加模式開啟 (從 EOF 開始, 必要時建立新檔案) r 以讀寫模式開啟 w 以讀寫模式開啟 a 以讀寫模式開啟 rb 以二進位制讀模式開啟 wb 以二進位制寫模式開啟 ab 以二進位制追加模式開啟 rb 以二進位制讀寫模式開啟 wb 以二進位制讀寫模式開啟 ab 以二進位制讀寫模式開啟

讀取

import csv
# 開啟 CSV 檔案
with open('output.csv') as csvfile:
  # 讀取 CSV 檔案內容
  rows = csv.reader(csvfile)
  # 以迴圈輸出每一列
  for row in rows:
    print(row)

import csv
with open('output.csv') as csvfile:
  # 讀取 CSV 檔內容,將每一列轉成一個 dictionary
  rows = csv.DictReader(csvfile)
  # 以迴圈輸出指定欄位
  for row in rows:
    print(row['姓名'], row['身高'], row['體重'])

pandas教學

詳細原碼: https://reurl.cc/qdOlEg

pandas x Apache Web Server

Windows下安裝
Apache + Python
01. 下載
02. 安裝
03. 設定 Apache 的設定檔httpd.conf
*********
首先
Ctrl+F 尋找
Options Indexes FollowSymLinks
在後面加上 ExecCGI
Options Indexes FollowSymLinks ExecCGI
Ctrl+F 尋找
AddHandler cgi-script .cgi
加上.py
AddHandler cgi-script .cgi .py
若發現有 # 的符號,代表不啟用
要把 # 給移除
Ctrl+F 尋找
DirectoryIndex index.php index.php3 index.html index.htm
增加 index.cgi index.py
修改完成後 存檔
最後
重新啟動 Apache
*********
04. pip 安裝套件
pip freeze
python -m pip install --upgrade pip
pip install matplotlib
pip install pandas
05. 執行範例
範例原碼: https://reurl.cc/Aq7dO3

request | 網路爬蟲

為什麼會看到廣告
avatar-img
40會員
130內容數
獨立遊戲開發紀錄
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
吳佳鑫的沙龍 的其他內容
取得掌紋 圖片比對 後續思維... 透過特徵比對+CNN,以YOLO 或 TensorFlow+Keras進行會比較正確。 單靠OpneCV至此是極限,要判斷出各條線,沒模型,則要以numpy陣列加上相似度(哈希算法等)去做,整體上不好進行... 待續...
原碼:https://reurl.cc/bGkxKr 資料庫連線 資料庫的連線建立完成後,要進行相關的操作,需要建立Cursor(指標)物件來執行,這邊使用Python的with陳述式,當資料庫存取完成後,自動釋放連線。 INSERT SELECT Select 取得單筆資料 fetchone()
OpenCV 讀取圖片 原碼:https://reurl.cc/3354ZL 成果: OpenCV 本身有提供讀取圖檔的函數可用,讀取圖檔,只要呼叫 cv2.imread 即可將圖片讀取進來,以 cv2.imread 讀進來的資料,會儲存成一個 NumPy 的陣列。 將圖片讀取進來之後,可使用 c
「娜斯佳,可以知道虎嘯山誌的紙本資料放在哪嗎?」我想著若可以知道原始的紙本資料放在哪,那或許就可以知道更完整的資訊了。 「妳可以試著去圖書館找找吧!」娜斯佳背對著我說。 「只是妳可能只會看到一般給市民看的資料,這種有內幕的資訊…」 「可能要到市府內的檔案管理局才有辦法看到。」娜斯佳頓了一頓說。
「學姊~」當我下課,正要上車時,一道聲音從我後方而來。 「好久不見了。」我笑著看向前方奔跑過來的彤羽。 「我就知道學姊會來上課。」彤羽來到我跟前說道。 「我以為,妳會直接去子璇家。」 「本來是想這樣,可是想想我還是先回我住的那,整理好,再來這跟妳一起過去。」 「所以妳自己一個人回來?」 「彤羽?」
「妳們已經見過他了?」當我進房,將背包放置矮櫃沙發下時,開口問道。 「見過了,人應該還可以,就腦子不怎麼精靈。」子璇靠在沙發上無奈的說著。 「要我說,是呆呆的。」蕾雅補充的說道。 「怎了?」 「太年輕,雖然對答上沒什麼問題,但暗示他去當間諜監視劉莊主,暗示了老半天,一直聽不懂。」蕾雅回著我的話。
取得掌紋 圖片比對 後續思維... 透過特徵比對+CNN,以YOLO 或 TensorFlow+Keras進行會比較正確。 單靠OpneCV至此是極限,要判斷出各條線,沒模型,則要以numpy陣列加上相似度(哈希算法等)去做,整體上不好進行... 待續...
原碼:https://reurl.cc/bGkxKr 資料庫連線 資料庫的連線建立完成後,要進行相關的操作,需要建立Cursor(指標)物件來執行,這邊使用Python的with陳述式,當資料庫存取完成後,自動釋放連線。 INSERT SELECT Select 取得單筆資料 fetchone()
OpenCV 讀取圖片 原碼:https://reurl.cc/3354ZL 成果: OpenCV 本身有提供讀取圖檔的函數可用,讀取圖檔,只要呼叫 cv2.imread 即可將圖片讀取進來,以 cv2.imread 讀進來的資料,會儲存成一個 NumPy 的陣列。 將圖片讀取進來之後,可使用 c
「娜斯佳,可以知道虎嘯山誌的紙本資料放在哪嗎?」我想著若可以知道原始的紙本資料放在哪,那或許就可以知道更完整的資訊了。 「妳可以試著去圖書館找找吧!」娜斯佳背對著我說。 「只是妳可能只會看到一般給市民看的資料,這種有內幕的資訊…」 「可能要到市府內的檔案管理局才有辦法看到。」娜斯佳頓了一頓說。
「學姊~」當我下課,正要上車時,一道聲音從我後方而來。 「好久不見了。」我笑著看向前方奔跑過來的彤羽。 「我就知道學姊會來上課。」彤羽來到我跟前說道。 「我以為,妳會直接去子璇家。」 「本來是想這樣,可是想想我還是先回我住的那,整理好,再來這跟妳一起過去。」 「所以妳自己一個人回來?」 「彤羽?」
「妳們已經見過他了?」當我進房,將背包放置矮櫃沙發下時,開口問道。 「見過了,人應該還可以,就腦子不怎麼精靈。」子璇靠在沙發上無奈的說著。 「要我說,是呆呆的。」蕾雅補充的說道。 「怎了?」 「太年輕,雖然對答上沒什麼問題,但暗示他去當間諜監視劉莊主,暗示了老半天,一直聽不懂。」蕾雅回著我的話。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
NumPy(Numeric Python)是Python中用於科學計算的核心庫之一。它提供了高性能的多維陣列對象(即ndarray)以及用於處理這些陣列的各種函數和工具。 在NumPy中,有幾個常用的指令可以用來創建陣列
Thumbnail
讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢? 可以使用fallback 參數來指定預設值。 這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。 讓我們來假設一個案例做說明: 先故意將先前範例的port的資料刪掉。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
讓我們從程式開始看起,我們輸入的鍵都是KeY,卻在寫入ini時,都轉換成小寫了。 因為預設情況下,configparser 會將配置文件中的鍵(Key)轉換成小寫形式。也就是說,即使配置文件中鍵的寫法是大寫或混合大小寫,讀取時都會轉換成小寫。 如以下的程式範例 其中的鍵值為KeY1 KeY2
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
NumPy(Numeric Python)是Python中用於科學計算的核心庫之一。它提供了高性能的多維陣列對象(即ndarray)以及用於處理這些陣列的各種函數和工具。 在NumPy中,有幾個常用的指令可以用來創建陣列
Thumbnail
讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢? 可以使用fallback 參數來指定預設值。 這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。 讓我們來假設一個案例做說明: 先故意將先前範例的port的資料刪掉。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
讓我們從程式開始看起,我們輸入的鍵都是KeY,卻在寫入ini時,都轉換成小寫了。 因為預設情況下,configparser 會將配置文件中的鍵(Key)轉換成小寫形式。也就是說,即使配置文件中鍵的寫法是大寫或混合大小寫,讀取時都會轉換成小寫。 如以下的程式範例 其中的鍵值為KeY1 KeY2
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們