加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python字符串类型

发布时间:2020-12-20 12:53:20 所属栏目:Python 来源:网络整理
导读:目录 字符串类型 一、字符串(str) 1.1作用 1.2定义 二、如何用 三、字符串类型的内置方法 3.1 优先掌握 3.2需要掌握 3.3其他内置方法 字符串类型 一、字符串(str) 1.1作用 可以用来表示姓名,爱好等 1.2定义 字符就相当于一个一个的山楂,字符串相当于一

目录

  • 字符串类型
    • 一、字符串(str)
      • 1.1作用
      • 1.2定义
    • 二、如何用
    • 三、字符串类型的内置方法
      • 3.1 优先掌握
      • 3.2需要掌握
      • 3.3其他内置方法

字符串类型

一、字符串(str)

1.1作用

可以用来表示姓名,爱好等

1.2定义

字符就相当于一个一个的山楂,字符串相当于一个糖葫芦。字符串就向糖葫芦一样将山楂,串联起来。字符串就像是一串被串联起来的字符,在单引号,双引号或者三引号内包裹的一串字符。需要注意的是,

==三引号内的字符是可以换行的,换行的时候会输出换行==

name1 = 'chen'
name2 = "nick"
print(id(name1))
print(type(name1))
print(name1)
#输出:
2793468686640
<class 'str'>
chen


print(id(name2))
print(type(name2))
print(name2)
#输出:
2659224937200
<class 'str'>
nick
name3 = """chen
nick
"""

print(name3)
#输出:
chen
nick



name4 = '''chen
nick
'''
print(name4)
#输出:

chen
nick

二、如何用

字符串只能加(+),乘(*)以及逻辑比较

字符串的拼接,即重新申请一个小空间把俩个字符串都拷贝到一份后在拼接。而不是把一个小空间的变量值复制到另外一个变量的小空间内,然后拼接。

msg2 = "my name is 'chen'"
msg3 = "my name is 'chen'"
print(msg2+msg3)
#输出:
my name is 'chen'my name is 'chen'

输出:my name is ‘chen‘my name is ‘chen‘

注意:==如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同==

name = 'chen'
print(name * 10)

#输出:

chenchenchenchenchenchenchenchenchenchen

注意:==字符串的乘法只能乘以数字。==

msg1 = 'hello'
msg2 = 'z'
print(msg1 > msg2)
#输出:
False

注意:==字符串比较大小,按照ASCII码比较,比较的是字母的顺序==

三、字符串类型的内置方法

3.1 优先掌握

  1. 按索引取值(只能取不能改变)

    msg = 'hello python'
    print(f"索引为6:{msg[6]}")
    输出:
    索引为6: n
  2. 切片(顾头不顾尾)

    mag = 'hello chen'
    ###### 0123456789  从前往后的索引序号
    ######-10-9-8-7-6-5-4-3-2-1从后往前的索引序号
    ########顾头不顾尾
    
    
    print(mag[3])
    #输出 l
    print(mag[:])
    #输出 hello chen
    print(mag[3:])
    #输出 lo chen
    print(mag[:3])
    #输出 hel
    print(mag[3:8])
    #输出lo ch
    print(mag[::])
    #输出hello chen
    print(mag[::3])
    #输出 hlcn
    print(mag[:3:])
    #输出 hel
    print(mag[3::])
    #输出 lo chen
    print(mag[3:8:2])
    #输出 l h
    print(mag[3:8:])
    #输出 lo ch
    print(mag[3::2])
    #输出 l hn
    print(mag[:8:2])
    #输出 hloc
    print(mag[-2:-5:1])
    #输出
    print(mag[-2:-5:-1])
    #输出ehc
    print(mag[::-1])
    #输出nehc olleh
  3. 长度len

    mag = 'hello chen'
    print(len(mag))
    #输出:
    10
  4. 成员变量in or not in

    mag = 'hello chen'
    print('hello' in mag)
    # 输出:True
    print('chen' not in mag)
    # 输出:False
  5. 移除空白strip

    mag = '&&&hello chen'
    #输出:hello chen
    print(mag.strip('&'))
    #输出:hello chen
    print('&&&hello chen'.strip('& '))
  6. 切分split

    ##split()选中一些符号或者字符
    info = "python:male:30"
    list1 = info.split(":")
    list2 = info.split(":",0)
    list3 = info.split(":",1)
    list4 = info.split(":",2)
    print(list1)
    print(list2)
    print(list3)
    print(list4)
    
    输出:
    ['python','male','30']
    ['python:male:30']
    ['python','male:30']
    ['python','30']
  7. 循环

    mag = 'hello python'
    for i in mag:
        print(i)
    
    
    
    #输出 :
    h
    e
    l
    l
    o
    
    p
    y
    t
    h
    o
    n

3.2需要掌握

  1. Istrip&rstrip

    mag = '&&hello python&&'
    print(mag.strip('&'))
    print(mag.lstrip('&'))##去除首部的
    print(mag.rstrip('&'))## 取出尾部的
    输出:
    hello python
    hello python&&
    &&hello python
  2. lower&upper

    mag = 'HELLO python'
    print(mag)
    print(mag.upper())##大写
    print(mag.lower())## 小写
    
    #输出:
    HELLO python
    HELLO PYTHON
    hello python
  3. startswith&endswith

    mag = 'HELLO python'
    print(mag.startswith('HELLO'))##检测以什么开头
    print(mag.endswith('python'))## 检测以什么结尾
    #输出:
    True
    True
  4. rsplit

    ## 从右边开始切割
    mag = 'hello:python:chen'
    print(mag.rsplit(':'))
    print(mag.rsplit(':',1))
    #输出:
    ['hello','python','chen']
    ['hello:python','chen']
  5. join

    # 拼接
    lis = [1,2,'19']
    print(':'.join(lis))  # 报错,数字不可和字符串拼接
    # str之join()
    lis = ['chen','19']
    
    print(':'.join(lis))
    #输出
    chen:male:19
  6. replace

    msg = 'hello chen'
    print(msg.replace('chen','python'))#替换
    #输出:
    hello python
  7. isdigit

    #检测是否为整数
    salary = '111'
    print(salary.isdigit()) 
    #输出: True
    
    salary = '111.1'
    print(salary.isdigit())  
    #输出: False

3.3其他内置方法

  1. find|rfind|index|rindex|count
  2. center|ljust|rjust|zfill
  3. expandtabs
  4. captalize|swapcase|title
  5. is系列

1.find()、rfind()、index()、rindex()、count()

# str之find()、rfind()、index()、rindex()、count()
msg = 'my name is tank,tank shi sb,hha'

print(f"msg.find('tank'): {msg.find('tank')}")  # 找不到返回-1
print(f"msg.find('tank',3): {msg.find('tank',3)}")
print(f"msg.rfind('tank'): {msg.rfind('tank')}")  # 找不到返回-1
print(f"msg.index('tank'): {msg.index('tank')}")  # 找不到报错
print(f"msg.rindex('tank'): {msg.rindex('tank')}")  # 找不到报错
      

print(f"msg.count('tank'): {msg.count('tank')}")
msg.find('tank'): 11
msg.find('tank',3): -1
msg.rfind('tank'): 17
msg.index('tank'): 11
msg.rindex('tank'): 17
msg.count('tank'): 2

2.center()、ljust()、rjust()、zfill()

# str之center()、ljust()、rjust()、zfill()
print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}")  # 默认用0填充
'info nick'.center(50,'*'): ********************info nick*********************
'info nick'.ljust(50,'*'): info nick*****************************************
'info nick'.rjust(50,'*'): *****************************************info nick
'info nick'.zfill(50): 00000000000000000000000000000000000000000info nick

3.expandtabs()

# str之expandtabs()
print(f"atbtc: %s"%('atbtct'))  # 默认制表符8个空格
print(f"'atbtc'.expandtabs(32): %s"%('atbtct'.expandtabs(32)))
atbtc: a  b   c   
'atbtc'.expandtabs(32): a                               b                               c

4.captalize()、swapcase()、title()

# str之captalize()、swapcase()、title()
name = 'nick handsome sWAPCASE'

print(f"name.capitalize(): {name.capitalize()}")
print(f"name.swapcase(): {name.swapcase()}")  # 大小写互转
print(f"name.title(): {name.title()}")
name.capitalize(): Nick handsome swapcase
name.swapcase(): NICK HANDSOME Swapcase
name.title(): Nick Handsome Swapcase

5.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)

  • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
  • isdigit(): 如果字符串只包含数字则返回True,否则返回False。
  • isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
num = "1"  #unicode
num.isdigit()   # True
num.isdecimal() # True
num.isnumeric() # True

num = "1" # 全角
num.isdigit()   # True
num.isdecimal() # True
num.isnumeric() # True

num = b"1" # byte
num.isdigit()   # True
num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'

num = "IV" # 罗马数字
num.isdigit()   # True
num.isdecimal() # False
num.isnumeric() # True

num = "四" # 汉字
num.isdigit()   # False
num.isdecimal() # False
num.isnumeric() # True

===================
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

================
import unicodedata

unicodedata.digit("2")   # 2
unicodedata.decimal("2") # 2
unicodedata.numeric("2") # 2.0

unicodedata.digit("2")   # 2
unicodedata.decimal("2") # 2
unicodedata.numeric("2") # 2.0

unicodedata.digit(b"3")   # TypeError: must be str,not bytes
unicodedata.decimal(b"3") # TypeError: must be str,not bytes
unicodedata.numeric(b"3") # TypeError: must be str,not bytes

unicodedata.digit("Ⅷ")   # ValueError: not a digit
unicodedata.decimal("Ⅷ") # ValueError: not a decimal
unicodedata.numeric("Ⅷ") # 8.0

unicodedata.digit("四")   # ValueError: not a digit
unicodedata.decimal("四") # ValueError: not a decimal
unicodedata.numeric("四") # 4.0

#"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","亿"

6.is其他

  • isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
  • isalpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
  • islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
  • isspace(): 如果字符串中只包含空白,则返回True,否则返回False
  • isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
  • istitle(): 如果字符串是标题类型的(见title()),则返回True,否则返回False。

4.存一个值or多个值:一个值

5.有序or无序:只要是有索引的,都是有序的,因此字符串是有序的。

name = 'nick'
print(f'first:{id(name)}')
name = 'nick handsome'
print(f'second:{id(name)}')
first:4377100160
second:4377841264

6.可变or不可变:不可变数据类型

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读