python基础题,希望用基础方法解决

编写一个不带参数的ReadListIntegers函数,它允许您读取键盘上输入的正整数或零整数。当您输入负数时,条目停止。该函数返回输入的整数列表。

编写主程序,该程序允许您调用该函数,然后显示使用打印函数获得的列表。

提供带有两个可选参数bmin和bmax的ReadListReelsBorders函数,它允许您读取键盘上输入的实数。当用户输入的值超出区间[ bmin ; 最大] 。默认情况下,min 和 max 的值分别设置为 0 和 100。该函数应该返回一个列表。

定义一个MMSList函数,它将一个列表作为参数,并返回列表的最小值、最大值和总和。
您的函数必须使用while或for循环,并且不得使用Python 中预定义的max、min和sum 函数。

通过使用ReadListReelsTerms在键盘和MMSList上输入实数列表以获取输入值的最小值、最大值和总和来完成您的主程序 。显示在控制台获得的3个值。


def ReadListIntegers():
    nums = []
    while True:
        a = int(input('请输入一个正整数:'))
        if a < 0:
            print('您输入了非正整数')
            break
        else:
            nums.append(a)
    return nums

def ReadListReelsBorders(bmin=0, bmax=100):
    nums = []
    while True:
        a = float(input('请输入一个实数:'))
        if a < bmin or a >= bmax:
            print('您输入了不在有效区间的数')
            break
        else:
            nums.append(a)
    return nums

def MMSList(numList: list):
    min = float('inf')  #默认正无穷
    max = float('-inf')  #默认负无穷
    sum = 0
    for i in numList:
        if i > max:
            max = i
        if i < min:
            min = i
        sum += i
    return min, max, sum

def ReadListReelsTerms(min, max):
    return ReadListReelsBorders(min, max)

if __name__ == '__main__':
    nums = ReadListIntegers()
    print(nums)
    nums2 = ReadListReelsBorders(-100, 100)
    print(nums2)
    min, max, sum = MMSList(ReadListReelsTerms(-100, 100))
    print("最小值:%f 最大值:%f和:%f" % (min, max, sum))
def ReadListIntegers():    
    x = []
    while True:
        n = int(input(">>>"))
        if n < 0:break
        x.append(n)
    return x

def ReadListReelsBorders(bmin=0, bmax=100):
    x = []
    while True:
        n = float(input(">>>"))
        if bmax >= n >= bmin:
            x.append(n)
        else:
            return x
        
def MMSList(l):
    if l == [] :
        return None * 3
    s,mi,ma = [l[0]] * 3 
    for i in l[1:]:
        s += i
        if i < mi:mi = i
        if i > ma:ma = i
    return mi, ma, s

def ReadListReelsTerms():
    x = []
    while True:
        n = float(input(">>>"))
        if n >= 0:
            x.append(n)
        else:
            return x    
if __name__ == "__main__":
    l1 = ReadListIntegers()
    print(l1)
        
        
    l2 = ReadListReelsTerms()
    mii,maa,ss = MMSList(l2)
    print(f"sum:{ss},min:{mii},max:{maa}")

编写三个函数,如下,如有帮助,请采纳~
对于 imput 的数字,一定要用 try except来保障,不然会出现 输入 abc 字符出错的情况

def ReadListIntegers():
    res = []    # 定义输出的列表
    value = input("请输入数值:")
    try:
        while int(value) >= 0:
            res.append(int(value))
            value = input("请输入数值:")
        print(res)
        return res
    except Exception:
        print("输入异常")

def ReadListReelsBorders(bmin=0, bmax=100):
    res = []  # 定义输出的列表
    value = input("请输入数值:")
    try:
        while int(value) >= bmin and int(value) <= bmax:
            res.append(int(value))
            value = input("请输入数值:")
        print(res)
        return res
    except Exception:
        print("输入异常")

def MMSList(datalist):
    pmin = datalist[0]  # 初始化
    pmax = datalist[0]  # 初始化
    psum = 0

    for data in datalist:
        if data < pmin:
            pmin = data
        if data > pmax:
            pmax = data
        psum += data

    print("最小值:%s  最大值:%s  总和:%s" %(pmin,pmax, psum))

if __name__ == '__main__':
    # datalist = ReadListIntegers()
    datalist = ReadListReelsBorders()
    MMSList(datalist)

显示结果为:

请输入数值:1
请输入数值:2
请输入数值:3
请输入数值:3
请输入数值:2
请输入数值:4
请输入数值:0
请输入数值:100
请输入数值:101
[1, 2, 3, 3, 2, 4, 0, 100]
最小值:0  最大值:100  总和:115