Python第四章作业题文件操作
1(10分)
基本要求:
输出提示信息:“请输入1-100之间的整数:”接收用户键盘输入,如果输入的是1-100之间的整数,输出“您输入的是整数:xx”,程序结束运行;如果输入的不是整数,或不在指定的范围,输出“对不起,您的输入无效,请重新输入!”,直到用户输入正确为止。
提高要求:
(1) 当用户输入不符合要求时,能够根据用户输入,指出错误类型。例如:“对不起,您输入的数字范围不正确”或“对不起,您输入的不是整数”等。
(2) 当输入无效时,最多只允许输入3次,超过3次无效输入,则提示“对不起,您已经3次输入错误,程序退出。”,并退出程序。
提示:判断输入是否为整数,可以使用字符串对象的方法str.isdigit(),也可以尝试采用其他方法。
仅需提交一份程序代码。
完成基本要求,满分6分。
完成提高要求,满分10分。
#输入无效次数
Time = 3
while Time>0:
Input =input("请输入1-100之间的整数:")
#标记符,输入有效记为1,无效记为0
Flag = 1
if Input.isalpha():#输入的全是字母
if Time ==1:
print("对不起,您已经3次输入错误,程序退出")
exit(0)
else:
print("对不起,您输入的全是字母")
Falg =0
Time -=1
elif Input.isdigit():#输入的全是数字
n = (int)(Input)
if n>=1 and n<=100:
#输入的是整数
if n%1==0:
print("您输入的整数是:%d"%(n))
#输入的是小数
else:
print("对不起,您输入的不是整数")
#标记此时开始计算输出次数
Flag = 0
Time -=1
else :
if Time ==1:
print("对不起,您已经3次输入错误,程序退出")
exit(0)
else:
print("对不起,您输入的数字范围不正确")
Flag =0
Time -=1
else:#既不全是字母也不全是数字
if Time ==1:
print("对不起,您已经3次输入错误,程序退出")
exit(0)
else:
print("对不起,您输入的是字符加数字")
Falg =0
Time -=1
(20分)
作业题2
要求用户输入一个1-100之间的整数。在屏幕上输出1-1000中所有可以被这个输入数字整除的整数,并把它们写入文本文件中。
1.基本要求:
(1) 接收用户输入,并判断是否为1-100之间的整数。如果输入符合要求,则继续执行第(2)步,否则结束程序。
(2) 根据用户输入,在屏幕上输出1-1000中,所有可以被这个数字整除的数字,并打印序号。序号从1开始,依次加1.
例如,用户输入20,的情况:
请输入一个1-100之间的整数:20
1 20
2 40
3 60
4 80
5 100
…
46 920
47 940
48 960
49 980
50 1000
(3)将第(2)步的输出结果,写入C盘根目录下的文本文件中,文件名为“x的倍数.txt”,例如,输入20,则文件名为:“20的倍数.txt”。
(4) 添加必要的注释,说明程序设计思路。
2.提高要求:
(1) 如果输入不符合要求,则要求用户重新输入,并给出提示信息。具体要求参见第4讲单元作业1。
(2) 将基本要求中的(1)和(2),通过函数实现。
(3) 在程序中需要的地方,捕捉异常,或使用with语句管理资源。
说明:提交一份程序代码即可。根据实现功能综合得分。
满足基本要求最高14分,满足提高要求最高20分。
def FileSave(n):
j = 0
# 用R反转义
name = r"C:\Users\86158\" + str(n) + "的倍数.txt"
with open(name, 'w') as f:
for i in range(1, 1001):
if i % n == 0:
j += 1
print(j, " %d" % (i))
str1 = str(j) + " " + str(i) + "n"
f.write(str1)
f.close()
def Input_Fountion():
while True:
Input = input("请输入1-100之间的整数:")
if Input.isalpha(): # 输入的全是字母
print("对不起,您输入的全是字母")
exit(0)
elif Input.isdigit(): # 输入的全是数字
n = (int)(Input)
if 1 <= n <= 100:
# 输入的是整数
if n % 1 == 0:
FileSave(n)
exit(0)
# 输入的是小数
else:
print("对不起,您输入的不是整数")
exit(0)
else:
print("对不起,您输入的整数范围不正确")
exit(0)
else: # 既不全是字母也不全是数字
print("对不起,您输入的是字符加数字")
exit(0)
if __name__ == "__main__":
Input_Fountion()