我的 python 筆記與練習範例

linux python pycharm

這篇是流浪貓自學 Python 的筆記,內容將不依篇章或難度排序,只會列出重點和提示。



PyCharm 選取程式碼轉換、反轉註解

ctrl + / 

 

 

於引號前加上 f,內部以 {} 引用變數或運算數值。

print(f"我是字串,這樣{變數}引用")

 

 

用 [ ] 符號取出字串或 list 位數

由於 Python 位數計算是從零開始,若輸入數值為三,對 Python 來說會是『0, 1, 2, 3』共四位。

例: 輸入文字:流浪貓的電腦筆記本 取出位數:3

對人類來說,第三位文字是『貓』,但對 Python 來說卻是『的』,因此輸出 (Print) 時記得減一。

rand = str(input("輸入文字:"))  
tact = int(input("取出位數:"))  
print(rand[tact-1])

 

 

轉換資料型態 (str 與 int)

紀錄資料或進行數學運算時,必須要注意它的型態 (Type)。例如於 input 前加上 str() 或 int() 強制它使用文字或整數型態,而數字加底線分段不會影響運算。

te_1 = str(input("輸入文字:"))    
te_2 = int(input("輸入數值:"))    
  
print(f"{te_1} 是 {type(te_1)}、而 {te_2} 是 {type(te_2)}")

print("超爽的撿到" + str(1_000_000))

 

 

符號 = 與 == 和 != 的差異

等號為指定變數的符號,例如讓 A 等於 369 或讓 B 等於輸入的文字。而雙等號為邏輯判斷符號,例如『若 B 相同為 3 則執行程式』。驚嘆號與等號則是用來表示『若不相等』的狀態。翠祈

== 完全相同
!= 不等於
B = int(input("輸入數字:"))  
  
if B != 3:  
    print(f"{B} 不是 3")  
else:  
    print(f"{B} 是 3")

 

 

數學符號

用雙星號來進行次方運算;用 // 和 % 與 divmod 取餘數。

num_2 = 3  
num_2 **= 4  
print(num_2)  
print(3 ** 4)

 

 

自我介紹產生器

用引號 " 來表示內容為文字;用 + 號來連接前後變數。

name_1 = input("請輸入姓名:")  
age_1 = input("請輸入年齡:")  
hobby_1 = input("請輸入興趣:")  
intro_1 = "大家好,我是" + name_1 + ",今年" + age_1 + "歲,最喜歡" + hobby_1 + ",很高興認識大家。"  

print(intro_1)

 

 

報名與人數限制

用 count 來計數,以 if 來判斷何時終止計算。由於 Python 是從零開始,因此記得要加上 1 以符合人類計數習慣。

用 Python 來計算位數時,謹記『取出減一、顯示加一』原則。人類輸入數值讓 Python 取出位數時要減一;要讓 Python 顯示它所選擇的數值時,記得加一。

inp_num = int(input("總人數?:"))  
liml = int(input("人數限制?"))  
print(f"報名人數有 {inp_num} 人")  
count = 0  
for i in range(inp_num):  
    if count == liml:  
        print("爆棚,不計啦!")  
        count = 0  
        exit()  
    else:  
        print(f"我是{i+1}號")  
        count += 1  
  
exit()

 

 

BMI 計算機

用 round 將結果四捨五入。

height = float(input("幾公分高啦你?\n"))  
weight = float(input("幾公斤重啦你?\n"))  
height /= 100  
BMI = weight / height ** 2  
BMI = round(BMI, 1)  
  
if BMI < 18.5:  
    print(f"你的 BMI 值是 {BMI},過輕!")  
elif BMI < 24:  
    print(f"你的 BMI 值是 {BMI},正常!")  
elif BMI < 27:  
    print(f"你的 BMI 值是 {BMI},過重!")  
elif BMI < 30:  
    print(f"你的 BMI 值是 {BMI},太重!")  
elif BMI < 35:  
    print(f"你的 BMI 值是 {BMI},超重!")  
else:  
    print(f"你的 BMI 值是 {BMI},肥豬!")
    

 

 

隨機抽獎

輸入最大、最小值與數量後,以每五位為一列輸出隨選結果

import random  
  
ma = int(input("最大數值:"))  
mi = int(input("最小數值:"))  
rg = int(input("數量:"))  
  
count = 1  
for i in range(rg):  
    ra = random.randint(mi, ma)  
    if count == 5:  
        print(ra, end=", \n")  
        count = 1  
    else:  
        print(ra, end=", ")  
        count += 1  
exit(":D")

 

 

換行與不換行

於 print 加入 end=', ' 讓輸出結果緊鄰 (join) 上一位,加入 \n 強制換行。

for i in range(0, 5):  
    print(i)  
  
for i in range(0, 5):  
    print(i, end=', ')
    

0
1
2
3
4
0, 1, 2, 3, 4, 

 

 

列表加入列表

使用 append() 函數來加入列表,實際運用可參考下一則範例。

a = ["suv", "banana", "kkknd"]
b = ["omg", "tank", "vivaldi"]
a.append(b)

 

 

參賽者輸入器與選擇隊長

自訂參戰人數與輸入姓名,最後讓電腦選擇其中一位當隊長,注意 list 溢位問題。

# 自訂參戰人數,輸入姓名之後,讓電腦選擇隊長。  
import random  
  
lit = []  
inp_num = int(input("參加人數?"))  
  
for i in range(0, inp_num):  
    to_list = str(input(f"參賽者 {i+1} 號:"))  
    lit.append(to_list)  
  
print(f"\n有 {len(lit)} 人要參加比賽。\n")  
  
# 列出所有參賽者,三人自動換行。  
  
count = 0  
for i in range(len(lit)):  
    if count == 2:  
        print(lit[i], end=',\n')  
        count = 0  
    else:  
        print(lit[i], end=", ")  
        count += 1  
  
# 電腦選的燉花生!為避免 lit[ai_ch] 資料溢位,函數請減 1,因為 Python 是從 0 開始  
# [a, b, c,] 項目為 0, 1, 2, 計量 count = 3
# 例:參加人數=1 ,產生的列表內容只有一個成員,因此列表的起始項目為 0 list[0] 計量為 1
# random.randint(1, len(lit)) 就會變成 (1, 1),僅在 1 與 1 之間選出 1。  
# 要選出隊長則減 1,讓「計量」轉為「項目」選擇。  
  
ai_ch = random.randint(1, len(lit))  
print(f"\n \n電腦選擇了 {ai_ch} 號參賽者「{lit[ai_ch-1]}」為隊長!")

 

 

打東東計算機

inp_num = int(input("要打幾次?"))  
for i in range(inp_num):  
    print(f"東東被打了 {i+1} 次")

 

 

九九乘法

for i in range(1, 10):  
for j in range(1, 10):  
if j == 9:  
print("\t", i*j) # 當j等於9的時候換行
else:  
print("\t", i*j, end = '') # j小於9不換  
i = 5  
for j in range(1, 5):  
    print(i*j)

5
10
15
20

 

 

抉擇困難:將輸入函數插入字典

import random  
  
dic = [input("選擇一:"), input("選擇二:"), input("選擇三:")]  
ai_ch = random.randint(0, 2)  
  
print(f"電腦醬選擇了{ai_ch+1}")  
print(dic[ai_ch])

 

 

無限的輸入框,按 q 結束程式

設定變數 choice 與輸入框,當輸入內容非 q ( != ) 的時候,執行以下內容: choice 等於 1 ,執行你輸入一幹嘛?,以此類推。當輸入內容非 q 和 1、2、3 時,顯示人生毫無意義,並在 else 加上 choice 輸入框,避免不斷顯示。當 while 輸入內容為 q 的時,執行你選擇 q 放棄人生

choice = input("衝殺毀? (輸入 q 啟動自爆程式):")  
  
while choice != 'q':  
    if choice == '1':  
        print("你輸入一幹嘛?")  
    elif choice == '2':  
        print("選擇二有差嗎?")  
    elif choice == '3':  
        print("撞牆吧你!")  
    else:  
        print("人生毫無意義")  
    choice = input("再給你一次機會 (輸入 q 啟動自爆程式):")  
  
print("你選擇 q 放棄人生")

 

 

Python 除法、取整數、顯示資料類型、平方、取餘數

print(5 / 3)  

# 取出餘數
print(5 % 3)

print(type(4/2))  
<class 'float'>

print(type(4//2))
<class 'int'>

# 乘法與次方
print(4*3)  
12

print(4**3)
64

 

n = int(input("輸入數字:"))  
lst = list()  
for i in range(1, n+1):  
    lst = lst + [i**2]  
print(lst)


輸入數字:10
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

 

 

 

延伸閱讀

用 Python 讀取和整理 xml 檔內特定資料

用 ImageJ 自動化腳本,將圈選的地物目標批次儲存成樣本圖片 (ROI)

用 JavaScript 修改 Blogger 網站上的 IPFS 圖片閘道器位置 (Gateway)

 

 

留言

這個網誌中的熱門文章

寶鐘瑪琳中之人前世照片、年齡分析