Chinaunix

标题: 【输入一个四位数,逆序输出】分支结构执行出错 [打印本页]

作者: onion0610    时间: 2021-06-03 16:12
标题: 【输入一个四位数,逆序输出】分支结构执行出错

做了一个小练习, 逆序输出一个四位数。
写了一个函数,可以选择4种方法执行。
可是执行的时候不管输入数字几都输出num error

#输入一个四位数,逆序输出
def reverse(a):

    print("*" * 10, "1.使用字符串切片操作", "*" * 10)
    print("*" * 10, "2.使用字符串索引和连接操作", "*" * 10)
    print("*" * 10, "3.使用for循环", "*" * 10)
    print("*" * 10, "4.使用数学方法", "*" * 10)
    num = input("输入选择的方法")
    b = ""
    if num == 1:
        b == str(a)[::-1]

    elif num == 2:
        b = str(a)[3]+str(a)[2]+str(a)[1]+str(a)[0]

    elif num == 3:

        for i in str(a):
            b = i + b
    elif num == 4:
        gw = int(a)%10
        sw = int(a)//10%10
        bw = int(a)//10//10%10
        qw = int(a)//1000
        b = gw*1000+sw*100+bw*10+qw
        # b = str(gw)+str(sw)+str(bw)+str(qw)
    else:
        print("error num")
    print(b)

a = input("请输入一个四位数:")
reverse(a)
运行结果:请输入一个四位数:8765********** 1.使用字符串切片操作 ******************** 2.使用字符串索引和连接操作 ******************** 3.使用for循环 ******************** 4.使用数学方法 **********输入选择的方法3error num

然后我在调试的时候发现一个问题,将代码略作修改就可以正常运行修改后的代码:#输入一个四位数,逆序输出
def reverse(a):

    print("*" * 10, "1.使用字符串切片操作", "*" * 10)
    print("*" * 10, "2.使用字符串索引和连接操作", "*" * 10)
    print("*" * 10, "3.使用for循环", "*" * 10)
    print("*" * 10, "4.使用数学方法", "*" * 10)
    num = input("输入选择的方法")
    b = ""
    if num == 1:
        b == str(a)[::-1]

    elif num == 2:
        b = str(a)[3]+str(a)[2]+str(a)[1]+str(a)[0]

    elif num == 3:

        for i in str(a):
            b = i + b
    else:
        gw = int(a)%10
        sw = int(a)//10%10
        bw = int(a)//10//10%10
        qw = int(a)//1000
        b = gw*1000+sw*100+bw*10+qw
        # b = str(gw)+str(sw)+str(bw)+str(qw)
    print(b)

a = input("请输入一个四位数:")
reverse(a)
以上代码可以正常运行差别就在于最后num==4的时候直接写成else的情况请教一下差别在哪里呢???



作者: landihua    时间: 2021-06-07 16:26
因为你根本没进入其他几个判断,你input的类型是str,判断类型是int,所以else成立,一直走的else
加几行
try:
    num=int(num)
except Excetpion as e:
    print(e)
作者: onion0610    时间: 2021-06-08 16:31
回复 2# landihua

感谢!感谢!粗心了





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2