print(abs(-5))
print(max(1,2))
print(max(1,2,3,4,5))
print(int('123'))
print(int(12.34))
print(float('12.34'))
print(str(1.23))
print(str(100))
print(bool(1))
print(bool(''))
a = abs #變數a指向abs函式,相當於給函式起了個別名
print(a(-1))
#自定義函式
defmy_abs
(x):
ifnot isinstance(x,(int,float)):
raise typeerror('bad operand type')
if x>=0:
return x
else:
return -x
print(my_abs(-10))
#from abstest import my_abs 引入其他.py檔案中定義的函式直接呼叫
#空函式,什麼也不幹
defnop
():pass
#pass 可以作為佔位符,現在不知道函式的實現,可以通過pass佔位,類似於 ;
#my_abs(1,2) typeerror 引數錯誤
#my_abs('acb')
import math
#座標 位移 速度
#返回多個引數,實際上返回的只是乙個tuple
defmove
(x,y,step,angle=0):
nx = x + step*math.cos(angle)
ny = y - step*math.sin(angle)
return nx,ny
x,y = move(100,100,60,math.pi / 6)
print(x,y)
r = move(100,100,60,math.pi / 6)
print(r)
#python的函式定義非常簡單,但靈活度卻非常大。
#除了正常定義的必選引數外,還可以使用預設引數、
#可變引數和關鍵字引數,使得函式定義出來的介面,
#不但能處理複雜的引數,還可以簡化呼叫者的**
#預設引數 預設引數在後(呼叫堆疊)
defmy_power
(x,n=2):
s = 1
while n>0:
n = n - 1
s = s * x
return s
print(my_power(5))
print(my_power(5,3))
#預設引數必須指向不變物件
defadd_end
(l=):
return l
print(add_end([1,2,3])) #[1,2,3,'end'] ok
print(add_end(['a','b',3])) #['a','b',3,'end'] ok
print(add_end()) # ['end'] ok
print(add_end()) # ['end','end'] error why
print(add_end()) # ['end','end','end'] error why 錯誤原因:預設引數指向了變數
defadd_end_m
(l=none):
if l is
none:
l =
return l
print(add_end_m()) # ['end'] ok
print(add_end_m()) # ['end'] ok
print(add_end_m()) # ['end'] ok
#可變引數 允許傳入0個或任意個引數,這些引數在函式呼叫時自動組裝為乙個tuple
defcalc
(numbers):
sum = 0
for n in numbers:
sum = sum + n*n*n
return sum
print(calc([1,2,3]))
print(calc((1,2,3,4,5)))
#真正的可變引數
defcalc_m
(*numbers):
sum = 0
for n in numbers:
sum = sum + n*n
return sum
print(calc_m())
print(calc_m(1))
print(calc_m(1,2))
print(calc_m(1,2,3))
print(calc_m(1,2,3,4))
nums = [1,2,3]
print(calc_m(*nums)) # *num 表示把nums這個list的所有元素作為可變引數傳進去。
#關鍵字引數 允許傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。
defperson
(name,age,**kw):
print('name:',name,'age:',age,'other:',kw)
print(person('michael',30))
aa = person('bob',30,city='beijing')
print(aa)
#命名關鍵字引數
defperson
(name,age,**kw):
if'city'
in kw:
pass
if'job'
in kw:
pass
print('name:',name,'age:',age,'other:',kw)
person('jack',24,city='begin',addr='chaoyang',zipcode=123456)
#命名關鍵字引數(需要可變引數,或者*分割) 限制關鍵字引數的名字 命名關鍵字引數必須傳入引數名
defperson
(name,age,*,city,job):
print(name,age,city,job)
person('jack',24,city='begin',job='engineer')
#如果函式定義中已經有了乙個可變引數,後面跟著的命名關鍵字引數就不再需要乙個特殊分隔符*了:
defperson
(name,age,*args,city,job):
print(name,age,args,city,job)
person('jack',24,(1,2,3),city='begin',job='engineer')
person('jack',24,city='begin',job='engineer')
#命名關鍵字引數可以有預設值
defperson
(name,age,*,city='beijing',job):
print(name,age,city,job)
person('jack',24,job='engineer')
#遞迴函式
deffact
(n):
if n==1:
return
1; return n*fact(n-1)
print(fact(100))
#尾遞迴 防止棧溢位
#尾遞迴呼叫時,如果做了優化,棧不會增長,因此,無論多少次呼叫也不會導致棧溢位。
deffact_iter
(num,product):
if num == 1:
return product
return fact_iter(num-1,num*product)
deffact
(n):
return fact_iter(n,1)
print(fact(100))`這裡寫**片`
Python基礎學習二
字典 dic dic.keys dic 省 keys dic 省 市 返回的都是列表 列組索引 index 切片 刪除 del remove pop 長度 len 迴圈 for while break 迴圈不在進行 continue 下一次迴圈 pass 站位 return 終止 exit 退出 包...
Python基礎學習 二 基礎語法
預設情況下,python 3 原始碼檔案以utf 8編碼,所有字串都是 unicode 字串。當然你也可以為原始碼檔案指定不同的編碼 conding utf 8 在python 3中,非 ascii 識別符號也是允許的了。保留字即關鍵字,我們不能把它們用作任何識別符號名稱。python 的標準庫提供...
python基礎學習 二 python知識
2.python搭建環境 3.pycharm的安裝和配置 解釋型語言的程式不需要編譯,相比編譯型語言省了道工序,解釋性語言在執行程式的時候才逐行翻譯 python的應用 pip使用 在命令列下,輸入匹配,回車可以看到說明 名稱 豆瓣 阿里中國科學技術大學 清華安裝過程 字型修改 file setti...