zoukankan      html  css  js  c++  java
  • 判断Python输入是否为数字、字符(包括正则表达式)

    当键入字符串时候,我们自己就可以判断了!

    一:我们在程序把输入的数字当字符串处理

    import re
    print("我现在要写一个文件数字猜游戏数字游戏:")
    
    
    temp=input("请你输入一个数字,猜对了有奖,猜错了,没有关系:")
    guess=str(temp)
    
    
    while guess != '8':
            temp=input("还没有猜对,继续猜猜看,不要放弃:")
            guess=str(temp)
    
    
    if guess == '8':
        print("你猜对了!")
    else:
        if guess > '8':
            print("数字猜大了!")
        else:
            print("数字猜小了")
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    二:用isdigit()的方法

    str=input("请输入数字:")
    if str.isdigit():
        print("对了,你输入的是数字")
    else:
        print("你输入的不是数字")
    • 1
    • 2
    • 3
    • 4
    • 5

    三:两种计算长度的方法

    第一种:利用str函数将数字转化成字符串,再利用len函数判断位长。

    a=Int(raw_input("the number you want type in:")  
    b=len(str(a))  
    print b  
    • 1
    • 2
    • 3

    第二种:除数判断

    c=0    
    a=int(raw_input("the number you want type in:"))  
    while a!=0:  
          a=a/10  
          c +=1  
    print c  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    四:在接收raw_input方法后,判断接收到的字符串是否为数字

    例如:

    str = raw_input(“please input the number:”)

    if str.isdigit():

    为True表示输入的所有字符都是数字,否则,不是全部为数字

    str为字符串
    str.isalnum() 所有字符都是数字或者字母
    str.isalpha() 所有字符都是字母
    str.isdigit() 所有字符都是数字
    str.islower() 所有字符都是小写
    str.isupper() 所有字符都是大写
    str.istitle() 所有单词都是首字母大写,像标题
    str.isspace() 所有字符都是空白字符、 、 、

    上述的主要是针对整型的数字,但是对于浮点数来说就不适用了,那么浮点数怎么判断呢,一直在纠结这个问题,为什么非要区分整型和浮点数呢,既然都是参与运算的,全部适用浮点数不是一样吗,在得到结果后,直接转换为int型不是一样吗,为什么非要纠结在前期去判断是否整型或者浮点数呢,有了这样的思路,下面就好做了,例如:

    我们可以通过异常来判断,异常语法如下:

    try:
    {statements}
    exception: {Exception Objects}
    {statements}

    str = raw_input(“please input the number:”)

    try:
    f = float(str)
    exception ValueError:
    print(“输入的不是数字!”)

    ==========================================================

    还有一种纯粹判断是否为浮点数的方法,使用正则表达式:

    引用re正则模块

    import re

    float_number = str(input(“Please input the number:”))

    调用正则

    value = re.compile(r'^[-+]?[0-9]+.[0-9]+$')
    
    result = value.match(float_number)
    
    if result:
        print "Number is a float."
    
    else:
        print "Number is not a float."
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 关于这个正则表达式,解释一下:

    ^[-+]?[0-9]+.[0-9]+$

    ^表示以这个字符开头,也就是以[-+]开头,[-+]表示字符-或者+之一,

    ?表示0个或1个,也就是说符号是可选的。

    同理[0-9]表示0到9的一个数字,+表示1个或多个,也就是整数部分。

    .表示的是小数点,是转义字符因为.是特殊符号(匹配任意单个除 之外的字符),

    所以需要转义。

    小数部分同理,$表示字符串以此结尾。

    正则用得也不多,有错误的地方请大家指正。

  • 相关阅读:
    FusionCharts ScrollColumn2D图
    Java Web项目部署Tomcat运行出错
    Eclipse部署Java Web项目到Tomcat出错
    JavaScript过滤特殊字符
    pl/sql 在一个程序块里打印日志输出到表格
    Java中过滤出字母、数字和中文的正则表达式
    pl/sql 程序块里打印问题
    C++函数的Boost内存池性能介绍
    boost内存池的使用介绍
    内存管理 Boost::singleton_pool
  • 原文地址:https://www.cnblogs.com/yzxing/p/8975126.html
Copyright © 2011-2022 走看看