Skip to content

Commit d73fb7a

Browse files
committed
add code of 04
1 parent e03ccaa commit d73fb7a

17 files changed

Lines changed: 376 additions & 0 deletions

python3code/chapter03/parabola.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
# coding:utf-8
2+
'''
3+
filename: parabola.py
4+
'''
25

36
def parabola(a, b, c):
47
def para(x):
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#coding:utf-8
2+
'''
3+
filename: addfractions.py
4+
'''
5+
6+
def gcd(a, b):
7+
if not a > b:
8+
a, b = b, a
9+
while b != 0:
10+
remainder = a % b
11+
a, b = b, remainder
12+
return a
13+
14+
def lcm(a, b):
15+
return (a * b) / gcd(a,b)
16+
17+
class Fraction:
18+
def __init__(self, number, denom=1):
19+
self.number = number
20+
self.denom = denom
21+
22+
def __str__(self):
23+
return str(self.number) + '/' + str(self.denom)
24+
25+
__repr__ = __str__
26+
27+
def __add__(self, other):
28+
lcm_num = lcm(self.denom, other.denom)
29+
number_sum = (lcm_num / self.denom * self.number) + (lcm_num / other.denom * other.number)
30+
return Fraction(number_sum, lcm_num)
31+
32+
if __name__ == "__main__":
33+
m = Fraction(1, 3)
34+
n = Fraction(1, 2)
35+
s = m + n
36+
print(m,"+",n,"=",s)

python3code/chapter04/convert2g.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#coding:utf-8
2+
'''
3+
filename: convert2g.py
4+
'''
5+
6+
class ToGram(float):
7+
def __new__(cls, jin=0.0):
8+
gram = jin / 2 * 1000
9+
return float.__new__(cls, gram)
10+
11+
jin = 2.3
12+
value = ToGram(jin)
13+
print("{0}jin = {1:.2f}g".format(jin, value))
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#coding:utf-8
2+
'''
3+
filename: definefraction.py
4+
'''
5+
class Fraction:
6+
def __init__(self, number, denom=1):
7+
self.number = number
8+
self.denom = denom
9+
10+
def __str__(self):
11+
return str(self.number) + '/' + str(self.denom)
12+
13+
__repr__ = __str__
14+
15+
16+
if __name__ == "__main__":
17+
f = Fraction(2, 3)
18+
print(f)

python3code/chapter04/fibsyield.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# coding:utf-8
2+
'''
3+
filename: fibsyield.py
4+
'''
5+
6+
def fibs(max):
7+
n, a, b = 0, 0, 1
8+
while n < max:
9+
yield b
10+
a, b = b, a + b
11+
n = n + 1
12+
13+
if __name__ == "__main__":
14+
f = fibs(10)
15+
for i in f:
16+
print(i, end=',')

python3code/chapter04/gcdlcm.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#coding:utf-8
2+
'''
3+
filename: gcdlcm.py
4+
'''
5+
6+
def gcd(a, b): #最大公约数
7+
if not a > b:
8+
a, b = b, a
9+
while b != 0:
10+
remainder = a % b
11+
a, b = b, remainder
12+
return a
13+
14+
def lcm(a, b): #最小公倍数
15+
return (a * b) / gcd(a,b)
16+
17+
if __name__ == "__main__":
18+
print(gcd(8, 20))
19+
print(lcm(8, 20))

python3code/chapter04/mro.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# coding:utf-8
2+
3+
class K1:
4+
def foo(self):
5+
print("K1-foo")
6+
7+
class K2:
8+
def foo(self):
9+
print("K2-foo")
10+
def bar(self):
11+
print("K2-bar")
12+
13+
class J1(K1, K2):
14+
pass
15+
16+
class J2(K1, K2):
17+
def bar(self):
18+
print("J2-bar")
19+
20+
class C(J1, J2):
21+
pass
22+
23+
if __name__ == "__main__":
24+
print(C.__mro__)
25+
m = C()
26+
m.foo()
27+
m.bar()
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# coding:utf-8
2+
3+
class Person:
4+
def eye(self):
5+
print("two eyes")
6+
7+
def breast(self, n):
8+
print("The breast is: ",n)
9+
10+
class Girl:
11+
age = 28
12+
def color(self):
13+
print("The girl is white")
14+
15+
class HotGirl(Person, Girl):
16+
pass
17+
18+
if __name__ == "__main__":
19+
kong = HotGirl()
20+
kong.eye()
21+
kong.breast(90)
22+
kong.color()
23+
print(kong.age)

python3code/chapter04/myrange.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# coding:utf-8
2+
'''
3+
filename: myrange.py
4+
'''
5+
6+
class MyRange:
7+
def __init__(self, n):
8+
self.i = 1
9+
self.n = n
10+
11+
def __iter__(self):
12+
return self
13+
14+
def __next__(self):
15+
if self.i <= self.n:
16+
i = self.i
17+
self.i += 1
18+
return i
19+
else:
20+
raise StopIteration()
21+
22+
if __name__ == "__main__":
23+
x = MyRange(7)
24+
print([i for i in x])

python3code/chapter04/private.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# coding:utf-8
2+
3+
class ProtectMe:
4+
def __init__(self):
5+
self.me = "qiwsir"
6+
self.__name = "kivi"
7+
8+
def __python(self):
9+
print("I love Python.")
10+
11+
def code(self):
12+
print("Which language do you like?")
13+
self.__python()
14+
15+
if __name__ == "__main__":
16+
p = ProtectMe()
17+
print(p.me)
18+
print(p.__name)

0 commit comments

Comments
 (0)