Python程式設計
程式環境:
Python IDLE(請至Python官方下載)
repl: https://repl.it
線上解題環境Online Judge:
各種線上Online Judge
更多學習資源:
怕英文的-Google大神:搜尋Python+你想要的東西
作筆記推薦平台:HackMD
Python IDLE 環境設定
上方工具列->Option -> Configure IDLE
字體大小請調整成16以上
字形請選等寬字體 (Consolas, Courier, Source Code Pro, Monospace…)
縮排大小維持4格
顏色請調成深色模式(highlight -> "IDLE Classic"改成"IDLE Dark")
基本輸入輸出與計算
電腦(Computer)就是高級的計算機Program就是給電腦看的劇本筆記區
#我是註解
a = 2 #設定變數
s = input("提示訊息") #輸入並存在變數
b = int(s) #把字串轉成整數
answer = b**3/(3-2)+(a+5)%6 #計算
print("答案是", answer) #印出答案
type(a) #查看a的型態
其他連結:
各種運算如何打?
算術運算
比較判斷
布林運算
判斷與條件句
你以為是判斷還是談條件嗎?不,是威脅語氣if-elif-else
if a > 0:
print("我是正的")
elif a == 0:
print("我是零")
else:
print("我是負的")
布林運算
if a > 0 and b > 0: #兩個都是正的
print("兩個都是正的")
elif a > 0 or b > 0: #a是正的或b是正的
print("一個是正的一個不是")
else: #兩個都不是正的
print("兩個都不是正的")
判斷再判斷
if a > 0: #a是正的
if b > 0:
print("兩個都是正的")
else:
print("a是正的b不是")
else: #a不是正的
if b > 0:
print("b是正的a不是")
else:
print("兩個都不是正")
其他連結:
迴圈
電腦之可貴在於可以一直跑一直跑一直跑一直跑....whlie 迴圈
#依序從1印到N
i = 1 #起始狀態
while i <= N: #迴圈條件
... #要一直跑的內容
print(i)
i = i + 1 #調整i
for 迴圈
#依序從1印到N
for i in range(1,N+1): #range包頭不包尾
... #要一直跑的內容
print(i)
break & continue
小明 = Human()
while True: #無法超脫的輪迴
小明.live(); #生
if 小明.Nirvana(): #涅槃->跳脫輪迴
break
if 小明.suicide(): #自殺->直接投胎
小明.next_life()
continue
小明.get_old() #老
小明.die() #死
小明.next_life() #投胎
其他連結:
串列 (list)
電腦可以一直跑一直跑一直跑一直跑....那也要有地方可以一直放一直放一直放基本操作(宣告、取、放)
a = [100, 20, 3, 0.4, 'five'] #list用方括弧包
a[1] #20 (index從0開始算)
a[1:5:2] #[20, 0.4] (begin:end:step)
a[-1] #'five' (最後一格)
len(a) #5
a.append(-6) #把 -6 加到最後一格
a.pop() #把最後一格(-6)給去掉
print(a) #[100, 20, 3, 0.4, 'five']
更多使用方法:
https://medium.com/ccclub/ccclub-python-for-beginners-tutorial-c15425c12009
當迴圈遇上串列
a = [] #a初始化為空串列
for i in range(100):
a.append(i) #a = [1,2,3...,100]
for i in range(len(a)):
a[i] = a[i]*2
for i in a:
print(a)
串列進階操作
'''偷懶大法:一行讀入一串數字'''
L = list(map(int, input().split())) #輸入多個數字,以空格分開
if x in L: #判斷x是否在L裡面
print("x is in a)
L.index(x) #查看x在L的哪個位置
L.sort() #從小排到大
len(L) #計算L裡面有幾個元素
min(L) #找最小
max(L) #找最大
sum(L) #計算加總
字串 (str)
一個字叫做字元,一串字叫做串 (雖然在python都叫做str 好討厭)基本操作(宣告與運算、取)
s1 = 'apple' #用單引號包起來就是字串
s2 = "pen" #用雙引號包起來也是字串
s1 + s2 #'applepen'
s2 * 3 #'penpenpen'
s1 += 'pie' #把 's1' 變成 'applepie'
s1[0] #'a'
s1[1:5:2] #'ap' (begin:end:step)
s1[-1] #'e' (最後一格)
len(s2) #3
int('234') #234 (轉換為數字)
str(234) #'234'(轉換為字串)
ord('A') #65 (轉換為ascii code)
chr(65) #'A' (從ascii code轉換為文字)
更多使用方法:
通常輸入輸出的技巧總是離不開字串處理,下方連結有提及部分字串的函數。https://hackmd.io/@s10109670/Sko5kJSY_
函式 (function)
你不會煮滷肉飯嗎?叫妳阿嬤來啊Python內建函式
'''輸入輸出'''
s = input('提示訊息')
print('s =', s)
'''型態轉換'''
i = int(s) #轉成整數
s = str(i) #轉成字串
f = float(s) #轉成浮點數
m = map(int , input().split()) #一次轉換很多數字
L = list(m) #轉成串列
'''串列操作'''
a = [1,-2,3,40.15,6]
len(a) #取長度
sum(a) #加總
max(a) #最大值
sorted(a) #排序
更多函式請查看python document::
https://docs.python.org/3/library/functions.html
數學界的阿嬤 -math
import math
math.pi # 3.14159265358
'''基本數學運算'''
math.abs(x) # 絕對值
math.ceil(x) # 無條件進位
math.floor(x) # 無條件捨去
math.gcd(a, b) # 最大公因數
'''指數對數'''
math.pow(5, 3) # 5**3
math.log(2, 8) # 3(對數)
'''三角函數'''
math.sin(math.pi/6) # 0.5
math.cos(math.pi) # 1
math.tan(math.pi/4) # 1
asin(x) #反三角函數
'''排列組合'''
math.factorial(5) # 120(階乘)
math.comb(8, 3) # 56(組合數)
更多函式請查看python document:
模組 (module)
Python內建模組
import math #數學計算模組
import statistic #統計模組
import random #隨機相關
import fraction #內建分數處理
import sys #系統參數設定
import os #檔案名稱與路徑
import shutil #複製貼上
import csv #csv(逗點分隔檔)處理
import time #時間管理大師
import datetime #日期跟時間都會管理
import tkinter #視窗介面
import turtle #愛畫畫的小烏龜
請善用Google 查詢