实在不会写了,求解答!

1.编写读文件函数,参数为文件路径字符串和长度n,读取该文件的内容,返回前n个字符串的结果 2、编写程序完成如下内容:(1)创建一个你宿舍同学的python成绩的字典,其中key为舍友的名字,成绩为40-60的随机数字,可以用循环来创建(先把舍友名字存成列表)(2)利用lambda函数,对键值对按照成绩进行排序并输出 3编写函数,接收字符串参数,返回一个元组,其中第一个元素为大写字母个数,第二个元素为小写字母个数。.

那么问题来了 你舍友名字-> xiaoming 还是 xiaohong

代码如下:

01.txt

adadadadadada

main.py

# 1.编写读文件函数,参数为文件路径字符串和长度n,读取该文件的内容,返回前n个字符串的结果
# 2、编写程序完成如下内容:
# (1)创建一个你宿舍同学的python成绩的字典,其中key为舍友的名字,成绩为40-60的随机数字,可以用循环来创建(先把舍友名字存成列表)
# (2)利用lambda函数,对键值对按照成绩进行排序并输出
#  3 编写函数,接收字符串参数,
# 返回一个元组,其中第一个元素为大写字母个数,第二个元素为小写字母个数。.n
import random


def func_one(_path, n):
    with open(_path, "r") as fr:
        lines = fr.read()
    return lines[:n]


def func_two(names):
    _dict = {}
    for name in names:
        _dict[name] = random.randint(40, 60)
    print("随机生成的的成绩为:", _dict)
    return dict(sorted(_dict.items(), key=lambda x: x[1]))


def func_three(_str):
    low_total = 0
    up_total = 0
    for char in _str:
        if char.islower():
            low_total += 1
            continue
        if char.isupper():
            up_total += 1
            continue
    return up_total, low_total


print("######################################")
output = func_one("01.txt", 3)
print(output)
print("######################################")

names = ["小明", "小红", "小王"]
result = func_two(names)
print("排序后的成绩为:", result)
print("######################################")

_str = 'afafAAA'
result = func_three(_str)
print("大写个数,小写个数为:", result)

输出为:

######################################
ada
######################################
随机生成的的成绩为: {'小明': 41, '小红': 58, '小王': 53}
排序后的成绩为: {'小明': 41, '小王': 53, '小红': 58}
######################################
输入字符串为: afafAAA
大写个数,小写个数为: (3, 4)

如有问题及时沟通


import numpy as np

##1
def getstrn(path,n):
    with open('D:/ZZF/addcode/sra-long-ids.txt') as f:
        ss=f.read()
    return ss[0:n]

##2.1
keys=['name1','name2','name3']

dit={}
for k in keys:
    dit[k]=np.random.randint(40,60)

##2.2
dit2=sorted(dit.items(),key=lambda x:x[1])
for i in dit2:
    print(i[0],i[1])

##2.3
def getAz(str1):
    n1=[i.isupper() for i in str1]
    n2=[i.islower() for i in str1]
    return (sum(n1),sum(n2))

print(getAz('AAAaaaaa'))