python基本语法:基本数据类型—String

String类型

@字符串是以”(单引号) 或 “”(双引号) 括起来的任意文本,比如’dfd’ “dsfdsf”

  • ”(单引号)或 “” (双引号)本身只是一种表示方式,不是字符串的一部分
  • 如果’本身想表达是’这个字符,需要用双引号引起来
  • 字符串是不可变的
  • pyhton 中没有字符的概念,只要用引号引起来的都是字符串
一、字符串的创建
str1 = 'hello'
str2 = "Hello"
print(str1)
print(type(str1))
print(str2)
print(type(str2))

这里写图片描述

二、字符串的运算
# 1、字符串的拼接:将两个字符串连接在一起  +
print(1 + 2)   # 数学上的加法
str1 = "hello"
str2 = "你好"
str3 = str1 + str2
print(str3)

# 2、输出重复字符串 *
print(str1 * 3)

# 3、通过索引获取字符串中的字符,索引从0开始;访问字符串中的某个字符
# 语法格式:str[index]
str4 = "世界和平 北京你好"
print(str4[0])
# print(str4[9])  # IndexError: string index out of range
# 如果下标越界会报索引错误

# 4、字符串是不可变的,如果改变某个下标对应的字符会报错
str5 = "hello"
# str5[1] = "a"  #TypeError: 'str' object does not support item assignment
print(str5)

# 5、截取字符串的一部分
str6 = "世界和平 北京你好"
# 从给定下标开始截取到给定下标之前
# 语法格式 : str[start,end]  不包含结束下标
str7 = str6[1:6]
print(str7)

# 从头开始截取到给定下标之前
str8 = str6[:6]
print(str8)
# 从开始下标截取到字符串末尾
str9 = str6[6:]
print(str9)

# 6、判断字符串中是否包含给定的字符
str10 = "世界和平 北京你好"
print("北京" in str10)
print("北京" not in str10)

# 7、格式化字符串
#  %s  格式化字符串
#  %d  格式化整数
#  %f  格式化浮点数  浮点数精度确定:%6.2f 表示包含小数点一共六位,2表示小数点后共两位
#  %e或%E  科学计数法
#  %o  八进制
#  %x  十六进制
#  语法格式: 字符串(字符串占位) % () 一一对应
name = 'lily'
age = 18
weight = 51.2
print("姓名是%s,年龄是%d,体重是%fkg" % (name,age,weight))
print("姓名是%s" % name)

print("%.2f" % 2.33333 + "%")  #2.33%
# 当字符串中有格式化出现时,两个%%表示一个
print("%.2f%%" % 2.33333)      #2.33%

# 8、 转义字符 \
# 有实际意义:将某些本身没有意义的字符转成有实际意义的字符,\本身有实际意义
# \n 换行   
str11 = "hello\nworld"
print(str11)
# \'  ---->  '
# \"  ---->  "
# \\  ---->  \
print("\'")

# \t   横向制表  table
# \r   回车     return
# \b   退格     backspace

# 输出\n
print("\\n")

# 保留原始字符不转义
#  r   R 原始字符串:所有字符串直接按照字符串意思展示,没有转义
print(r"\n")

这里写图片描述

三、字符串内嵌函数

# 1、eval(str) : 将str当成有效的表达式来计算并返回结果,结果为数值类型
num = eval("123")
print(num)  # 123
print(type(num))  # <class 'int'>
print(eval("+123"))  # 123
print(eval("-123"))  # -123
print(eval("12 - 3"))  # 9
# print(eval("a123"))  # SyntaxError: invalid syntax

# 2、len(str)      返回字符串长度,字符串的字符个数
#    lower()       将字符串中的所有大写字母转为小写
#    upper()       将字符串中的所有小写字母转为大写
#    swapcase()    将字符窜的字母所有小写转为大写,大写转为小写
#    capitalize()  将字符串的第一个字符转为大写,其余是小写
#    title()       返回标题化字符串:就是将字符串所有单词第一个字母大写
str1 = "hello Is niHao"
print(len(str1))  # 14
print(str1.lower())  # hello is nihao
print(str1.upper())  # HELLO IS NIHAO
print(str1.swapcase())  # HELLO iS NIhAO
print(str1.capitalize())  # Hello is nihao
print(str1.title())  # Hello Is Nihao

# 3、str.center(width, fillchar)
# 返回一个指定宽度width的居中的字符串,str这个字符串居中,其他位置用fillchar补全,默认为空格
str2 = "pycMM"  
print(str2.center(15,"*"))  # *****pycMM*****

# 左对齐 ljust(width,fillchar)   返回一个指定宽度width的居中的字符串,str这个字符串左对齐,其他位置用fillchar补全,默认为空格
# 右对齐 rjust(width,fillchar)   返回一个指定宽度width的居中的字符串,str这个字符串右对齐,其他位置用fillchar补全,默认为空格
print(str2.ljust(15,"*"))  # pycMM**********

# zfill(width)   返回一个指定宽度width的字符串,原始字符串右对齐,其他位置填充0
print(str2.zfill(12))  # 0000000pycMM

# str.count(str,begin,end): 返回string里面出现str的次数,如果begin end有值,就返回
str3 = 'good very good very good very'
print(str3.count("very"))  # 3
print(str3.count("good",5,21))  # 1

# 4、str.find(str,begin,end)   检测string里面有没有str字符串,如果找到返回第一次出现的下标,否则返回-1
# string.rfind()     效果与find()一样,只不过从字符串右边开始查找
# str.index()   检测string里面有没有str字符串,如果找到返回第一次出现的下标,否则会出现一个错误
# str.rindex()    效果与index() 一样,只不过从右边开始查找
print(str3.find("very"))  # 5
print(str3.find("very",6,20))  # 15
print(str3.find("weew"))  # -1
print(str3.index("very"))  # 5
#print(str3.index("2323"))    会出现一个错误
print(str3.rfind("very"))  # 要完整的查找完这个单词才会读出下标  25
print(str3.rindex("very"))  # 25

# 5、lstrip("")  截掉字符串左边的指定字符,默认为空格
# rstrip()     截掉字符串右边的指定字符,默认为空格
# strip()      在字符串上执行lstrip 与 rstrip 两个操作
str4 = "      MM是 lily    "
str5 = "&&&&&&&&&&是Luck&&&&&&&&&&"
print(str4)            #       MM是 lily    
print(str4.lstrip())   # MM是 lily      
print(str5)               # &&&&&&&&&&是Luck&&&&&&&&&&
print(str5.lstrip('&'))   # 是Luck&&&&&&&&&&

# 6、将字符串转为ASCII码   A--->65   a---> 97
# ord()
# 将数字转为字符
# chr()
print(ord("人"))  # 20154
# print(chr("20154")) 

# 7、切割字符串
# string.split(str,num)  以str切割string这个字符串,返回一个列表数据,如果num有值,那么是以str切割num次
str6 = "mm*142*regtr"
print(str6.split("*"))  # ['mm', '142', 'regtr']
print(str6.split("*",1))  # ['mm', '142*regtr']

# string.splitlines(keepends) 按照行切割(\n   \r   \n\r),返回一个以行为单位的元素列表
# keepends 如果设置为True保留换行符号,如果设置为False不保留换行符号,默认False
str7 = "mm\n142\nregtr"
str8 = """
mm
142
regtr
"""     
print(str7.splitlines())  # ['mm', '142', 'regtr']
print(str8.splitlines())  # ['', 'mm', '142', 'regtr']

# 8、string.join(sep)   以指定的string作为分隔符,将sep里面的元素连接起来
str8 = "*"
list1 = ["hello","nice","good"]
print(str8.join(list1))  # hello*nice*good

# 9、max()返回字符串里面最大字母
# min()返回字符串里面最小字母

# 10、替换,表示
# string.replace(old,new,max)  将string里面的old字符串换成new字符串,如果max有值,最多转换max次
str = "good nice good nice"
print(str.replace("nice","handsome",1))  # good handsome good nice

# maketrans()  创建字符映射转换表,对于接收两个参数的最简单的调用方法,
# 第一个参数是字符串,表示的是需要转换的字符;第二个参数也是字符串,表示的是转换的目标
t = str.maketrans("abc","123")
# 如果只有一个参数,必须是字典类型
t1 = str.maketrans({"a":"1","c":"6"})
# string.translate(table)   根据str给出的表转换string的字符
str11 = "haha nishizuimeibecccccc"
print(str11.translate(t))  # h1h1 nishizuimei2e333333
print(str11.translate(t1))  # h1h1 nishizuimeibe666666

四、用于判断的函数

'''
 isalpha()    如果字符串至少有一个字符,并且所有字符都是字母则返回Ture,否则为False
 isalnum()    如果字符串至少有一个字符,并且所有字符都是字母或数字则返回Ture,否则为False
 isupper()    如果字符串中至少有一个字符,并且所有的字符都是大写返回Ture,否则为False
 islower()    如果字符串中至少有一个字符,并且所有的字符都是小写返回Ture,否则为False
 istitle()    如果字符串中所有字符标题化返回Ture,否则为False
 isdigit()    如果字符串中至少有一个字符,并且所有的字符都是数字返回Ture,否则为False
 isnumeric()  如果字符串中至少有一个字符,并且所有的字符都是数字字符返回Ture,否则为False
 isspace()    如果字符串中只有空格字符返回Ture,否则False
'''
# starstwith(str[,begin,end])  检查字符串是否以str开头,是返回Ture,否则返回False
#  如果指定begin 和 end ,则在指定范围内查找
str1 = "http://www.baidu.com"
print(str1.startswith("ht"))  # True
print(str1.startswith("www"))  # False
print(str1.startswith("www",7,15))  # True
# endswith(str[,begin,end])  检查字符串是否以str结尾,是返回Ture,否则返回False
# 如果指定begin 和 end ,则在指定范围内查找

# encode(encoding)  以encoding指定的编码格式编码字符串
str2 = "qew是个好人"
print(str2)  # qew是个好人
print(str2.encode("utf-8"))  # b'qew\xe6\x98\xaf\xe4\xb8\xaa\xe5\xa5\xbd\xe4\xba\xba'
print(str2.encode("GBK"))  # b'qew\xca\xc7\xb8\xf6\xba\xc3\xc8\xcb'
#decode(encoding)    以encoding指定的编码格式解码字符串
utfStr = str2.encode("utf-8")
print(utfStr.decode("utf-8"))  # qew是个好人
gbkStr = str2.encode("GBK")
print(gbkStr.decode("GBK"))  # qew是个好人
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值