Python题目练习-第一部分1-10题

odin_zou 2022-11-10 21:31:09

题目1:输入开始数字与结束数字,打印出区间内的所有素数。

(素数:只能被1和自己本身整除的就是素数)

def is_prime(number):
    if number in (1,2):
        return True
    for idx in range(2,number):
        if number % idx == 0:
            return False
    return True

def print_primes(begin,end):
    for number in range(begin,end+1): 
        if is_prime(number):
            print(f"{number} 是素数")


begin = int(input("请输入初始值:"))
end = int(input("请输入最终值:"))
print_primes(begin,end)

结果:

 

题目2:输入一个数字n,计算1*1+2*2+3*3+。。。+n*n=?

def sum_of_square(n):
    result = 0
    for number in range(1,n+1):
        result += number * number
    return result

n=int(input("请输入n的值:"))
print("n的平方和为:",sum_of_square(n))

结果:

题目3:计算列表中数字的和

def sum_of_list(param_list):
    total = 0
    for item in param_list:
        total += item
    return total

my_list=input("列表:").split(",")
my_list1=[int(my_list[i]) for i in range(len(my_list))]

print(f"列表中总数的和为:",sum_of_list(my_list1))

结果:

 

题目4:输入开始和结束的值(不包含),得到所有偶数,并计算数字范围中的所有偶数

def get_even_numbers(begin,end):
    result = []
    for item in range(begin,end):
        if item %2 == 0:
            result.append(item)
    return result

begin=int(input("输入开始值:"))
end=int(input("输入最终值:"))

print(f"开始值= {begin},结束值= {end},偶数部分为:",get_even_numbers(begin,end))

或者:

begin=int(input("输入开始值:"))
end=int(input("输入最终值:"))

data=[item for item in range(begin,end) if item %2 == 0]

print(f"开始值= {begin},结束值= {end},偶数部分为:",data)

结果:

 

题目5:输入原始元素与需要移除的元素,将移除后的结果显示出来

def remove_elements(list1,list2):
    for item in list2:
        list1.remove(item)
    return list1

listA=input("原始列表:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]
listB=input("移除元素:").split(",")
listB_1=[int(listB[i]) for i in range(len(listB))]

print(f"移除后列表为:",remove_elements(listA_1,listB_1))

或:

listA=input("原始列表:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]
listB=input("移除元素:").split(",")
listB_1=[int(listB[i]) for i in range(len(listB))]

data=[item for item in listA_1 if item not in listB_1]

print(f"移除后列表为:",data)

结果:

 

题目6:输入包含重复元素的数组,返回输出一个元素去重的数组

def unique_list(list1):
    result = []
    for item in list1:
        if item not in result:
            result.append(item)
    return result

listA=input("原始数组:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]

print(f"去重后列表为:",unique_list(listA_1))

或:

listA=input("原始数组:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]

print(f"去重后列表为:",list(set(listA_1)))

结果:

 

题目7:对简单列表排序

(简单列表:元素类型不是复合类型(列表/元组/字典))

listA=input("原始列表为:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]

listA_1.sort()

print(f"结果为:",listA_1)

或:

listA=input("原始列表为:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]

listB=sorted(listA_1)

print(f"结果为:",listB)

结果:(此处为升序排列)

*降序排列:

listA=input("原始列表为:").split(",")
listA_1=[int(listA[i]) for i in range(len(listA))]

listB=sorted(listA_1,reverse=True)

print(f"结果为:",listB)

结果:(此处为降序排列)

题目8:实现学生成绩排序

student=[
    {"学号":1, "名字":"小张", "成绩":88},
    {"学号":2, "名字":"小张", "成绩":99},
    {"学号":3, "名字":"小张", "成绩":78},
    {"学号":4, "名字":"小张", "成绩":86},
]

student_sort=sorted(student,key=lambda x:x["成绩"])

print(f"按成绩排列结果为:",student_sort)

结果:

 

题目9:读取成绩文件排序数据

新建一个<学生数据.txt>文件,内容如下:

 注意,保存该txt文件时需另存为ANSI格式才能保证输出正常,否则中文部分为乱码,且在输入完成后最后加上一个换行符(即回车创造一行空行)否则会出现最后一个字符丢失的情况。

def read_file():
    result = []
    with open("./学生资料.txt","r") as fin:
        for line in fin:
            line=line[:-1]
            result.append(line.split(","))
    return result

def sort_grades(data):
    return sorted(data, key=lambda x:int(x[2]), reverse=True)

def write_file(data):
    with open("./学生资料结果.txt","w") as fout:
        for data_1 in data:
            fout.write(",".join(data_1)+"\n")

data = read_file()
print("读取文件数据为:",data)

data = sort_grades(data)
print("成绩排序为:",data)

write_file(data)

结果:

 

 

题目10:统计学生成绩输出最高分、最低分、平均分

使用题目9中创建的<学生资料.txt>

def compute_score():
    scores = []
    with open("./学生资料.txt") as fin:
        for line in fin:
            line = line[:-1]
            fields = line.split(",")
            scores.append(int(fields[-1]))
    max_score = max(scores)
    min_score = min(scores)
    avg_score = round(sum(scores) / len(scores), 2)
    return max_score,min_score,avg_score

max_score,min_score,avg_score = compute_score()

print(f"最高分为:{max_score},最低分为:{min_score},平均分为:{avg_score}")

结果:

 

...全文
195 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

177

社区成员

发帖
与我相关
我的任务
社区管理员
  • c_university_2801
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧