Skip to content

Commit 1ab67e8

Browse files
committed
init & reformat code
1 parent 81eb1d0 commit 1ab67e8

38 files changed

+584
-518
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea/

2d_list.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#! /usr/bin/env python
2-
#coding:utf-8
2+
# coding:utf-8
33

44
"""
55
问题
@@ -13,34 +13,35 @@
1313
import random
1414

1515

16-
def score(score_list,course_list,student_num):
16+
def score(score_list, course_list, student_num):
1717
course_num = len(course_list)
18-
18+
1919
every_score = [[score_list[j][i] for j in range(course_num)] for i in range(student_num)]
20-
20+
2121
every_total = [sum(every_score[i]) for i in range(student_num)]
22-
23-
ave_course = [sum(score_list[i])/len(score_list[i]) for i in range(len(score_list))]
24-
25-
return (every_score,every_total,ave_course)
26-
27-
if __name__=="__main__":
28-
29-
course_list = ["C++","Java","Servlet","JSP","EJB"]
22+
23+
ave_course = [sum(score_list[i]) / len(score_list[i]) for i in range(len(score_list))]
24+
25+
return (every_score, every_total, ave_course)
26+
27+
28+
if __name__ == "__main__":
29+
30+
course_list = ["C++", "Java", "Servlet", "JSP", "EJB"]
3031
student_num = 20
31-
32-
score_list = [[random.randint(0,100) for i in range(student_num)] for j in range(len(course_list))]
32+
33+
score_list = [[random.randint(0, 100) for i in range(student_num)] for j in range(len(course_list))]
3334
for i in range(len(course_list)):
34-
print "score of every one in %s:"%course_list[i]
35+
print "score of every one in %s:" % course_list[i]
3536
print score_list[i]
3637

37-
every_score,every_total,ave_one_course = score(score_list,course_list,student_num)
38+
every_score, every_total, ave_one_course = score(score_list, course_list, student_num)
3839
print "\n"
3940
print "NEXT IS EVERY ONE SCORE IN EVERY COURSE:"
4041
for name in course_list:
4142
print name,
4243
print "\t"
4344
print every_score
4445
print "\n"
45-
print "every one all score:\t",every_total
46-
print "every course of average score:\t",ave_one_course
46+
print "every one all score:\t", every_total
47+
print "every course of average score:\t", ave_one_course

ahead_one_step.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env python
2-
#coding:utf-8
2+
# coding:utf-8
33

44
"""
55
问题:
@@ -9,11 +9,13 @@
99
即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。
1010
"""
1111

12+
1213
def ahead_one():
1314
a = [i for i in range(1, 11)]
1415
b = a.pop(0)
1516
a.append(b)
1617
return a
1718

18-
if __name__ =="__main__":
19+
20+
if __name__ == "__main__":
1921
print ahead_one()

average_score.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#! /usr/bin python
2-
#coding:utf-8
2+
# coding:utf-8
33

44
"""
55
问题:
@@ -8,23 +8,26 @@
88
(2)将这40个成绩按照从高到低的顺序输出出来。
99
"""
1010

11-
#no need to import division from future just change num to float(num)
11+
# no need to import division from future just change num to float(num)
1212
import random
1313

14+
1415
def make_score(num):
15-
score = [random.randint(0,100) for i in range(num)]
16+
score = [random.randint(0, 100) for i in range(num)]
1617
return score
1718

19+
1820
def less_average(score):
1921
num = len(score)
2022
sum_score = sum(score)
21-
ave_num = sum_score/float(num)
22-
less_ave = [i for i in score if i<ave_num]
23-
return (ave_num,len(less_ave))
23+
ave_num = sum_score / float(num)
24+
less_ave = [i for i in score if i < ave_num]
25+
return (ave_num, len(less_ave))
26+
2427

25-
if __name__=="__main__":
28+
if __name__ == "__main__":
2629
score = make_score(40)
27-
average_num,less_num = less_average(score)
28-
print 'the score of average is:',average_num
29-
print "the number of less average is:",less_num
30-
print "the every score is[from big to small]:",sorted(score,reverse=True)
30+
average_num, less_num = less_average(score)
31+
print 'the score of average is:', average_num
32+
print "the number of less average is:", less_num
33+
print "the every score is[from big to small]:", sorted(score, reverse=True)

big_int.py

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env python
2-
#coding:utf-8
2+
# coding:utf-8
33

44
"""
55
对于大整数计算,一般都要用某种方法转化,否则会溢出。但是python无此担忧了。
@@ -18,108 +18,110 @@
1818
1919
"""
2020

21-
def arabic_multiplication(num1,num2):
22-
num_lst1 = [int(i) for i in str(num1)] #将int类型的123,转化为list类型的[1,2,3],每个元素都是int类型
21+
22+
def arabic_multiplication(num1, num2):
23+
num_lst1 = [int(i) for i in str(num1)] # 将int类型的123,转化为list类型的[1,2,3],每个元素都是int类型
2324
num_lst2 = [int(i) for i in str(num2)]
2425

25-
#两个list中整数两两相乘
26-
int_martix = [[i*j for i in num_lst1] for j in num_lst2]
27-
28-
#将上述元素为数字的list转化为元素类型是str,主要是将9-->'09'
29-
str_martix = [map(convert_to_str,int_martix[i]) for i in range(len(int_martix))]
30-
31-
#将上述各个list中的两位数字分开:['01','29','03']-->[0,2,0],[1,9,3]
32-
martix = [[int(str_martix[i][j][z]) for j in range(len(str_martix[i]))] for i in range(len(str_martix)) for z in range(2)]
33-
34-
#计算阿拉伯乘法表的左侧开始各项和
26+
# 两个list中整数两两相乘
27+
int_martix = [[i * j for i in num_lst1] for j in num_lst2]
28+
29+
# 将上述元素为数字的list转化为元素类型是str,主要是将9-->'09'
30+
str_martix = [map(convert_to_str, int_martix[i]) for i in range(len(int_martix))]
31+
32+
# 将上述各个list中的两位数字分开:['01','29','03']-->[0,2,0],[1,9,3]
33+
martix = [[int(str_martix[i][j][z]) for j in range(len(str_martix[i]))] for i in range(len(str_martix)) for z in
34+
range(2)]
35+
36+
# 计算阿拉伯乘法表的左侧开始各项和
3537
sum_left = summ_left(martix)
3638

37-
#计算阿拉伯乘法表的底部开始各项和
39+
# 计算阿拉伯乘法表的底部开始各项和
3840
sum_end = summ_end(martix)
3941

40-
#将上述两个结果合并后翻转
42+
# 将上述两个结果合并后翻转
4143
sum_left.extend(sum_end)
4244
sum_left.reverse()
4345

44-
#取得各个和的个位的数字(如果进位则加上)
46+
# 取得各个和的个位的数字(如果进位则加上)
4547
result = take_digit(sum_left)
46-
47-
#翻转结果并合并为一个结果字符串数值
48+
49+
# 翻转结果并合并为一个结果字符串数值
4850
result.reverse()
4951
int_result = "".join(result)
50-
print "%d*%d="%(num1,num2)
52+
print "%d*%d=" % (num1, num2)
5153
print int_result
5254

5355

54-
#将int类型转化为str类型,9-->'09'
56+
# 将int类型转化为str类型,9-->'09'
5557

5658
def convert_to_str(num):
57-
if num<10:
58-
return "0"+str(num)
59+
if num < 10:
60+
return "0" + str(num)
5961
else:
6062
return str(num)
6163

6264

63-
#计算阿拉伯乘法表格左侧开始的各项之和
65+
# 计算阿拉伯乘法表格左侧开始的各项之和
6466

6567
def summ_left(lst):
6668
summ = []
6769
x = [i for i in range(len(lst))]
6870
y = [j for j in range(len(lst[0]))]
69-
sx = [i for i in x if i%2==0]
71+
sx = [i for i in x if i % 2 == 0]
7072
for i in sx:
71-
s=0
72-
j=0
73-
while i>=0 and j<=y[-1]:
74-
s = s+ lst[i][j]
75-
if i%2==1:
76-
j = j+1
73+
s = 0
74+
j = 0
75+
while i >= 0 and j <= y[-1]:
76+
s = s + lst[i][j]
77+
if i % 2 == 1:
78+
j = j + 1
7779
else:
7880
j = j
79-
i = i-1
81+
i = i - 1
8082
summ.append(s)
8183
return summ
8284

8385

84-
85-
#计算阿拉伯乘法表格底部开始的各项之和
86+
# 计算阿拉伯乘法表格底部开始的各项之和
8687

8788
def summ_end(lst):
88-
summ=[]
89+
summ = []
8990
y = [j for j in range(len(lst[0]))]
90-
ex = len(lst)-1
91+
ex = len(lst) - 1
9192
for m in range(len(y)):
9293
s = 0
93-
i=ex
94-
j=m
95-
while i>=0 and j<=y[-1]:
96-
s= s+lst[i][j]
97-
if i%2==1:
98-
j = j+1
94+
i = ex
95+
j = m
96+
while i >= 0 and j <= y[-1]:
97+
s = s + lst[i][j]
98+
if i % 2 == 1:
99+
j = j + 1
99100
else:
100-
j=j
101-
i = i-1
101+
j = j
102+
i = i - 1
102103
summ.append(s)
103-
104+
104105
return summ
105106

106-
#得到各个元素的个位数,如果是大于10则向下一个进位
107+
108+
# 得到各个元素的个位数,如果是大于10则向下一个进位
107109

108110
def take_digit(lst):
109111
tmp = 0
110112
digit_list = []
111113
for m in range(len(lst)):
112114
lstm = 0
113-
lstm = lst[m]+tmp
114-
if lstm<10:
115+
lstm = lst[m] + tmp
116+
if lstm < 10:
115117
tmp = 0
116118
digit_list.append(str(lstm))
117119
else:
118-
tmp = lstm/10
119-
mm = lstm-tmp*10
120+
tmp = lstm / 10
121+
mm = lstm - tmp * 10
120122
digit_list.append(str(mm))
121123
return digit_list
122124

123125

124-
if __name__=="__main__":
125-
arabic_multiplication(469,37)
126+
if __name__ == "__main__":
127+
arabic_multiplication(469, 37)

bin_search.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/evn python
2-
#coding:utf-8
2+
# coding:utf-8
33
"""
44
#问题
55
@@ -32,21 +32,23 @@
3232
这种搜索算法每一次比较都使搜索范围缩小一半。时间复杂度:O(logn)
3333
"""
3434

35-
def binarySearch(lst, value,low,high): #low,high是lst的查找范围
35+
36+
def binarySearch(lst, value, low, high): # low,high是lst的查找范围
3637
if high < low:
3738
return -1
38-
mid = (low + high)/2
39+
mid = (low + high) / 2
3940
if lst[mid] > value:
40-
return binarySearch(lst, value, low, mid-1)
41+
return binarySearch(lst, value, low, mid - 1)
4142
elif lst[mid] < value:
42-
return binarySearch(lst, value, mid+1, high)
43+
return binarySearch(lst, value, mid + 1, high)
4344
else:
4445
return mid
4546

46-
#也可以不用递归方法,而采用循环,如下:
47-
47+
48+
# 也可以不用递归方法,而采用循环,如下:
49+
4850
def bsearch(l, value):
49-
lo, hi = 0, len(l)-1
51+
lo, hi = 0, len(l) - 1
5052
while lo <= hi:
5153
mid = (lo + hi) / 2
5254
if l[mid] < value:
@@ -56,7 +58,8 @@ def bsearch(l, value):
5658
else:
5759
return mid
5860
return -1
59-
61+
62+
6063
"""
6164
对于python,不能忽视其强大的标准库。经查阅,发现标准库中就有一个模块,名为:bisect。其文档中有这样一句话:
6265
@@ -76,16 +79,18 @@ def bsearch(l, value):
7679
7780
-关于本模块,可以查看官方文档:https://docs.python.org/2/library/bisect.html
7881
"""
79-
#下面演示这个模块
82+
# 下面演示这个模块
8083

8184
from bisect import *
8285

83-
def bisectSearch(lst, x):
84-
i = bisect_left(lst, x) #bisect_left(lst,x)得到x在已经排序的lst中的位置
86+
87+
def bisectSearch(lst, x):
88+
i = bisect_left(lst, x) # bisect_left(lst,x)得到x在已经排序的lst中的位置
8589
if i != len(lst) and lst[i] == x:
8690
return i
8791

88-
if __name__=="__main__":
89-
lst = sorted([2,5,3,8])
90-
print bisectSearch(lst,5)
91-
print bsearch(lst,5)
92+
93+
if __name__ == "__main__":
94+
lst = sorted([2, 5, 3, 8])
95+
print bisectSearch(lst, 5)
96+
print bsearch(lst, 5)

0 commit comments

Comments
 (0)