diff --git a/homework_01_python/01.py b/homework_01_python/01.py new file mode 100644 index 0000000000000000000000000000000000000000..9d49b59615a4587104e64ed5fe152314b6ccfba0 --- /dev/null +++ b/homework_01_python/01.py @@ -0,0 +1,18 @@ +#1. 字符串 +#单词之间是两个空格,或者是\t的情况下程序不会有问题 +# 标点符号如果出现?,/等符号,需要在提示“Please input the separator”时输入要添加的分隔符 +essay = input('Please input the essay\n') +separator=',. ' +separator=separator+input('Please input the separator\n') +def rep(essay,sep): + """将分隔符替换为空格""" + essay=essay.replace(sep,' ') + return essay + +for i in separator: + essay=rep(essay,i) +words=essay.split() +wordset=set(words) +for i in wordset: + num=words.count(i) + print(i+':%d'%num) \ No newline at end of file diff --git a/homework_01_python/02.py b/homework_01_python/02.py new file mode 100644 index 0000000000000000000000000000000000000000..daccd52431671b8bcce588952a38f2ed29d38681 --- /dev/null +++ b/homework_01_python/02.py @@ -0,0 +1,12 @@ +#2. 组合 +num=list(range(1,5)) +n=0 +for i in num: + for j in num: + for k in num: + if i!=j and i!=k and j!=k: + n=n+1 + s=100*i+10*j+k; + print("%d"%s) + print("\n") +print("能组成%d个互不相同且无重复数字的三位数"%n) diff --git a/homework_01_python/03.py b/homework_01_python/03.py new file mode 100644 index 0000000000000000000000000000000000000000..11ecd28ae44c8eee6e3689bb53d72f567389bc3d --- /dev/null +++ b/homework_01_python/03.py @@ -0,0 +1,17 @@ +#3. 判断 +I=int(input("当月利润为: (万元)\n")) +if I<=10: + w=0.1*I +elif I>10 and I<=20: + w=10*0.1+(I-10)*0.075 +elif I>20 and I<=40: + w=10*0.1+(20-10)*0.075+(I-20)*0.05 +elif I>40 and I<=60: + w=10*0.1+(20-10)*0.075+(40-20)*0.05+(I-40)*0.03 +elif I>60 and I<=100: + w=10*0.1+(20-10)*0.075+(40-20)*0.05+(60-40)*0.03+(I-60)*0.015 +elif I>100: + w=10*0.1+(20-10)*0.075+(40-20)*0.05+(60-40)*0.03+(100-60)*0.015+(I-100)*0.01 +else: + print('Data error') +print("奖金为: %-8.4f(万元)"%w) \ No newline at end of file diff --git a/homework_01_python/04.py b/homework_01_python/04.py new file mode 100644 index 0000000000000000000000000000000000000000..f61f71132a813f78c870ab3a4d795f31be14b597 --- /dev/null +++ b/homework_01_python/04.py @@ -0,0 +1,7 @@ +#4. 循环 +a=list(range(1,10)) +for i in a: + b=list(range(1,i+1)) + for j in b: + print('%d*%d=%-2d '%(i,j,i*j),end='\t') + print('\n') \ No newline at end of file diff --git a/homework_01_python/05.py b/homework_01_python/05.py new file mode 100644 index 0000000000000000000000000000000000000000..87bad3ff4faccfba8818713dc12970f5910a5851 --- /dev/null +++ b/homework_01_python/05.py @@ -0,0 +1,9 @@ +#5. 使用while循环实现输出2-3+4-5+6.....+100的和 +a=2 +sum=0 +p=1 +while a<=100: + sum=sum+p*a + p=-p + a=a+1 +print("sum=%d"%sum) \ No newline at end of file diff --git a/homework_01_python/06.py b/homework_01_python/06.py new file mode 100644 index 0000000000000000000000000000000000000000..1769c8e2008c7e18764c45b181150fccdf23a74e --- /dev/null +++ b/homework_01_python/06.py @@ -0,0 +1,33 @@ +#6. 排序算法 +#输入的数据用','隔开 +def mysort(args): + if len(args)<2: + return args + else: + middle=args[0] + less=[] + bigger=[] + n=0 + for i in args[1:]: + if i<=middle: + less.append(i) + else: + bigger.append(i) + return mysort(less)+[middle]+mysort(bigger) + +il=list(input('请输入数据\n').split(',')) +l=[] +for i in il: + l.append(int(i)) +d=list(range(len(l))) +ordered=mysort(l) +print("\nout:\n") +last=ordered.pop() +for i in ordered: + print('%d,'%i,end=' ') +print('%d\n'%last) +for j in ordered: + position=l.index(j) + print('%d,'%d[position],end=' ') + l[position]=' '#将已找到序号的数删除,防止影响索引 +print('%d\n'%d[l.index(last)]) \ No newline at end of file diff --git a/homework_01_python/07.py b/homework_01_python/07.py new file mode 100644 index 0000000000000000000000000000000000000000..d7c5552211b205f9983799825b2db66efabf86d5 --- /dev/null +++ b/homework_01_python/07.py @@ -0,0 +1,28 @@ +#7. 矩阵搜索 +import numpy as np + +m=np.array( +[ +[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=float(input("target=\n")) +[row,column]=m.shape +r=0 +if m[0,0]>target or m[row-1,column-1]target: + l=list(m[:,i]) + if target in l: + r=1 +if r==0: + print('false') +elif r==1: + print('true') diff --git a/homework_01_python/08.py b/homework_01_python/08.py new file mode 100644 index 0000000000000000000000000000000000000000..067eaf2f50aae0c388387507cdd0ed1acd1b5187 --- /dev/null +++ b/homework_01_python/08.py @@ -0,0 +1,8 @@ +#8. 完数计算 +for i in range(1, 1000): + sum = 0 + for j in range(1, i): + if i%j == 0: + sum += j + if sum == i: + print(i) \ No newline at end of file diff --git a/homework_01_python/09.py b/homework_01_python/09.py new file mode 100644 index 0000000000000000000000000000000000000000..c2717dc36ffe7eeedc83d1c678e01ff72077214a --- /dev/null +++ b/homework_01_python/09.py @@ -0,0 +1,18 @@ +#9. 快乐数 +def Sumofsquares(num): + numStr=str(num) + sum=0 + for i in numStr: + sum += int(i)**2 + return sum + +n = int(input('输入:n =')) #n为一个正整数 +count = 0 +while n != 1: + n = Sumofsquares(n) + count += 1 + if count > 1000: #当计算次数超过1000次时,认为无线循环 + print("False") + break +else: + print("True") diff --git a/homework_01_python/10.py b/homework_01_python/10.py new file mode 100644 index 0000000000000000000000000000000000000000..a55bdcd668ed66544e9d5284cb582241cfba27ab --- /dev/null +++ b/homework_01_python/10.py @@ -0,0 +1,16 @@ +#10. 连续的子数组和 +nums=eval(input('请以[23,2,4,6,7]的形式输入数组: \n nums = ')) +k=int(input('k = ')) +if len(nums)<2: + print('Data error') +r=False +for i in range(len(nums)-1): + sum=nums[i] + for j in range(i,len(nums)-1): + sum+=nums[j+1] + if sum%k==0: + r=True + break + if r==True: + break +print(r) \ No newline at end of file diff --git a/homework_01_python/11.py b/homework_01_python/11.py new file mode 100644 index 0000000000000000000000000000000000000000..f8df34291d73dce94ea7d451a05a21814fa2abf5 --- /dev/null +++ b/homework_01_python/11.py @@ -0,0 +1,7 @@ +#11. 确定字符串是否包含唯一字符 +s=input('输入字符串:\n') +set1=set(s) +if len(s)==len(set1): + print('True') +else: + print('False') \ No newline at end of file diff --git a/homework_01_python/12.py b/homework_01_python/12.py new file mode 100644 index 0000000000000000000000000000000000000000..7c69c31fb6949726fa9eb549c0a23305ddfd5fe5 --- /dev/null +++ b/homework_01_python/12.py @@ -0,0 +1,12 @@ +#12. 能够拼成多少个单词 +s=input("输入字符串: ") +set1=set(s) +n=[] +word='balloon' +for i in set1: + if i in word: + ni=(s.count(i)) + wi=(word.count(i)) + n.append(ni//wi) +print(min(n)) + \ No newline at end of file diff --git a/homework_01_python/13.py b/homework_01_python/13.py new file mode 100644 index 0000000000000000000000000000000000000000..8126fdfc37ac59e7077445710360149d48da53f4 --- /dev/null +++ b/homework_01_python/13.py @@ -0,0 +1,24 @@ +#13. 生成激活码 +import random +l=[] +for i in range(26): + a=chr(i+65) + b=chr(i+97) + l.append(a) + l.append(b) +for i in range(10): + l.append(str(i)) + +def gen_code(length,list): + s='' + for i in range(length): + a=random.choice(list) + s+=a + return s + +length=int(input('激活码长度: ')) +num=int(input('\n激活码数量: ')) +code=[] +for i in range(num): + code.append(gen_code(length,l)) +print(code) \ No newline at end of file diff --git a/homework_01_python/14.py b/homework_01_python/14.py new file mode 100644 index 0000000000000000000000000000000000000000..3e3c346b327f4ecd3b7f0be9aa1cec6b7e241226 --- /dev/null +++ b/homework_01_python/14.py @@ -0,0 +1,33 @@ +#14. 遍历目录 +if 0:#不使用递归 + import os + def getFiles(dir, suffix): # 查找根目录,文件后缀 + res = [] + for root, directory, files in os.walk(dir): # =>当前根,根下目录,目录下的文件 + for filename in files: + name, suf = os.path.splitext(filename) # =>文件名,文件后缀 + if suf == suffix: + res.append(os.path.join(root, filename)) # =>吧一串字符串组合成路径 + return res + + dir=input("目录:") + suffix=input("后缀:") + for file in getFiles(dir, suffix): # =>查找以.py结尾的文件 + print(file) + +if 1:#使用递归 + import os + def getFiles(filepath, suffix): + #遍历filepath下所有文件,包括子目录 + files = os.listdir(filepath) + for fi in files: + fi_d = os.path.join(filepath,fi) + if os.path.isdir(fi_d): + getFiles(fi_d,suffix) + else: + name, suf = os.path.splitext(fi) + if suf==suffix: + print(fi_d) + dir=input("目录:") + suffix=input("后缀:") + getFiles(dir,suffix) \ No newline at end of file diff --git a/homework_01_python/15.py b/homework_01_python/15.py new file mode 100644 index 0000000000000000000000000000000000000000..6a67fc8f00751db3a053031db37e383c2cde3d35 --- /dev/null +++ b/homework_01_python/15.py @@ -0,0 +1,40 @@ +#15. 统计代码行数 +import os +def getFiles(filepath, suffix): +#遍历filepath下所有文件,包括子目录 + program=[] + files = os.listdir(filepath) + for fi in files: + fi_d = os.path.join(filepath,fi) + if os.path.isdir(fi_d): + sub=getFiles(fi_d,suffix) + if sub !=[]: + for i in sub: + program.append(i) + else: + name, suf = os.path.splitext(fi) + if suf==suffix: + program.append(fi_d) + return program + +def getLines(file): + fo=open(file,'r') + lines=len(fo.readlines()) + return lines + +clines=0 +cpplines=0 +pylines=0 +dir=input("目录:") +c_program=getFiles(dir,'.c')+getFiles(dir,'.h') +cpp_program=getFiles(dir,'.cpp')+getFiles(dir,'.hpp') +py_program=getFiles(dir,'.py')+getFiles(dir,'.ipynb') +for i in c_program: + clines+=getLines(i) +for i in cpp_program: + cpplines+=getLines(i) +for i in py_program: + pylines+=getLines(i) +print('C程序: %d行\n'%clines) +print('C++程序: %d行\n'%cpplines) +print('python程序: %d行\n'%pylines) \ No newline at end of file diff --git a/name.txt b/name.txt new file mode 100644 index 0000000000000000000000000000000000000000..1a5dc37f74b32a8cb50da87d7f5a0e064a3eb284 --- /dev/null +++ b/name.txt @@ -0,0 +1,2 @@ +亢泽龙 +2022200105 \ No newline at end of file