python程序设计基础上机题5.16-----5.26(2)

 python上机练习题(——2022年5月15日)

目录

第一题 斐波那契数列(递归)

第二题 汉诺塔(递归)必考题

第三题 使用二分法查找法在data_list中查找关键词key

 第四题 使用顺序查找法在data_list中查找关键词key

 第五题 无序列表data_list中查找关键词key

 第六题 操作文件指针,将建立的p.txt 文件中的诗名和最后一句诗的内容输出,并最终输出全部诗的内容

第七题 从键盘输入需输入的学生人数,并输入若干学生的学号、姓名、成绩,保存到stu.txt 中,一行保存一个学生的信息,之间用逗号分割,在文件stu.txt第一行的内容是:学号、姓名、成绩

第八题 打开文件p.txt,将其中的诗输出

第九题 将诗词内容写入到c盘p.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
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值