Python题目

实例 3.1 兔子繁殖问题(斐波那契数列)

兔子从出生后的第三个月开始,每月都会生一对兔子,小兔子成长到第三个月后也会生一对独自。初始有一对兔子,假如兔子都不死,那么计算并输出1-n个月兔子的数量

n = int(input ())
f1,f2 = 1, 1
for i in range(n):
    print(f1,end = ' ')
    f1,f2 = f2,f1+f2

实例3.5 百分法转换五分法

输入一个整数,当输入不在[0,100]区间时输出提示"DataA Error!";当输入满足要求是,用多分支语句实现百分制转5分制.实现规则是[0,60),[60,70),[70,80),[80,90),[90,100],分别输出字符EDCBA

score = int (input())
if score >100 and score <0:
    print("Data Error!")
elif score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 70:
    print('C')
elif score >= 60:
    print('D')
else:
    print('E')

实例4.2 素数函数

定义一个函数,接受一个正整数的输入,判定其是否为素数.

def is_prime(n):
    if n < 2:
        return False;
    for i in range(2,n):
        if n % i == 0:
            return False
    else :
        return True

if __name__ == '__main__':
    num = int(input())
    print(is_prime(num))

实例5.6 分类统计字符个数

输入一个字符串,以一个回车键结束,统计字符串里的英文字母、数字和其他字符的熟练(回车符代表输入结束,不计入统计)


import string

my_string = input()
litter,digit,other = 0,0,0
for c in my_string:
    if c in string.ascii_letters:
        litter = litter + 1
    elif c in string.digits:
        digit = digit + 1
    else:
        other = other + 1
print("litter = {} ,digit = {} , other = {}".format(litter,digit,other))

实例5.13 模拟微软序列信号

微软产品一般都有一个25位的、用于区分每份产品的产品序列号。产品序列号有5组被“-”分割开来,由字母数字混合编制的字符串组成,每组字符串是由5个字符串组成的。

如:3CVX3-BJWXM-6HCYX-QEK9R-CVG4R

每个字符曲子一下24个字母或数字:

B C E F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9 

方法1:使用字符串

import random

keySn = ''
code = "BCEFGHJKMPQRTVWXY2346789"
for i in range (5):
    s = ''
    for j in range(5):
        s = s + random.choice(code)
    if i == 0:
        keySn = keySn + s
    else :
        keySn = keySn +'-'+ s
print(keySn)

方法二:使用列表

import random

keySn = []
code = "BCEFGHJKMPQRTVWXY2346789"
for i in range(5):
    s = random.sample(code,5)
    keySn.append(''.join(s))
print(keySn)
print('-'.join(keySn))

实例6.1 成绩统计分析

有10名学生的Python课程成绩为94,89,96,88,92,86,69,95,78,85,利用列表分析成绩输出平局值,最高的三个成绩,最低的三个成绩,成绩中位数

scores = [94,89,96,92,88,86,69,95,78,85]
count = len(scores)
scores.sort()
print(sum(scores)/count) #平均成绩
print("后三名:",scores[:3])
print('前三名:',scores[-1:-4:-1])
if count%2 == 0:
    n = int (count /2)
    sum1 = scores[n]
    sum2 = scores[n - 1]
    sum =(sum2+sum1)/2
    print("成绩中位数为:{}".format(sum))
else:
    n = int ((count-1)/2)
    print("成绩中位数为:{}".format(scores[n]))

将文件的数据读取为列表形式

scores =[]
with open('6.1 score.txt','r',encoding='utf-8') as data:
    for line in data:
        line = line.strip()
        line = line.split()
        line = int(line[1])
        scores.append(line)
print(scores)

#以上可以简化为
scores =[]
with open('6.1 score.txt','r',encoding='utf-8') as data:
    for line in data:
        scores.append(int(line.strip().split()[1]))
print(scores)

实例6.5 文件中数据统计分析

现在有包含若干学生学习资料的文件,每位学生都有4门课程,要求读取附件文件中的数据,计算每个学生的平均成绩,并添加到最后一列,然后按照平均分升序排序后输出

输出平均分最高的学生的姓名和平均成绩

注意:如果是自己编写附件,则需要将附件中的符号全部更改为英文半角,否则会导致第三行代码报错;第四行代码意为以序号为6的元素大小比较

with open ('6.5 score.txt','r',encoding='utf-8') as f:
    ls = list(i.strip().split(',') for i in f)
score = [x+[sum(map(int,x[2:]))/len(x[2:])] for x in ls]
score.sort(key=lambda x:x[6])
print("{} {}".format(score[-1][1],score[-1][-1]))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值