Python第四章作业题文件操作

Python第四章作业题文件操作

1(10分)

  1. 基本要求:

输出提示信息:“请输入1-100之间的整数:”接收用户键盘输入,如果输入的是1-100之间的整数,输出“您输入的是整数:xx”,程序结束运行;如果输入的不是整数,或不在指定的范围,输出“对不起,您的输入无效,请重新输入!”,直到用户输入正确为止。

  1. 提高要求:

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

发布了50 篇原创文章 · 获赞 24 · 访问量 2426

猜你喜欢

转载自blog.csdn.net/qq_44861675/article/details/104039560