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
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
就如同標題一樣,input的作用就是從使用者那裡獲取輸入,直到使用者輸入一段文本並按下 ENTER 鍵。 然而用戶輸入的數據(文本)都將作為字串被返回,並存儲在變數中。 接著我們舉個例,比如說我們在一段數據中需要獲取使用者的名稱,範例如下: name = input("請輸入你的名字:") #
在處理數據時,最可能會遇到數據中含有None的時候,若沒有處理就進行運算就會造成程式崩潰或者報錯 數據中含有None input_list = [(42, 292), (28, 296), (999, 92), (993, 46), (219, 4), (279, 2), (None, None
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。 為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。 all 和 any 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
就如同標題一樣,input的作用就是從使用者那裡獲取輸入,直到使用者輸入一段文本並按下 ENTER 鍵。 然而用戶輸入的數據(文本)都將作為字串被返回,並存儲在變數中。 接著我們舉個例,比如說我們在一段數據中需要獲取使用者的名稱,範例如下: name = input("請輸入你的名字:") #
在處理數據時,最可能會遇到數據中含有None的時候,若沒有處理就進行運算就會造成程式崩潰或者報錯 數據中含有None input_list = [(42, 292), (28, 296), (999, 92), (993, 46), (219, 4), (279, 2), (None, None
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。 為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。 all 和 any 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術