2301_80548897 2024-05-26 01:27 采纳率: 0%
浏览 4

还是python的改错题,尤其第6题,baby都帮我看一下怎么改吧

img

img

img

img

img


非常非常喜欢,多给我点回答,因为基础不好,喜欢大家改错,help me 看看我吧

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-26 01:27
    关注

    引自免费微信小程序:皆我百晓生

    看起来你有多个Python编程练习题需要帮助。我会逐个解答这些问题。让我们先从第6题开始,这是一个计算正整数各位数字之积的问题。

    首先,修复第6题中的错误:

    def fun(num):
        k = 1
        while num:
            # 将这一行修改为
            k *= num % 10
            # 移除这行多余的注释
            # **********FOUND**********
            num //= 10
        return k
    
    def main():
        n = int(input("请输入一个正整数n:"))
        print("各位上的数字之积为:", fun(n))
    
    if __name__ == '__main__':
        main()
    

    接下来是第5题,将输入的字符串转换为大写并保存到文件中:

    def main():
        # 关闭打开的文件句柄,正确地打开文件进行读取和写入
        fp = open('test.txt', 'w')
        string = input("请输入一个字符串:\n")
        # 调用upper方法并赋值给string
        string = string.upper()
        fp.write(string)
        fp.close()
    
    if __name__ == '__main__':
        main()
    

    对于第4题,分解质因数的函数:

    def main():
        x = input("输入一个正整数:")
        if x.isdigit() and int(x) > 0:  # 修改条件判断
            x = int(x)
            t, i = 1, 2
            print(x, end="")
            while t > 0:
                if x % i == 0:
                    print(i, end="")
                    x /= i
                else:
                    i += 1
            print("*")
    
    if __name__ == '__main__':
        main()
    

    第7题,找出小于k的最大10个能被13或17整除的自然数之和:

    def fun(k):
        m = 0
        mc = 0
        while ((k >= 2) and (mc < 10)):
            if (k % 13 == 0) or (k % 17 == 0):
                m += k
                mc += 1
            k -= 1  # 将递增改为递减
        return m
    
    def main():
        print("%d\n" % fun(500))
    
    if __name__ == '__main__':
        main()
    

    第8题,实现简单的用户登录功能:

    def login(username, password):
        if username in ["seven", "alex"] and password == "123":
            print("登陆成功!")
            return True
        else:
            print("登录失败!")
            return False
    
    def main():
        for _ in range(3):  # 使用 "_" 作为迭代计数器,避免不必要的变量定义
            username = input("请输入用户名:")
            password = input("请输入密码:")
            if login(username, password):
                break  # 登录成功后跳出循环
    
    if __name__ == '__main__':
        main()
    

    第9题,合并两个文本文件的内容:

    def write():
        for i in range(2):
            filename = f"test{i}.txt"
            fp = open(filename, 'w')
            string = input("请输入一个字符串:\n")
            fp.write(string)
            fp.close()
    
    def read(filename):
        with open(filename, "r") as f:
            a = f.read()
        return a
    
    def merge_files():
        s = "".join(read("test1.txt") + read("test2.txt"))
        s.sort()
        s1 = "".join(sorted(s))
        with open("test3.txt", "w") as t:
            t.write(s1)
        print("新文件test3.txt的内容为:", s1)
    
    def main():
        write()
        merge_files()
    
    if __name__ == '__main__':
        main()
    

    第10题,找出字典中年龄最大的人的姓名和年龄:

    def find_max(dict):
        max_age = 0
        max_person = None
        for key, value in dict.items():
            if value > max_age:
                max_age = value
                max_person = key
        print("年龄最大的人为:", max_person)
        print("最大年龄为:", max_age)
    
    # 示例数据
    people = {"Alice": 30, "Bob": 45, "Charlie": 25}
    find_max(people)
    

    这些就是对每个问题的修改建议和完整的代码。如果你在其他部分遇到困难,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月26日