python基础问题

1.怎么让这个代码输出是no和yes 为什么直接修改会不符合代码要求 刚开始学不太懂


import keyword

def Is_legalword(s): 
    for key in s:
        if not key in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_':
            return False
    return True

def Is_legal(s):
    if s[0]=='_' or s[0].isalpha(): 
        if keyword.iskeyword(s): 
             return False
        elif Is_legalword(s):
            return True
        else:
            return False
    else:
        return False

line=input()
print(Is_legal(line))

2.这是十进制数转化二进制的代码
如何添加使这个也能输出二进制中0的个数并且判断n不是整数的情况输出error

a = int(input())
s = ''
if a == 0:
    print('0')
else:
    while a != 0:
        y = a % 2
        a //= 2
        s += str(y)
    print(s[::-1])


if Is_legal(line)==True:
    print('yes')
else:
    print('no')

第二个:

img

a = eval(input())
s = ''
n=0
if a == '0':
    print('0')
else:
    if type(a) == int:
        while a != 0:
            y = a % 2
            if y==0:
                n+=1
            a //= 2
            s += str(y)
        print(s[::-1]+'包含'+str(n)+"个0")
    else:
        print('error')


1.
print('yes' if Is_legal(line) else 'no')
2.你的代码里根本也没有n呀,你想判断是不是整数好歹先把input赋值给n,再判断是否包含点

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632