python自学做题记录之找数字

该博客讲述了如何编写Python程序检查输入的整数中是否包含数字3或4。首先,博主使用ASCII值遍历字符串判断,然后优化了代码,通过直接在字符串中查找'3'或'4'来提高效率。此外,博主还增加了对负数的处理。最终代码简洁且能正确处理各种情况。
摘要由CSDN通过智能技术生成

【问题描述】编写程序实现:对于一个输入的整数n,判断n的各位数中是否包含数字3或4。若包含,则打印true,否则,打印false。

【输入形式】标准输入的一行表示一个整型数值
【输出形式】标准输出的一行表示判断结果;若输入的数值不合法(如:小数等),输出"illegal input"
【样例输入】132
【样例输出】true

这题第一遍的代码思路是遍历字符串,用ASCII值判断是否有3或4,代码如下

n=input()
f=0
if n.isdigit():
    for i in n:
        if ord(i)==51 or ord(i)==52:
            print('true')
            f=1
            break
    if f==0:
        print('false')
else:
    print('illegal input')

提交发现有一个测试点错了,想了一会儿,发现还有负数这种可能性,所以后面加了一个判断语句:如果字符串第一个是负号并且其他的全是数字,结果终于对了

n=input()
f=0
if n.isdigit() or (n[0]=='-' and n.lstrip('-').isdigit()):
    for i in n:
        if ord(i)==51 or ord(i)==52:
            print('true')
            f=1
            break
    if f==0:
        print('false')
else:
    print('illegal input')

后来发现还有一种更快的方法

n=input()
if n.isdigit() or (n[0]=='-' and n.lstrip('-').isdigit()):
    if '3' in n or '4' in n:
        print('true')
    else:
        print('false')
else:
    print('illegal input')
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值