# 階乘
deffunc_jc
(n):
if n >=1:
return n * func_jc(n-1)
return
1print
(func_jc(10)
)
3628800
# 斐波那契數列
deffunc_fbnq
(n):
if n ==
1or n ==2:
return
1return func_fbnq(n-1)
+ func_fbnq(n-2)
print
(func_fbnq(10)
)
55
# 漢諾塔
a ="a"
b ="b"
c ="c"
defhnt
(a,b,c,n)
:if n ==1:
print
("{}=>{}"
.format
(a,c)
)return
none
if n ==2:
print
("{}=>{}"
.format
(a,c)
)print
("{}=>{}"
.format
(a,b)
)print
("{}=>{}"
.format
(b,c)
)return
none
hnt(a,c,b,n-1)
print
("{}=>{}"
.format
(a,c)
) hnt(b,a,c,n-
1)
# 乙個盤子
hnt(a,b,c,
1)
a=>c
# 兩個盤子
hnt(a,b,c,
2)
a=>c
a=>b
b=>c
類 vs 物件
類的內容
定義類:class關鍵字
類命名:
## 定義學生類
class
student()
:'''
此處定義乙個空類
pass是關鍵字,表示佔位,wu無意義
'''pass
# 定義乙個物件,python不用new關鍵字
# 例項化
xiaobai = student(
)
class
pystudent()
: name =
"小白"
age =
18'''
this指的是當前類的例項,作為方法的第乙個形參
'''defgetname
(this,n,a)
: this.name = n
this.age = a
print
("姓名:"
+this.name +
"\t年齡:"
+str
(this.age)
) this.work =
"程式設計師"
print
(this.name +
"的工作:"
+this.work)
return
none
xiaobai = pystudent(
)print
(xiaobai.name)
print
(xiaobai.age)
# xiaobai.getname()
# print(xiaobai.work)
# 例項呼叫類的方法,預設把自己作為第乙個引數傳進去
xiaobai.getname(
"dabai",12
)print
("姓名:"
+pystudent.name +
"\t年齡:"
+str
(pystudent.age)
)
小白
18姓名:dabai 年齡:12
dabai的工作:程式設計師
姓名:小白 年齡:18
class
pystudent()
: name =
"小白"
age =
18'''
this指的是當前類的例項,作為方法的第乙個形參
'''defgetname
(this,n,a)
: this.name = n
this.age = a
print
("姓名:"
+this.name +
"\t年齡:"
+str
(this.age)
) this.work =
"程式設計師"
print
(this.name +
"的工作:"
+this.work)
return
none
defsos()
:print
("sos"
)print
("姓名:"
+pystudent.name +
"\t年齡:"
+str
(pystudent.age)
)print
("姓名:"
+__class__.name +
"\t年齡:"
+str
(__class__.age)
)
pystudent.sos(
)
sos
姓名:小白 年齡:18
姓名:小白 年齡:18
class
student()
:def
__init__
(this,height,weight)
: this.height = height
this.weight = weight
xiaoming = student(
180,50)
print
(xiaoming.height)
print
(xiaoming.weight)
180
50
python子類可以繼承多個父類
class
person()
:pass
# teacher是person的子類,父類寫在括號中,可以有多個
class
teacher
(person)
:pass
t = teacher(
)print
(t)
<__main__.teacher object at 0x0000024a4c038c88>
class
bird()
: fly =
"we can fly"
defflying
(this)
:print
("飛呀飛呀"
)class
birdman
(person,bird)
:pass
bm = birdman(
)bm.flying(
)
飛呀飛呀
print
(issubclass
(birdman,bird)
)print
(issubclass
(birdman,person)
)print
(issubclass
(birdman,teacher)
)
true
true
false
ES6 基礎語法
1 var vs let const var 可以定義全域性變數,與之不同,let的重要特性就是提供了塊級作用域和不具備變數提公升。const主要用於定義常量,常量顧名思義不是變數,意思就是一經定義,值就無法改變。首先弄明白塊級作用域 es5中有全域性作用域與函式作用域,塊級作用域是es6中的新語法...
ES6基礎語法
let 變數 不具備變數提公升特性 const 常量 引用位址不可改變 在宣告時必須被賦值 let和const都是塊級作用域 只在最靠近的乙個塊中 花括號內 有效 在es6中新增了模板字串拼接 var name kingfan var age 18 var msg 我是 今年 歲 console.l...
Python基礎語法6 模組
1.import 模組名,例如 import random,csv 2.from 模組名 import 變數,函式名 3.ifname main 用來判定主模組 4.dir 模組名 可以看模組有哪些函式,屬性,方法 例子 建乙個檔案story.py sentence 從前有座山,def mounta...