




非常非常喜欢,多给我点回答,因为基础不好,喜欢大家改错,help me 看看我吧
关注引自免费微信小程序:皆我百晓生
看起来你有多个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)
这些就是对每个问题的修改建议和完整的代码。如果你在其他部分遇到困难,请随时告诉我。