Python程式設計

程式環境:

線上解題環境Online Judge:

各種線上Online Judge

更多學習資源:

作筆記推薦平台:HackMD 


Python IDLE 環境設定

上方工具列->Option -> Configure IDLE

基本輸入輸出與計算

電腦(Computer)就是高級的計算機Program就是給電腦看的劇本

筆記區

#我是註解

a = 2                         #設定變數

s = input("提示訊息")          #輸入並存在變數

b = int(s)                    #把字串轉成整數

answer = b**3/(3-2)+(a+5)%6   #計算

print("答案是", answer)        #印出答案

type(a)                       #查看a的型態

其他連結:

https://ithelp.ithome.com.tw/articles/10200505 

各種運算如何打?

算術運算

比較判斷

布林運算

判斷與條件句

你以為是判斷還是談條件嗎?不,是威脅語氣

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("兩個都不是正")

其他連結:

https://ithelp.ithome.com.tw/articles/10200505 

迴圈

電腦之可貴在於可以一直跑一直跑一直跑一直跑....

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()        #投胎

其他連結:

https://sites.google.com/site/ezpythoncolorcourse/whileloop 

串列 (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:

https://docs.python.org/3/library/math.html 

模組 (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 查詢