Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

Python——Python中没有Char类型


没有Char类型

不同于C++和Java等语言,Python中没有字符char类型,只有字符串类型


关于字符类型的操作

  • 把长度为1的字符串当成字符来操作,比如函数ord(s)中只要s的长度为1(len(s) == 1)即可,否则ord函数抛出异常
    • 长度为1的字符串本质上还是一个字符串类型<type str>
  • 判断字符串某一位置的字符时直接比较即可,如:
    1
    2
    3
    4
    5
    6
    7
    s = "12345"
    if s[2] == '2':
    print s[3]
    # 等价于
    if s[2] == "2":
    print s[3]
    # "2"和'2'都是<type str>类型的

Python——strip函数用法注意事项


整体说明

  • strip() 方法容易误解,使用时可能会发生未知问题,所以要小心
  • strip() 方法会从字符串的开头和结尾移除指定的字符,但它是逐个字符进行匹配的,而不是匹配整个子字符串
    • 即把输入参数当做一个字符集合(注意是一个字符集合而不是一个字符串)
    • 后续的文字只要在这个集合内都会被清除掉,知道遇到第一个不在这个字符集合的字符为止

具体示例分析

  • 下面是一个简单示例:

    1
    2
    string = "SYSTEM:You are an AI assistant. You will be given a task.  "
    print(string.strip('SYSTEM:'))
    • 上面的句子输出是 "ou are an AI assistant. You will be given a task. "(注意:"SYSTEM:Y" 都被删除了,不仅仅是 "SYSTEM:")
  • 具体来说,当执行 strip('SYSTEM:') 时:

    • strip() 会把 'SYSTEM:' 看作是一个字符集合 :{'S', 'Y', 'S', 'T', 'E', 'M', ':'}
    • 从字符串开头开始,逐个检查字符是否在这个集合中:
      • 'S' 在集合中,移除
      • 'Y' 在集合中,移除
      • 'S' 在集合中,移除
      • 'T' 在集合中,移除
      • 'E' 在集合中,移除
      • 'M' 在集合中,移除
      • ':' 在集合中,移除
      • 'Y' 在集合中,移除(这里是 “You” 的 ‘Y’)
      • 'o' 不在集合中,停止移除,后续的字符都不再移除
  • 所以最终结果是 "ou are an AI assistant. You will be given a task. "

  • 如果你想移除特定的前缀字符串,应该使用:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 方法1:使用 removeprefix() (Python 3.9+)
    result = string.removeprefix('SYSTEM:')

    # 方法2:使用字符串切片
    if string.startswith('SYSTEM:'):
    result = string[7:] # 'SYSTEM:' 长度为7

    # 方法3:使用 replace() (但要小心,会替换所有匹配项)
    result = string.replace('SYSTEM:', '', 1) # 只替换第一个
  • 这样就能得到正确的结果:"You are an AI assistant. You will be given a task. "

1…268269270…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4