编程判断实现以下功能注意非数字也显示“no”

对于任意输入的有数字字符组成的字符串,如果最高位数字等于其余各位数字之和,则显示“yes”,否则显示“no”继续执行,直到输入“quit”结束

思路代码如下,需不需要考虑输入空值,我这里没有考虑,需要考虑的话我再改改

while(True):
    x = input("请输入数字字符串(quit退出):")
    if x == 'quit':
        break
    # 尝试转型
    try:
        # 将字符串转换为列表
        x_list = [int(i) for i in x]
    # 有非数字:输出no后重新开始
    except ValueError:
        print("no")
        continue
    # 获取最高位
    high = x_list[0]
    # 获取除最高位外其他位的数,并求和
    datas = x_list[1:]
    all = sum(datas)
    # 判断
    if high == all:
        print("yes")
    else:
        print("no")

img

代码如下。如果解决问题,请点击一下采纳谢谢:

while 1:
    inp = input()
    if inp == 'quit':
        break
    max = 0
    sum = 0
    for x in inp:
        try:
            x = int(x)
            if not max:
                max = x
            else:
                sum += x
        except:
            pass
    if max == sum:
        print('yes')
    else:
        print('no')