说明:本篇博文的知识点大部分来自 Python3 实例

判断数字

判断数字可以使用:


str1 = '123'


def isNum(s):
    try:
        import unicodedata
        unicodedata.numeric(s)
        print(True)
    except(TypeError, ValueError):
        print(False)


isNum(str1)
print(str1.isdigit())
print(str1.isnumeric())
print(isinstance(str1, int))

我发现在python里面,不少函数调用,编译就会报错,需要使用try包起来。
像unicodedata.numeric(s)就是,如果不用try包起来,传入参数类型不对,编译就报错了。
用isdigit() 和 isnumeric()来判断字符串是否只由字符串组成。
不过isnumeric() 只针对unicode对象,这个大家使用时需要注意。

然后我还发现一个很简便的判断类型的方法:
直接对输入的数值进行强制类型转换,转成int,然后使用try包起来,如果进入except,则表示输入的不是纯整数。


def inputOod():
    str3 = input('输入数值:\n')
    try:
        num = int(str3)
        print('{} 是 '.format(num) + ('偶数.' if num % 2 == 0 else '奇数.'))
    except ValueError:
        try:
            num = float(str3)
            print('{} 是 '.format(num) + ('偶数.' if num % 2 == 0 else '奇数.'))
        except ValueError:
            print("输入的不是数值!")


inputOod()

为了判断输入的数值是否是奇偶数,并且整数和小数都需要判断,这里使用try来处理,是我搜寻了好久,最直接,也是最简单的方式了。
在这里插入图片描述

然后本示例代码里面,还有一个很有意思的地方,在format里面,可以使用条件判断拼接的字符串。


int3 = 10
print('{} 是 '.format(int3) + ('偶数.' if int3 % 2 == 0 else '奇数.'))

这里的写法也是很新奇的。

 '偶数.' if int3 % 2 == 0 else '奇数.'

大家以后也可以使用这种方式简化代码。

判断质数


try:
    num = int(input("请输入一个数字: "))
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                print(num, "不是质数")
                print(i, "乘于", num // i, "是", num)
                break
        else:
            print(num, "是质数")
    else:
        print(num, "不是质数")
except ValueError:
    print("输入的不是整数!")

首先对输入类型进行强转,使用try保护,然后循环取余,除了1和本身,某个数值能整除,那就说明不是质数。

运行结果:
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐