Python数据容器练习题

1)利用range函数产生一个包含整数0到20的列表。

2)创建一个字典,将1)列表中的偶数保存在该字典的第一个键值对中,奇数保存在第二个键值对中,并print该字典。

lst=list(range(21))
dict={'偶数':[],'奇数':[]}
for i in lst:
    if i%2==0:
        dict['偶数'].append(i)
    else:
        dict['奇数'].append(i)
print(dict)

1) 编写程序,计算并输出300以内最大的素数。

2) 编写程序,计算各位数字都不相同的所有三位数的个数,并输出最大的10个。

def sushu(n):
    if n <= 1:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        for i in range(3,int(n**0.5)+1,2):
            if n % i==0:
                return False
            return True
max_sushu=0
for i in range(300,1,-1):
    if sushu(i):
        max_sushu=i
        break
print('300以内最大的素数是:', max_sushu) 
def count():
    c=0
    numb=[]
    for i in range(100,1000):
        data=[int(d) for d in str(i)]
        if len (set(data))==3:
            c +=1
            numb.append(i)
    return c, sorted(numb,reverse=True)[:10]
c,top10=count()
print('三位数中各位数字都不相同的个数:',c)
print('最大的满足条件的10个数字:',top10)

利用递归获取斐波那契数列中的第12个数,并将该值返回给调用者。

注:斐波那契数列的递推公式:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n≥2,n∈N)

def fb(n):
    if n <= 1:
        return n
    else:
        return fb(n-1) + fb(n-2)
fb12=fb(11)
print('斐波那契数列中的第12个数:',fb12)

1)创建一个文件test.txt, 文件第一行是自己的名字,第二行是班级,第三行是学号。

2)分别用read, readline,readlines读取test.txt的文件内容。

with open('test.txt','w')as file:
    file.write('名字\n班级\n学号')
with open('test.txt','r')as file:
    print('使用read():')
    print(file.read())
    file.seek(0)
    print('使用readline逐行读取文件内容:')
    for i in range(3):
        print(file.readline().strip())
    file.seek(0)
    print('使用readlines()逐行读取文件内容')
    lines=file.readlines()
    for  line in lines:
        print(line.strip())

程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。

用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,

直到用户猜对结果或者猜测次数用完导致失败。

import random
def guessnumb():
    secretnumb=random.randint(1,100)
    max_attempts=5
    print('欢迎来到猜数字游戏!我已经想好1到100之间的数字')
    print('你有{}次机会来猜测这个数字'.format(max_attempts))
    for i in range(max_attempts):
        guess=int(input('请输入你猜测的数字'))
        if guess==secretnumb:
            print('恭喜你,猜对了!')
            return
        if guess < secretnumb:
            print('太小了,请再试一次')
        else:
            print('太大了,请再试一次')
    print('很遗憾,你没有在规定的次数内猜对。正确答案:', secretnumb)

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值