Python 学习入门(18)—— 字符串

本文介绍了Python中字符串操作的方法,包括替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等,并详细阐述了如何判断字符串是否仅包含数字以及更准确的判断方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.   
  6. import sys  
  7. import math  
  8.   
  9. # 判断是否为数字  
  10. def isNum(value):  
  11.     try:  
  12.         value + 1  
  13.     except TypeError:  
  14.         return False  
  15.     else:  
  16.         return True  
  17.   
  18. # 判断是否为数字  
  19. def isNum2(value):  
  20.     try:  
  21.         x = int(value)  
  22.     except TypeError:  
  23.         return False  
  24.     except ValueError:  
  25.         return False  
  26.     except Exception, e:  
  27.         return False  
  28.     else:  
  29.         return True  
  30.   
  31.   
  32. def test1():  
  33.       
  34.     a = "123abcDE"  
  35.     print a.isalnum()       # True, 所有字符都是数字或者字母  
  36.   
  37.     a = "abcDE"  
  38.     print a.isalpha()       # True, 所有字符都是字母  
  39.   
  40.     a = "123.3"  
  41.     print a.isdigit()       # False, 所有字符都是数字  
  42.   
  43.     a = "abcde"  
  44.     print a.islower()       # True, 所有字符都是小写  
  45.   
  46.     a = "ABCDE"  
  47.     print a.isupper()       # True, 所有字符都是大写  
  48.   
  49.     a = "Abcde"  
  50.     print a.istitle()       # True, 所有单词都是首字母大写,像标题  
  51.   
  52.     a = "\t"  
  53.     print a.isspace()       # True, 所有字符都是空白字符、\t、\n、\r  
  54.   
  55.     arr = (12.1, -3, -4.5'123a''abc''aBC''Abc''ABC''\t')  
  56.     for a in arr:  
  57.         print a,isNum(a)  
  58.   
  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.     '''  
  71.   
  72.     for a in arr:  
  73.         print a,isNum2(a)  
  74.     ''''' 
  75.     1 True 
  76.     2.1 True 
  77.     -3 True 
  78.     -4.5 True 
  79.     123a False 
  80.     abc False 
  81.     aBC False 
  82.     Abc False 
  83.     ABC False 
  84.         False 
  85.     '''</span>  
这样更准确一些,适用性也更广。但如果你已经确信没有正负号,使用字符串的isdigit()方法则更为方便。


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

  1. def test2():  
  2.   
  3.     # 复制字符串   
  4.     str1 = "ithomer.net"  
  5.     str2 = str1  
  6.     str1 = "blog"  
  7.     print str1, str2        # blog ithomer.net  
  8.   
  9.     # 连接字符串  
  10.     str1 = "ithomer.net"  
  11.     str2 = "blog."  
  12.     str2 += str1  
  13.     print str1, str2        # ithomer.net blog.ithomer.net  
  14.       
  15.     # 查找字符  
  16.     str1 = "ithomer.net"  
  17.     str2 = ".net"  
  18.     pos = str1.index(str2)  
  19.     print pos               # 7  
  20.   
  21.     # 比较字符串  
  22.     str1 = "blog.ithomer.net"  
  23.     str2 = "forum.ithomer.net"  
  24.     pos = cmp(str1, str2)  
  25.     print pos               # -1  
  26.   
  27.     # 是否包含指定的字符  
  28.     str1 = "blog.ithomer.net"  
  29.     str2 = ".ithomer."  
  30.     pos = len(str1 and str2)  
  31.     print pos               # 9  
  32.   
  33.     # 字符串长度  
  34.     str1 = "blog.ithomer.net"  
  35.     pos = len(str1)  
  36.     print pos               # 16  
  37.   
  38.     # 字符串大小写转换  
  39.     str1 = "blog.ithomer.net"  
  40.     str2 = "BLOG.ithomer.NET"  
  41.     print str1.upper()      # BLOG.ITHOMER.NET  
  42.     print str2.lower()      # blog.ithomer.net  
  43.   
  44.     # 追加指定长度的字符串  
  45.     str1 = "blog.ithomer.net"  
  46.     str2 = "1234567"  
  47.     n = 3  
  48.     str1 += str2[0:n]  
  49.     print str1,str2         # blog.ithomer.net123 1234567  
  50.   
  51.     # 字符串指定长度比较  
  52.     str1 = "blog.ithomer.net"  
  53.     str2 = "blog.ithomer.NET"  
  54.     n = 11  
  55.     print cmp(str1[0:n], str2[0:n])     # 0  
  56.   
  57.     # 复制指定长度的字符  
  58.     str1 = "blog.ithomer.net"  
  59.     str2 = ""  
  60.     n = 12  
  61.     print str1[0:n]         # blog.ithomer  
  62.   
  63.     # 将字符串前n个字符替换为指定的字符  
  64.     str1 = "blog.ithomer.net"  
  65.     ch = 'r'  
  66.     n = 3  
  67.     print n*ch + str1       # rrrblog.ithomer.net  
  68.   
  69.     # 扫描字符串   
  70.     sStr = 'cekjgdklab'     
  71.     sStr1 = 'gka'     
  72.     nPos = -1   
  73.     for c in sStr1:   
  74.         print c  
  75.     print nPos     
  76.   
  77.     # 翻转字符串   
  78.     str1 = "ithomer.net"  
  79.     str2 = str1[::-1]  
  80.     print str1,str2         # ithomer.net ten.remohti  
  81.   
  82.     # 查找字符串  
  83.     str1 = "ithomer.net"  
  84.     str2 = ".net"  
  85.     pos = str1.find(str2)  
  86.     print pos               # 7  
  87.       
  88.     # 分割字符串  
  89.     str1 = "blog.ithomer.net"  
  90.     str2 = "."  
  91.     str3 = str1[str1.find(str2) + 1:]  
  92.     print str3              # ithomer.net  
  93.     print str1.split(str2)  # ['blog', 'ithomer', 'net']  
  94.   
  95.     # 连接字符串  
  96.     str1 = ['blog''ithomer''net']  
  97.     str2 = "."  
  98.     str3 = str2.join(str1)  
  99.     print str3              # blog.ithomer.net  
  100.   
  101.     # 只显示字母与数字  
  102.     str1 = "521.ithomer.NET $ @ # ! 1314"  
  103.     fmt = "abcdefghijklmnopqrstuvwxyz0123456789"  
  104.     for c in str1:  
  105.         if not c in fmt:  
  106.             str1 = str1.replace(c,'')  
  107.     print str1              # 521ithomer1314  



Python unicode字节串转成中文问题

Example 1:
>>> s = r"\u65b0\u6d6a\u5fae\u535a\u6ce8\u518c"
>>> s
'\\u65b0\\u6d6a\\u5fae\\u535a\\u6ce8\\u518c'
>>> print s
\u65b0\u6d6a\u5fae\u535a\u6ce8\u518c
>>> s = s.decode("unicode_escape");     #就是这个函数
>>> print s
新浪微博注册


Example 2:
>>> str_ = "Russopho\xe9bic, clichd and just pl\xe9ain stupid."
>>> print str_
Russopho?bic, clichd and just pl?ain stupid.
>>> str_ = str_.decode("unicode_escape")
>>> print str_
Russophoébic, clichd and just pléain stupid.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值