目录
第三题 使用二分法查找法在data_list中查找关键词key
第四题 使用顺序查找法在data_list中查找关键词key
第六题 操作文件指针,将建立的p.txt 文件中的诗名和最后一句诗的内容输出,并最终输出全部诗的内容
第七题 从键盘输入需输入的学生人数,并输入若干学生的学号、姓名、成绩,保存到stu.txt 中,一行保存一个学生的信息,之间用逗号分割,在文件stu.txt第一行的内容是:学号、姓名、成绩
第十题 将文件com1.txt 的字符串前加上序号1、2、3、…
第十一题 请用随机函数产生500行1-100之间的随机整数存入文件random.txt中,编程寻找这些整数的众数并输出,众数即为一组数中出现最多的数。
第一题 斐波那契数列(递归)
def fibo(n):
if n<=1:
return n
else:
return(fibo(n-1)+fibo(n-2))
if __name__=="__main__":
n=int(input("您要输入几项?"))
if n<=0:
print("请输入正数")
else:
print("斐波那契数列:")
c=0
for i in range(n):
c+=1
if c%5==0:
print(fibo(i),end="\n")
else:
print(fibo(i),end=' ')
第二题 汉诺塔(递归)必考题
def hanoi(a,b,c,n):
if n==1:
print(a,'->',c)
else:
hanoi(a,c,b,n-1)
print(a,'->',c)
hanoi(b,a,c,n-1)
n=int(input("input the number of plates:"))
hanoi('a','b','c',n)
第三题 使用二分法查找法在data_list中查找关键词key
def search(data_list,key):
low=0
high=len(data_list)-1
while low<=high:
mid=(low+high)//2
if data_list[mid]==key:
return mid
elif data_list[mid]>key:
high=mid-1
else:
low=mid+1
return 0
if __name__=="__main__":
r=[11,22,33,44,55,66,77,88]
k=int(input("请输入要查的数:"))
indexnum=search(r,k)
print("原始数序列为:"+str(r))
if indexnum==0:
print("没有找到!")
else:
print("位置为:"+str(indexnum+1))
第四题 使用顺序查找法在data_list中查找关键词key
def search(data_list,key):
for i in range(len(data_list)):
if data_list[i]==key:
return i
return 0
if __name__ == "__main__":
r=[11,22,33,44,55,66,77,88]
k=int(input("请输入要查的数:"))
indexnum=search(r,k)
print("原始数序列为:"+str(r))
if indexnum==0:
print("没有找到!")
else:
print("位置为:"+str(indexnum+1))
第五题 无序列表data_list中查找关键词key
def search(data_list,key):
for i in range(data_list,key):
if(data_list[i]==key):
print("匹配成功!位置在:"+str(i+1))
return 0
return 1
r=eval(input("请输入一些数:"))
k=int(input("请输入要查找的数:"))
print("原始序列为"+str(r))
i=search(r,k)
if i:
print("匹配失败!")
第六题 操作文件指针,将建立的p.txt 文件中的诗名和最后一句诗的内容输出,并最终输出全部诗的内容
with open("c:p.txt") as f:
print("打开文件时,文件指针的位置:",f.tell())
print("诗名为:",f.read(5))
print("从文件开始读取5个字符后,文件指针的位置:",f.tell())
f.seek(60)
print("最后一句诗为:",f.read(7))
print("输出最后一句诗后,文件指针的位置:",f.tell())
f=open("c:\p.txt")
print("诗名为:\n",f.read())
f.close()
第七题 从键盘输入需输入的学生人数,并输入若干学生的学号、姓名、成绩,保存到stu.txt 中,一行保存一个学生的信息,之间用逗号分割,在文件stu.txt第一行的内容是:学号、姓名、成绩
n=int(input("请输入学生人数:"))
f=open("c:\stu.txt","w")
f.write("学号、姓名、成绩\n")
for i in range(1,n+1):
id,name,score=input("请输入第"+str(i)+"行:").split()
f.write(id+","+name+","+str(score)+"")
f.write("\n")
f.close()
f=open("c:\stu.txt")
print("输入内容为:\n",f.read())
print("f.close()的位置",f.tell())
第八题 打开文件p.txt,将其中的诗输出
f=open("c:\p.txt")
print("诗名为:\n",f.read())
f.close()
第九题 将诗词内容写入到c盘p.txt 文件中
pe={"北国风光\n","千里冰封\n"
"万里雪飘\n",
"望长城内外\n",
"惟余莽莽\n"}
f=open("c:\p.txt","w")
f.writelines(pe)
print("ok!")
f.close()
第十题 将文件com1.txt 的字符串前加上序号1、2、3、…
f= open('c:\p.txt', 'r+')
lines = f.readlines()
for i in range(0, len(lines)):
lines[i] = str(i+1) + ' ' + lines[i]
f.seek(0)
f.writelines(lines)
f.close()
第十一题 请用随机函数产生500行1-100之间的随机整数存入文件random.txt中,编程寻找这些整数的众数并输出,众数即为一组数中出现最多的数。
# prog7_3.py
import random
with open('random.txt', 'w+') as fp:
for i in range(500):
fp.write(str(random.randint(1, 100)))
fp.write('\n')
fp.seek(0)
nums = fp.readlines()
nums = [num.strip() for num in nums]
setNums = set(nums)
lst = [0] * 101
for num in setNums:
c = nums.count(num)
lst[int(num)] = c
for i in range(len(lst)):
if lst[i] == max(lst):
print(i)
附录第一次链接
版权声明:本文为m0_56628676原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。