Python判断字符串只包含数字

一种方法是 a.isdigit(),但这种方法对于包含正负号的数字字符串无效,更为准确的为:

  1. <span style="color: rgb(51, 51, 51); font-family: Verdana, 'Lucida Grande', Lucida, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 19.5px;">#!/usr/bin/python

  2. # -*- coding:utf-8 -*-

  3. #

  4. # http://blog.ithomer.net

  5. import sys  

  6. import math  

  7. # 判断是否为数字

  8. def isNum(value):  

  9. try:  

  10.        value + 1

  11. except TypeError:  

  12. returnFalse

  13. else:  

  14. returnTrue

  15. # 判断是否为数字

  16. def isNum2(value):  

  17. try:  

  18.        x = int(value)  

  19. except TypeError:  

  20. returnFalse

  21. except ValueError:  

  22. returnFalse

  23. except Exception, e:  

  24. returnFalse

  25. else:  

  26. returnTrue

  27. def test1():  

  28.    a = "123abcDE"

  29. print a.isalnum()       # True, 所有字符都是数字或者字母

  30.    a = "abcDE"

  31. print a.isalpha()       # True, 所有字符都是字母

  32.    a = "123.3"

  33. print a.isdigit()       # False, 所有字符都是数字

  34.    a = "abcde"

  35. print a.islower()       # True, 所有字符都是小写

  36.    a = "ABCDE"

  37. print a.isupper()       # True, 所有字符都是大写

  38.    a = "Abcde"

  39. print a.istitle()       # True, 所有单词都是首字母大写,像标题

  40.    a = "\t"

  41. print a.isspace()       # True, 所有字符都是空白字符、\t、\n、\r

  42.    arr = (1, 2.1, -3, -4.5, '123a', 'abc', 'aBC', 'Abc', 'ABC', '\t')  

  43. for a in arr:  

  44. print a,isNum(a)  

  45. '''''

  46.    1 True

  47.    2.1 True

  48.    -3 True

  49.    -4.5 True

  50.    123a False

  51.    abc False

  52.    aBC False

  53.    Abc False

  54.    ABC False

  55.        False

  56.    '''

  57. for a in arr:  

  58. print a,isNum2(a)  

  59. '''''

  60.    1 True

  61.    2.1 True

  62.    -3 True

  63.    -4.5 True

  64.    123a False

  65.    abc False

  66.    aBC False

  67.    Abc False

  68.    ABC False

  69.        False

  70.    '''</span>  

这样更准确一些,适用性也更广。但如果你已经确信没有正负号,使用字符串的isdigit()方法则更为方便。

Python 字符串操作,如string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等

  1. def test2():  

  2. # 复制字符串

  3.    str1 = "ithomer.net"

  4.    str2 = str1  

  5.    str1 = "blog"

  6. print str1, str2        # blog ithomer.net

  7. # 连接字符串

  8.    str1 = "ithomer.net"

  9.    str2 = "blog."

  10.    str2 += str1  

  11. print str1, str2        # ithomer.net blog.ithomer.net

  12. # 查找字符

  13.    str1 = "ithomer.net"

  14.    str2 = ".net"

  15.    pos = str1.index(str2)  

  16. print pos               # 7

  17. # 比较字符串

  18.    str1 = "blog.ithomer.net"

  19.    str2 = "forum.ithomer.net"

  20.    pos = cmp(str1, str2)  

  21. print pos               # -1

  22. # 是否包含指定的字符

  23.    str1 = "blog.ithomer.net"

  24.    str2 = ".ithomer."

  25.    pos = len(str1 and str2)  

  26. print pos               # 9

  27. # 字符串长度

  28.    str1 = "blog.ithomer.net"

  29.    pos = len(str1)  

  30. print pos               # 16

  31. # 字符串大小写转换

  32.    str1 = "blog.ithomer.net"

  33.    str2 = "BLOG.ithomer.NET"

  34. print str1.upper()      # BLOG.ITHOMER.NET

  35. print str2.lower()      # blog.ithomer.net

  36. # 追加指定长度的字符串

  37.    str1 = "blog.ithomer.net"

  38.    str2 = "1234567"

  39.    n = 3

  40.    str1 += str2[0:n]  

  41. print str1,str2         # blog.ithomer.net123 1234567

  42. # 字符串指定长度比较

  43.    str1 = "blog.ithomer.net"

  44.    str2 = "blog.ithomer.NET"

  45.    n = 11

  46. print cmp(str1[0:n], str2[0:n])     # 0

  47. # 复制指定长度的字符

  48.    str1 = "blog.ithomer.net"

  49.    str2 = ""  

  50.    n = 12

  51. print str1[0:n]         # blog.ithomer

  52. # 将字符串前n个字符替换为指定的字符

  53.    str1 = "blog.ithomer.net"

  54.    ch = 'r'

  55.    n = 3

  56. print n*ch + str1       # rrrblog.ithomer.net

  57. # 扫描字符串

  58.    sStr = 'cekjgdklab'

  59.    sStr1 = 'gka'

  60.    nPos = -1

  61. for c in sStr1:  

  62. print c  

  63. print nPos    

  64. # 翻转字符串

  65.    str1 = "ithomer.net"

  66.    str2 = str1[::-1]  

  67. print str1,str2         # ithomer.net ten.remohti

  68. # 查找字符串

  69.    str1 = "ithomer.net"

  70.    str2 = ".net"

  71.    pos = str1.find(str2)  

  72. print pos               # 7

  73. # 分割字符串

  74.    str1 = "blog.ithomer.net"

  75.    str2 = "."

  76.    str3 = str1[str1.find(str2) + 1:]  

  77. print str3              # ithomer.net

  78. print str1.split(str2)  # ['blog', 'ithomer', 'net']

  79. # 连接字符串

  80.    str1 = ['blog', 'ithomer', 'net']  

  81.    str2 = "."

  82.    str3 = str2.join(str1)  

  83. print str3              # blog.ithomer.net

  84. # 只显示字母与数字

  85.    str1 = "521.ithomer.NET $ @ # ! 1314"

  86.    fmt = "abcdefghijklmnopqrstuvwxyz0123456789"

  87. for c in str1:  

  88. ifnot c in fmt:  

  89.            str1 = str1.replace(c,'')  

  90. print str1              # 521ithomer131