parent
1a2d27dc09
commit
001839394c
@ -0,0 +1,41 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
dist/
|
||||
*.log
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# dotenv
|
||||
.env
|
||||
|
||||
# virtualenv
|
||||
.venv/
|
||||
venv/
|
||||
ENV/
|
||||
|
||||
# VSCode settings
|
||||
.vscode
|
||||
|
||||
# IDEA files
|
||||
.idea
|
||||
|
||||
# OSX dir files
|
||||
.DS_Store
|
||||
|
||||
# Sublime Text settings
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
|
||||
# History
|
||||
.history
|
||||
|
||||
# test files
|
||||
homework_01_python/**/test/
|
@ -0,0 +1 @@
|
||||
One is always on a strange road, watching strange scenery and listening to strange music. Then one day, you will find that the things you try hard to forget are already gone.
|
@ -0,0 +1,22 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-10 23:22:04
|
||||
LastEditTime: 2021-10-10 23:34:06
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework 1.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
|
||||
if __name__ == '__main__':
|
||||
with open('essay.txt', 'r') as fp_in:
|
||||
content = fp_in.read()
|
||||
word_map = {}
|
||||
words = content.split()
|
||||
for w in words:
|
||||
if w in word_map:
|
||||
word_map[w] += 1
|
||||
else:
|
||||
word_map[w] = 1
|
||||
|
||||
for (k, v) in word_map.items():
|
||||
print(f'{k}: {v}')
|
@ -0,0 +1,30 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 21:14:15
|
||||
LastEditTime: 2021-10-16 23:24:52
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework10.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
import os
|
||||
|
||||
if __name__ == '__main__':
|
||||
res = {}
|
||||
dir_path = './test/'
|
||||
files= os.listdir(dir_path)
|
||||
|
||||
for file in files:
|
||||
if not os.path.isdir(file):
|
||||
ext = os.path.splitext(file)[-1][1:]
|
||||
with open(dir_path+"/"+file) as fp:
|
||||
count = len(fp.readlines())
|
||||
if ext in res:
|
||||
res[ext] += count
|
||||
else:
|
||||
res[ext] = count
|
||||
|
||||
print('统计结果如下: ')
|
||||
for k, v in res.items():
|
||||
print(f'{k}有: {v}行。')
|
||||
|
||||
|
@ -0,0 +1,59 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 22:24:48
|
||||
LastEditTime: 2021-10-16 22:44:04
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework3.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
|
||||
def judgement(x):
|
||||
s = 0
|
||||
p = 0
|
||||
|
||||
if x == 0:
|
||||
return 0
|
||||
|
||||
if x <= 10:
|
||||
s = 0
|
||||
p = 0.1
|
||||
elif x > 10 and x <= 20:
|
||||
s = 10
|
||||
p = 0.075
|
||||
elif x > 20 and x <= 40:
|
||||
s = 20
|
||||
p = 0.05
|
||||
elif x > 40 and x <= 60:
|
||||
s = 40
|
||||
p = 0.03
|
||||
elif x > 60 and x <= 100:
|
||||
s = 60
|
||||
p = 0.015
|
||||
else:
|
||||
s = 100
|
||||
p = 0.01
|
||||
|
||||
return (x-s)*p+judgement(s)
|
||||
|
||||
import bisect
|
||||
|
||||
# 使用列表来实现判断
|
||||
def judgementList(x):
|
||||
a = [0, 10, 20, 40, 60, 100]
|
||||
p = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]
|
||||
ind = bisect.bisect_left(a, x)
|
||||
res = 0
|
||||
|
||||
res += (x-a[ind-1])*p[ind-1]
|
||||
for i in range(1, ind):
|
||||
res += (a[i]-a[i-1])*(p[i-1])
|
||||
|
||||
return res
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
x = 100
|
||||
print(f'利润为:{x}w, 发放的奖金为{judgement(x)}w.')
|
||||
print('----------------------------------------')
|
||||
print('以下是使用列表计算的结果:')
|
||||
print(f'利润为:{x}w, 发放的奖金为{judgementList(x)}w.')
|
@ -0,0 +1,16 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 22:21:24
|
||||
LastEditTime: 2021-10-16 23:25:56
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework4.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
|
||||
if __name__ == '__main__':
|
||||
for i in range(10):
|
||||
for j in range (10-i,10):
|
||||
print(f'{10-i}*{j}={(10-i)*j}', end='\t')
|
||||
print('\n')
|
||||
|
||||
# 使用制表符来进行分割可以让乘法表格显示更加清楚
|
@ -0,0 +1,22 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 22:14:07
|
||||
LastEditTime: 2021-10-16 22:19:04
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework5.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
|
||||
if __name__ == '__main__':
|
||||
i = 2
|
||||
res = 0
|
||||
while i <= 100:
|
||||
res += (-1)**(i&1)*i
|
||||
i += 1
|
||||
|
||||
print(f'result: {res}')
|
||||
|
||||
# 可以使用列表推导式一句话写完
|
||||
res = sum([(-1)**(i&1)*i for i in range(2, 101)])
|
||||
|
||||
print(f'result: {res}')
|
@ -0,0 +1,34 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 21:05:23
|
||||
LastEditTime: 2021-10-16 23:25:39
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework6.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
|
||||
def quickSort(lists, i, j):
|
||||
if i >= j:
|
||||
return list
|
||||
pivot = lists[i]
|
||||
low = i
|
||||
high = j
|
||||
while i < j:
|
||||
while i < j and lists[j] <= pivot:
|
||||
j -= 1
|
||||
lists[i]=lists[j]
|
||||
while i < j and lists[i] >= pivot:
|
||||
i += 1
|
||||
lists[j]=lists[i]
|
||||
lists[j] = pivot
|
||||
quickSort(lists,low,i-1)
|
||||
quickSort(lists,i+1,high)
|
||||
return lists
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# 采用快速排序法进行列表排序
|
||||
lists = [1, 10, 4, 2, 9, 2, 34, 5, 9, 8, 5, 0]
|
||||
ordered_lists = quickSort(lists, 0, len(lists)-1)
|
||||
print('从大到小排列后的列表为: ')
|
||||
print(ordered_lists)
|
@ -0,0 +1,37 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 22:04:07
|
||||
LastEditTime: 2021-10-16 23:25:30
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework7.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
def searchMatrix(matrix, target):
|
||||
if (len(matrix) == 0 ):
|
||||
return False
|
||||
|
||||
i = len(matrix)-1
|
||||
j = 0
|
||||
while (i>=0 and j < len(matrix[0])):
|
||||
if (matrix[i][j] == target):
|
||||
return True
|
||||
elif (matrix[i][j] < target):
|
||||
j += 1
|
||||
elif(matrix[i][j] > target):
|
||||
i -= 1
|
||||
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
matrix = [
|
||||
[1, 4, 7, 11, 15],
|
||||
[2, 5, 8, 12, 19],
|
||||
[3, 6, 9, 16, 22],
|
||||
[10, 13, 14, 17, 24],
|
||||
[18, 21, 23, 26, 30]
|
||||
]
|
||||
target = 20
|
||||
print(searchMatrix(matrix, target))
|
||||
|
||||
# 算法说明:
|
||||
# 从矩阵左下角,先排除不符合条件的列,再排除不符合条件的行,将范围一直往右上角缩小
|
@ -0,0 +1,30 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 21:43:32
|
||||
LastEditTime: 2021-10-16 23:25:21
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework8.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
import random
|
||||
import string
|
||||
|
||||
def activationCode(count, length):
|
||||
res = set()
|
||||
base = string.ascii_letters + string.digits
|
||||
|
||||
while len(res) < count:
|
||||
res.add(''.join(random.sample(base, length)))
|
||||
|
||||
return res
|
||||
|
||||
if __name__ == '__main__':
|
||||
n = 200 # count
|
||||
l = 11 # length of each code
|
||||
|
||||
res = activationCode(n, l)
|
||||
print(f'生成的{n}个激活码如下: ')
|
||||
for item in res:
|
||||
print(item)
|
||||
|
||||
# 激活码是用来授予用户相关权限的凭证,一般由一组数字和字母组成,其组合非常多,随机性较强,且能保证唯一,难以被外部破解。
|
@ -0,0 +1,13 @@
|
||||
'''
|
||||
Author: SJ2050
|
||||
Date: 2021-10-16 21:33:05
|
||||
LastEditTime: 2021-10-16 23:25:11
|
||||
Version: v0.0.1
|
||||
Description: Solution for homework9.
|
||||
Copyright © 2021 SJ2050
|
||||
'''
|
||||
from pathlib import Path
|
||||
|
||||
if __name__ == '__main__':
|
||||
dir_path = './test/'
|
||||
print(sorted(Path('.').glob('**/*.dll')))
|
Loading…
Reference in new issue