python第四章作业_Python第四章作业题文件操作-Go语言中文社区

该Python程序要求用户输入1-100的整数,验证输入并输出符合条件的整数及其在1-1000内的倍数,同时将结果保存到文件。程序包含基本和提高两部分要求,涉及用户输入检查、错误提示、循环与条件判断、文件操作等知识点。
摘要由CSDN通过智能技术生成

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分。

382c4cbde20a36399c11f5625347e2f8.png

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值