Python 語言 講義  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C


數值函數


abs( x )
取絕對值
min( x, y, [z, ...] )
取最小值
max( x, y, [z, ...] ) 取最大值
bin( x )
傳回二進位的值, 前加0b
oct( x )
傳回八進位的值, 前加0o
hex( x )
傳回十六進位的值, 前加0x
int( x )
取整數值(無條件捨去)
round( x )
取整數值(無條件捨去)
pow( x, y )
傳回x的y次方
float( x )
字串的浮點數 轉成 浮點數
eval( x )
字串的數字 轉成 數值(常用input( ), 視資料內容成為整數或浮點數

a = -34.55
b = abs(a)
print(a,"的絕對值是",b)
c = min(b, a, 100)
print(b,", ", a , ", " , 100, " 三個數字, 最小的為 ", c)
d = max(b, a, 100)
print(b,", ", a , ", " , 100, " 三個數字, 最大的為 ", d)
e = 253
print(e,"的二進位是", bin(e))
print(e,"的八進位是", oct(e))
print(e,"的十六進位是", hex(e))
print(b,"取整數是", int(b))
print(a,"取整數是", int(a))
print(b,"取整數(四捨五入)是", round(b))
print(a,"取整數(四捨五入)是", round(a))
print(3,"的", 4, "次方是", pow(3,4))
f="12.345"
print("字串", f,"的eval函數是", eval(f))
print("字串", f,"的float函數是", float(f))
# print("字串", f,"的int函數是", int(f)) 是錯的, 不可以直接由字串轉成整數
print("字串", f,"取eval後, 再取int是", int(eval(f)))
#------------------------------------------------------
a = "-34.55"
b = "12"
c = eval(a)
d = eval(b)
print(c)
print(d)
print(type(c))
print(type(d))

數學函數

必需先 import math

math.e
自然數的底數e
math.pi
圓周率
math.ceil( x ) 取整數值(無條件進位)
math.floor( x )
取整數值(無條件捨去)
math.factorial( x )
x 階乘
math.exp( x )
自然數的底數e 的 x次方
math.log( x, y )
以y為底數, 對x取對數
math.sqrt( x )
取 x的開根號
math.gcd( x, y )
取 x與y的最大公因數

import math
a = math.e
print(a)
print(math.pi)
b = math.ceil(a)
c = round(a)
d = int(a)
e = math.floor(a)
print(a,"取整數(無條件進位)是", b)
print(a,"取整數(四捨五入)是", c)
print(a,"取整數是", d)
print(a,"取整數(無條件捨去)是", e)
print(7,"階乘是", math.factorial(7))
print("e的5次方是", math.exp(5))
print("e的5次方是", pow(math.e,5))
print("log1024(以2為底)是", math.log(1024,2))
print("log1000(以10為底)是", math.log(1000,10))
print("2開根號是", math.sqrt(2))
print("2開根號是", pow(2, 0.5))
print("24與36的最大公因數是", math.gcd(24,36))

三角函數

必需先 import math

math.radians( x )
將角度x 轉成 徑度
math.degree( x )
將徑度x 轉成 角度
math.sin( x )
math.cos( x )

math.tan( x )

math.asin( x )

math.acos( x, y )

math.atan( x, y )


import math
r = math.radians( 30 )
d = math.degrees(r )
print("角度30度的徑度是", r)
print("徑度", r , "的角度是", d, "度")
print("sin30度 = ", math.sin(r))
print("cos30度 = ", math.cos(r))
print("tan45度 = ", math.tan(math.radians( 45 )))


亂數函數

必需先 import random

random.randint( x, y )
產生介於x 到 y 之間的整數
random.random( ) 產生介於 [0, 1) 之間的浮點數
random.shuffle( x ) 打亂序列中的元素

import random
a = random.randint(1,6)
print(a)
b = random.random()
print(b)
c = [ 1,2,3,4,5,6]
random.shuffle(c)
print(c)

字串的函數與運算子

Python 3預設採用 UTF-8

ord( x )
輸入 字元x (UTF-8 編碼) , 輸出其數字(UTF-8 編碼)
chr( x ) 輸入 數字x (UTF-8 編碼) , 輸出其字元(UTF-8 編碼)
len( x ) 輸入 字串x, 輸出其字數
str( x ) 輸入 數字x, 輸出其 數字的字串

x = ord('A') # 注意, 只能填1個字
print(x)
print(chr(65))
y = ord('白')
print(y)
print(chr(30333))
z = "今天天氣很好"
w = "Algorithm"
print(len(z))
print(len(w))
a = 65
b = str(a)
print(b, "是", type(b),"型態")

字串運算子

+ 字串與字串 串接
<、<=、==、!=、>=、> 比較兩串字串的編碼大小
x in y、x not in y
x字串 是否存在在字串y中
x[a: b]
索引片斷 ( 索引值從0開始,  不包含b)

z = "今天天氣很好"
w = "Algorithm"
x = z + w
print(x)
print(z > w)
y = "go"
print(y in z)
print(y in w)
print(w[3: 5]) #索引值從0開始,  不包含位置5的字
print(w[3: ]) #索引值從3到最後
print(w[ : 5]) #索引值從0到5
print(w[-4: -1]) #也可以用倒數的

字串轉換方法

str.upper( x )
每一個英文字都轉大寫
str.lower( x )
每一個英文字都轉大寫
str.swapcase( x )
大寫與小寫互換
x.replace( old, new )
把字串x中, 所有old 取代為 new
str.title( x )
每一個英文單字的第1個字都轉大寫
str.capitalize( x )
只有第一個英文單字的第1個字轉大寫

a = "This is a book."
print(str.upper(a))
print(str.lower(a))
print(str.swapcase(a))
print(a.replace("book","car"))
b = str.lower(a)
print(b)
print(str.title(b))
print(str.capitalize(b))

搜尋子字串的方法

x.count( y ) 計算字串x中, 子字串y出現的次數
x.startswith( y ) 字串x中, 是否是以子字串y開頭
x.endswith( y ) 字串x中, 是否是以子字串y結尾
x.find( y )
字串x中, 子字串y的位置(由左開始找)
x.rfind( y ) 字串x中, 子字串y的位置(由右開始找)


x = "This is a book."
print(x.count("is"))
print(x.startswith("this"))
print(x.startswith("book."))
print(x.endswith("This"))
print(x.endswith("book."))
print(x.find("is"))
print(x.rfind("is"))

數值與子字的格式化

format(x, y)
用於整數
format(x, y) 用於浮點數
format(x, y) 用於字串


x=123.4567
print(format(x,"10.2f"))  # 總長度10格(含小數點與小數位2格)

Python 語言 講義  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C