註冊 登錄
Android 台灣中文網 返回首頁

jianrupan的個人空間 https://apk.tw/?1180935 [收藏] [複製] [分享] [RSS]

日誌

Python 程式語言學習(一)

已有 236 次閱讀2021-8-5 09:48 |個人分類:軟體應用| Python, 程式, 語言學習

基礎常識學習

a.    環境準備以及基本認知:https://yungyuc.github.io/oldtech/python/python_intro.html#id2

(1)     Python 程式語言為 直譯式並且物件導向的程式語言。

(2)     安裝 Python 執行環境:

Linux:一般使用 預裝的 Python 即可。

Windows: 下載 Windows 版的安裝程式 (目前為 3.9.5 版本)https://www.python.org/

b.    線上課程: https://training.pada-x.com/online.htm

學習重點:

(1)    基礎學習(以下可直接於 PC 端執行)

變數與資料型態、數字與字串運算、有序列表、集合、字典、流程控制、函式、模組、

可疊代資料型態(Iterable Data Types)(可以分開, 逐一取出內部資料):序列、集合、字典

 

# #為註解: 紀錄說明

# 第一支 PY 程式, 副檔名為 .py

# 執行程式 python

# 資料語法

# 數字

123

3.5

# 字串

"測試中文"

"Hello Word"

# 布林值

True

False

# 有順序 可動列表 List

[3, 4, 5]

["Hello", "Word"]

# 有順序 不可動列表 Tuple

(3, 4, 5)

("Hello", "Word")

# 集合 Set

{3, 4, 5}

{"Hello", "Word"}

# 字典 Dictionary

# :

{"Apple":"蘋果", "Data" : "資料"}

# 變數名稱 = 資料

a = 8

b = 5

 

# print(資料)

print("變數與資料型態:")

print("數字:", 3)

print("文字:", "Hello Word")

print("布林值:", True)

print("列表:", [3, 4, 5])

print("type(a):", type(a))

print("變數 a:", a)

print("變數 b:", b)

print()     # 空一行

 

# 數字與字串運算

print("數字與字串運算:")

# + - * /

a = 9

b = 4

print("a:", a, ", b:", b)

print("a+b              : ",a+b)

print("a-b              : ",a-b)

print("a*b              : ",a*b)

print("a/b              : ",a/b)

print("a%b(取餘數)      : ",a%b)

print("a//b(整數除法)   : ",a//b)

print("a**b(ab次方)   : ",a**b)

print("a**0.5(a的開根號): ",a**0.5)

s1="Hello"

s2="Word"

s3="Hello" "Word"

print("s1:", s1, ", s2:", s2)

print("字串串接 s1+s2:", s1+s2, ", s1空格s2:", s3)

print("字串換行 Hello+斜線n+Word:")

print("Hello Word")

print("字串換行 3個雙引號Hello+...+Word+3個雙引號, 直接換行:")

s4="""Hello

Word"""

print(s4)

s4="""Hello

 

 

 

Word"""

print(s4)

print("字串換行多次顯示 s1*3+s2*2:", s1*3+s2*2)

print("索引 s1[1]:", s1[1])

print("索引 s1[1:4]:", s1[1:4])

print("索引 s1[1:]:", s1[1:], ", s1[:4]:", s1[:4])

print("索引 s1[1:4]+s2[1:3]:", s1[1:4]+s2[1:3])

print()

 

# 基本輸入為字串型態

print("Key In 方式一, 直接輸入:")

c = input()

print("輸入: ", c, ", 資料型態: ", type(c))

if c.isdigit() :

    print("資料型態是 數字")

else :

    print("資料型態是 不是數字")

print("Key In 方式二, 顯示提示輸入:")

d = input("請輸入數字:")

print("你的輸入是:", d)

if d.isdigit() :

    print("type int")

else :

    print("type str")

 

# 列出輸入數字結果

if d.isdigit() :

    # 轉為整數型態

    e = int(d)

    print("轉置 int 型態: ", type(e))

    if e == 30 :

        print(e, "= 30")

    elif e > 30 :

        print(e, "> 30")

    else :

        print(e, "< 30")

print()

 

print("有序列表:")

# 可動有序列表 List

f = [1, 2, 3, 4, 5, 6, 7]

print("建立可動列表: ", f)

# 索引 第 2 筆 的資料

print("直接索引列表第 2 筆資料: ", f[2])

# 變更列表

f[0] = 55

print("變更第 0 筆資料後列表: ", f)

# 取列表特定筆數 1:4 不包含 第 4

g = f[1:4]

print(" 1~4 筆資料後列表(不包含 第 4 ): ", g)

# 刪除 特定筆數(連續刪除) 1:4 不包含 第 4

f[1:4] = []

print("刪除 1~4 筆資料後列表(不包含 第 4 ): ", f)

# 列表串接

f = f+[8, 9]

print("串接 2 筆資料 [8, 9]: ", f)

# 取列表長度

print("取列表長度: ", len(f))

# 巢状列表

f = [[1, 2, 3, 4, 5], [9, 8, 7]]

print("巢狀列表:", f, ", 組數:", len(f), ", 1組長度:", len(f[0]), ", 2組長度:", len(f[1]),

      ", 1組第2筆資料:", f[0][2], ", 1組第1~4筆資料:", f[0][1:4]

     )

f[0][1:4] = [0, 0, 0, 0]

print("變更[0][1~4]: ", f)

print()

 

# 不可變動有序列表 Tuple

g = (1, 2, 3, 4, 5, 6, 7)

print("建立不可動列表: ", g)

# 取列表特定筆數 1:4 不包含 第 4

print(" 1~4 筆資料後列表(不包含 第 4 ): ", g[1:4])

# 無法變更列表

# g[0] = 55 # 錯誤 Tuple 資料不可變更

print()

 

# 集合 Set

print("集合:")

s1 = {1, 2, 3, 4, 5}

print("建立集合1:", s1)

s2 = {2, 4, 6, 8}

print("建立集合2:", s2)

# 判斷集合元素 in, not in

print("判斷 3 是否在集合1:", 3 in s1, "10 是否不在集合1:", 10 not in s1)

# 集合運算

# 交集(取重疊部分)

print("交集   s1 & s2:", s1&s2, ", s2 & s1:", s2&s1)

# 聯集(取所有資料不重疊部分)

print("聯集   s1 | s2:", s1|s2, ", s2 | s1:", s2|s1)

# 差集(s1 中減去 s2 重疊部分)

print("差集   s1 - s2:", s1-s2, ", s2 - s1:", s2-s1)

# 反交集(取不重疊部分)

print("反交集 s1 ^ s2:", s1^s2, ", s2 ^ s1:", s2^s1)

# 建立字串集合(會過濾重複)

s3 = set("Hello Word")

print("建立字串集合(Hello Word):", s3, ", 長度:", len(s3), ", 查詢 W 是否在字串內:", "W" in s3)

print()

 

# 字典 Dictionary

print("字典:")

dic = {"Apple":"蘋果", "Data" : "資料"}

print("建立字典:", dic)

# Key-Value 配對

print("Key-Value 配對 Apple:", dic["Apple"], ", Data: ", dic["Data"])

# 修改

dic["Apple"] = "小蘋果"

print("修改字典:", dic)

# 判斷 Key 是否存在

print("判斷 Data Key 是否包含在字典:", "Data" in dic, ", Test : ", "Test" in dic)

# 移除 字典中的鍵值對(Key-Value pair)

del(dic["Apple"])

print("刪除 Apple 鍵值:", dic)

# 以列表資料當基礎產生字典

# dic = {x:x*2 for x in 列表}

dic = {x:x*2 for x in [1, 2, 3, 4, 5]}

print("以列表資料產生字典:", dic)

print()

 

print("流程控制:")

# 流程控制

# if 判斷式

# if 布林值一 :

#   (若布林值一為 True 執行命令)

# elif 布林值二 :

#   (若布林值二為 True 執行命令)

# else :

#   (其他)

# 判斷是否為數字

# 不支援 swith

# 迴圈

# while 布林值 :

n = 1

while n <= 3 :

    print("while    驗證            -> 目前 n (<5):", n)

    n += 1;

# for 變數 in 列表或字串 :

for x in [1, 2 , 3] :

    print("for      驗證列表        -> 目前 x :", x)

for c in "Hello Word" :

    print("for      驗證字串        -> 目前 c :", c)

# 使用 range()

# range(3) 相當於 [0, 1, 2] (不包含 3)(連續數字列表)

for x in range(3) :

    print("for+rang 驗證 rang(3)    -> 目前 x :", x)

# range(3, 6) 相當於 [3, 4, 5] (包含 3, 不包含 6)(連續數字列表)

for x in range(3, 6) :

    print("for+rang 驗證 rang(3, 6) -> 目前 x :", x)

# 99 乘法表

print("99 乘法表:for+rang 應用")

for i in range(1,10):

    for j in range(1,10):

        print(i*j, end=" ")

    print(end=" ")

print()

 

# 函式: 程式碼包裝在一個區塊中, 方便隨時呼叫與用

# 基本語法

# def 函式名稱(參數名稱):

#    函式內部的程式碼

# 定義函式

def sayMsg(msg="沒輸入資料喔!"): # 加入預設資料

    print(msg)

def addNum(n1, n2):

    print(n1, "+", n2)

    print(n1+n2)

def addNumRet(n1, n2):

    print(n1, "+", n2)

    return (n1+n2) # 任何資料, 沒有是 None, return 也是回傳 None

# 呼叫函式

print("呼叫函式 sayMsg() 使用預設資料:") # 預設資料

sayMsg()

print("呼叫函式 sayMsg("Hello Word"):")

sayMsg("Hello Word")

print("呼叫函式 addNum(5, 4):")

addNum(5, 4)

print("呼叫函式 addNum(n2=5, n1=4) 使用名稱對應:") # 名稱對應

addNum(n2=5, n1=4)

print("呼叫函式 addNumRet(6, 5):")

print(addNumRet(6, 5))

# 程式包裝: 同樣邏輯重複利用

def muxAdd(pStart, pStop):

    sum=0

    for n in range(pStart, pStop+1):

        sum += n

    return sum

print("程式包裝 連加處理 muxAdd(1, 10):")

print(muxAdd(1, 10))

# 預設資料

# 名稱對應

# 無限/不定 參數

# def 函式名稱(*無限參數)

#   無限參數以 Tuple 資料形態處理

print("無限/不定 參數:")

def AddData(*pData):

    for s in pData:

        print(s)

AddData("資料1", "資料23", "資料456", "資料7890", "資料abcde")

# 平均數計算

def avg(*pNum):

    print("平均計算:", pNum)

    total=0

    for num in pNum:

        total += num;

    print("平均值: ", total/len(pNum))

avg(1)

avg(1, 2)

avg(1, 2, 3)

print()

 

# 模組: 獨立程式檔案(載入 > 使用)

# 載入: import 模組名稱(檔案名稱無附檔名 .py)

# import 模組名稱

# import 模組名稱 as 模組別名

# 使用

# 模組名稱或別名.函式名稱(參數資料)

#   模組名稱或別名.變數名稱

# 內建模組

# sys 模組: 取得系統相關資訊

import sys

print("內建模組 作業系統:", sys.platform)

print("內建模組 整數型態最大值:", sys.maxsize)

print("-------------------------------")

print("內建模組 模組路徑:", sys.path)   # 列出模組搜尋順序

# 新增搜尋模組路徑

sys.path.append("modules")

print("-------------------------------")

print("內建模組 增加模組路徑 modules:", sys.path)

print("-------------------------------")

# 自定模組

import module_01 as tModule

print(tModule.mName)

tModule.MFunctionOne(1, 2, 3, 4, 5)

# 幾何運算功能模組

import geometry

print(geometry.sDistance)

print(geometry.Distance(0, 0, 4, 3))

print(geometry.sSlope)

print(geometry.Slope(0, 0, 4, 3))

print(geometry.Slope(0, 0, 4, 3))

 

#疊代資料

# 內建函式

# max

print("疊代資料 取最大值 內建函式 max: ", max([20,40,60,90,30,10]))

print("疊代資料 取最大值 內建函式 max: ", max("abczxy"))

print("疊代資料 取最大值 內建函式 max: ", max({5, 10, 15, 100, 50, 1}))

print("疊代資料 取最大值 內建函式 max: ", max({"x":5, "y":10}))

#sorted

print("疊代資料 排序 內建函式 sorted: ", sorted([2,4,6,9,3,1]))

print("疊代資料 排序 內建函式 sorted: ", sorted("abczxy"))

print("疊代資料 排序 內建函式 sorted: ", sorted({5, 10, 15, 100, 50, 1}))

print("疊代資料 排序 內建函式 sorted: ", sorted({"x":5, "y":10}))

#自定義

def Max(array):

    retVal = 0

    for x in array:

        if retVal<x:

            retVal = x

    return retVal

def Max2(*data):

    retVal = 0

    for x in data:

        if retVal<x:

            retVal = x

    return retVal

print("疊代資料 取最大值 自建函式 Max: ", Max([20,40,60,90,30,10]))

print("疊代資料 取最大值 自建函式 Max2: ", Max2(20,40,60,90,30,10))

 


路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄後才可以評論 登錄 | 註冊