Python字符串类型

Python字符串类型


1. 字符串的定义

python 复制代码
str1 = 'abc'
str2 = "abc"
str3 = """
abc
多行定义
"""

2. 字符串的运算

python 复制代码
#字符串的运算  加法运算  拼接
print("abc"+"cde")
#乘法运算
print("abc"*3)
# 大小比较  根据编码进行比较
print("abc" > "xyz")

编码标准

ASCII编码是由美国制定的,包含一些字母、符号、阿拉伯数字等

unicode 编码是万国码 包含了中文 韩文 日文等等

UTF-8unicode编码的实现方式(中文占三个字节)

GBK 是中国定义的编码实现方式(中文占两个字节)

复制代码
print( ord("中"))   # --》 字符到unicode的转换
print( bin(20013) )  # --》整数到二进制的转换
print("中".encode('utf-8'))  # 保存为utf-8 形式
print("中".encode('gbk'))  # 保存为gbk 形式
print(b'\xe4\xb8\xad'.decode('utf-8')) # 二进制转字符串
#20013
#0b100111000101101
#b'\xe4\xb8\xad'
#b'\xd6\xd0'

转义字符

\+特殊字符表示特殊含义,成为转移字符,如:

python 复制代码
\n   换行
\t   占位符
\a   报警
\\   单单表示\
\"   单单代表"

字符串的格式化

python 复制代码
name = input("请输入用户名\n")
age = input("请输入用户的年龄\n")
#方法一:百分号格式化
print("name is %s,age is %s"%(name,age))

#方法二:format格式化
print("name is {},age is {}".format(name,age))
print("name is {1},age is {0}".format(age,name))
print("name is {name},age is {age}".format(name = name,age = age))

#方法三:f标志位格式化(最常用)
print(f"name is {name},age is {age}")

字符串的截取

python 复制代码
str1 = "abcd1234"
# 正向  0  1  2  3  4  5  6  7
# 逆向 -8 -7 -6 -5 -4 -3 -2 -1
print(str1[0:2:1])  #ab
print(str1[0:2:])   #ab
print(str1[2:])     #cd1234
print(str1[-1:-9:-1]) #4321dcba
print(str1[-2:2:-1]) #321d
print(str1[::-1]) #4321dcba
#str[start : end :step]   start 和 end 的值默认指向 开头和结尾   step 默认是1 都可以省略
# 先确定step 为正还是为复   step 为正  从前往后截取   step 为负  从后往前截取
# 再确认start  end 的位置  start在 end的前面
# 确认step 的值

字符串的遍历

python 复制代码
# 遍历
for i in "abcxyz":
    print(i)

3. 字符串的方法

Python里面一切皆对象 ,查看String的内置方法

python 复制代码
str1 = "abcd"
print( dir( str1 ))

它包含的内置方法有:

python 复制代码
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

判断类型

方法 功能
isalpha() 判断是否全为字母
isdigit() 判断是否全为数字
isalnum() 判断是否为数字或字母
isnumeric() 判断是否为数字(包括汉语)
isidentifier 判断是否符合标识符
istitle 判断是否符合标题规则
startswith("abc") 判断是否以"abc"开头
endswith("abc") 判断是否以"abc"结尾
isupper() 判断是否为大写
islower() 判断是否为小写
python 复制代码
str1 = "123456"
str2 = "中文"

#判断类型
print( str2.isalpha() )  #判断是否全为字母

print( str1.isdigit() )  #判断是否全为数字

print( str1.isalnum() )  #判断是否为数字字母

print( str1.isidentifier() )  #是否符合标识符

print( str1.isnumeric() )   # 一、二、三 也包含进去了

print( "Hello The World".istitle() ) #判断是否为标题字符  单词首字母大写,其他字母小写  重点

print( str1.startswith("a") )   #判断是不是以什么什么开始
print( str1.endswith("a") )    # 判断是不是以什么什么结束

统计类型

方法 功能
count("abc") 统计abc出现的次数
len(str1) 统计字符串str1的次数
index("abc") 统计字符串"abc"第一次出现的索引下标
find("abc") 统计字符串"abc"第一次出现的索引下标

findindex的区别:find如果没有找到返回值是-1 ,index如果没有找到会抛出异常

python 复制代码
#统计字符串的长度
str1 = "abcd"
print( len(str1) )

#统计字串出现的此处
print(str1.count("a"))

#统计第一次出现的下标的位置
print(str1.index("c"))

#统计第一次出现的下标位置
print( str1.find("c"))

#find和index的区别  index如果没找到就会抛出异常  find如果没有找到就会返回-1 不会终止程序

转换类型

方法 功能
upper() 转换为大写
lower() 转换为消息
swapcase() 大小写互换
strip() 去除首末的空格
lstrip() 去除左边的空格
rstrip() 去除右边的空格
title() 转换成标题格式
"#".join(['a','c','d']) 将字符串用#拼接起来
replace("$","%") 将字符串中的$替换成%
python 复制代码
str1 = "HUAUN"
print(f"转换为大写{str1.upper()}")
print(f"转换为小写{str1.lower()}")
print(f"大小写互换{str1.swapcase()}")
print(f"去除首尾字符{"#abc#".strip("#")}")  #默认去除首尾空白 lstrip 去除左边
#大小写转换一般出现在大小写不敏感

print(f"hello world".title())

print(f"{str1.split()}")  #字符串写个,默认是以空白进行切割  切割得到的是列表

#字符串的连接
print(f"{'#'.join(['a','b','c'])}")

#字符串的替换
print("abc%xyz%".replace('%','$',1))

填充属性

方法 功能
center(100,"*") 用*填充满100个字符
ljust(100,"*") 左填充
rjust(100,"*") 右填充
python 复制代码
str3 = "welcome HUAUN"
print(str3.center(100,'*'))
print(str3.rjust(100,'*'))
print(str3.ljust(100,'*'))
print(str3.zfill(100))

4. 小练习:

从键盘接收任意字符串输入 然后按顺序拿取出里面的大写小写和数字再判断拿取出的字符是否为回文

python 复制代码
str1 = input("请输入一串字符串")
small = ""
big = ""
num = ""
for i in str1:
    if i >= 'a' and i <= 'z':
        small=small+i
    if i >= 'A' and i <= 'Z':
        big=big+i
    if i >= '0' and i <= '9':
        num=num+i

if samll[::] == small[::-1]:
    print(small[::1],"是回文")
if big[::] == big[::-1]:
    print(big[::1],"是回文")
if num[::] == num[::-1]:
    print(num[::1],"是回文")

用字符串的方法判断输入的数是整型、浮点型还是其他

python 复制代码
str1 = input("请输入\n")
str2 = str1
if str1.startswith("+") or str1.startswith("-"):
    str2 = str1 [1:]
intflag = 0
if str2.isdigit():
    intflag = 1
    print(f"{str1}是整数")

a = str2.split(".")
charflag = 0
if len(a) == 2:
    for i in a:
        if not i.isdigit():
            charflag = 1
            break
    if charflag:
        print(f"{str1}是其他")
    else:
        print(f"{str1}是浮点数")
else:
    if intflag ==0:
        print(f"{str1}是其他")
相关推荐
Lyinj5 小时前
从一个编辑校验问题谈接口设计的边界
java·spring boot·python·学习
纪伊路上盛名在5 小时前
文献阅读自动化1-批量检索、更新文献
python·自动化·文献阅读·科研日常·流程化
徐子元竟然被占了!!5 小时前
Linux-chown
java·linux·运维
gf13211115 小时前
python_图片、字幕文本、音频一键组合
python·音视频·swift
Apibro5 小时前
【LINUX】QEMU执行第一个驱动
linux
查拉图斯特拉面条5 小时前
UI自动化断言完全指南:从基础到高级的断言表达式实战
python·自动化
RisunJan5 小时前
Linux命令-getsebool命令(查询 SELinux 策略中各项布尔值(boolean)的当前状态)
linux·运维·服务器
郭涤生5 小时前
大白话Proactor模式
linux·网络·c++