python学习之——006String(字符串)

#什么是字符串
#字符串是单引号或双引号括起来的任意文本
#  'abc'   "abc"
#字符串不可变


#创建字符串
str1 = "ben is a good man"
str2 = "ben is a nice man"
str3 = "ben is a handsome man"


#字符串运算  1.字符串连接
str4 = "ben is a "
str5 = "good man"
str6 = str4+str5
print(str6)

#输出重复字符串
str7 = "good"
str8 = str7*3
print("str8= ",str8)

#访问字符串中的某一个字符
str9 = "ben is a good man"
print(str9[1])

#截取字符串
str10 = "ben is a good man"
str11 = str10[4:13]  #[开始字符:结束字符]
print(str11)
#从头截取到下标之前
str12 = str10[:13]
print(str12)
#从给定下标截取到结尾
str13 = str10[13:]
print(str13)

#成员运算符
str14 = "ben is a good man"
print("good" in str14) # 判断 good 是否在 str14里面,真 返回True 假 返回 False
print("good1" not in str14)

print(~5)
'''
00000101
11111010
10000110
'''

#格式化输出
print("ben is a good man")
num = 10
str15 = "ben is a nice man"
f = 10.1234
print("num= ",num)
# .3f 精确到小数点后三位,会四舍五入
print("num = %d,str15 = %s, f = %.3f" % (num,str15,f))
#转义字符   \   将一些字符转换成特殊含义的字符
print("num = %d\nstr15 = %s\nf = %.3f" % (num,str15,f))

#如果字符串内有很多换行,用/n 写在一行不好阅读
print('''
ben
is
a
good
man
''')

#如果字符串很多字符串都需要转义,为了简化,python 允许用r表示内部的字符串默认不转义
print(r"\\\t\\")

#eval()  功能:将字符串str当成有效的表达式来求值,并返回计算结果
num16 = eval("123")
print(num16)
print(type(num16))
print(eval("+123"))
print(eval("-123"))

#len(str)  返回字符串长度(字符个数)
print(len("ben is a good man"))

#lower() 转换字符串的大写为小写
str16 = "BEN is A Good MAN"
print(str16.lower())

#upper() 转换字符串小写为大写
print(str16.upper())

#swapcase()  大写变小写,小写变大写
print(str16.swapcase())

#capitalize() 首字母大写, 其他小写
print(str16.capitalize())

#title 每个单词的首字母大写
print(str16.title())

#center(width,fillchar)  返回一个指定宽度居中的字符串, fillchar为填充字符串,不写默认空格
print(str16.center(40,"*"))

#ljust(width[,fillchar]) 返回一个指定宽度的左对齐字符串, fillchar为填充字符串,不写默认空格
print(str16.ljust(40,"%"))

#rjust(width[,fillchar]) 返回一个指定宽度的右对齐字符串, fillchar为填充字符串,不写默认空格
print(str16.rjust(40,"%"))

#zfill(width) 返回一个长度为width的字符串,字符串右对齐,前面补0
print(str16.zfill(40))

#count(str[,start][,end]) 返回字符串str出现的次数,可以指定一个范围,默认从头到尾
str17 = "a a a abaafafaaf"
print(str17.count("a",2,len(str17)))

#find(str[,start][,end]) 检测str是否包含在字符串中,可以指定范围,默认从头到尾,得到第一次出现开始的下标,没有返回-1
print(str17.find("a"))
print(str17.find("c"))

#rfind(str[,start][,end])  从右向左查找
print(str17.rfind("a"))
print(str17.rfind("c"))

#index(str,start=0,end=len(str))  和find一样,只不过如果str不存在的时候回报一个异常
print(str17.index("a"))
#print(str17.index("c"))

#rindex(str,start=0,end=len(str)) 从右开始找
print(str17.rindex("a"))
#print(str17.index("c"))

#lstrip 截掉左侧指定字符,默认空格
str18 = "         aaa"
print(str18.lstrip())

#rstrip 截掉右侧指定字符,默认空格
str19 = "         aaa        "
print(str19.rstrip())

#strip 截取左右侧字符,默认空格
print(str19.strip())

#split(str="",num)
#以str为分隔符截取字符串,指定num,则截取num个字符串
str20 = "ben is a good man"
print(str20.split(" ",1))
list21 = str20.split(" ")

c =  0
for s in list21:
    if len(s) > 0:
        c += 1
print(c)


#splitlines(keepends)  按照('\r','\r\n','\n') 分割,返回
#keepends = True 会保留换行符
str21 = '''a
b
c
d
'''
print(str21.splitlines())
print(str21.splitlines(True))

#join(seq) 以指定的字符串分隔符,将seq中的所有元素组合成一个字符串
str22 = ['a', 'b', 'c', 'd']
str23 = " ".join(str22)
print(str23)

#max() min()
str24 = "ben is a good man"
print(min(str24))
print(max(str24))

#replace(oldstr,newstr,count)  用newstr 替换oldstr, 默认是全部替换, 如果指定count 那么只替换前count个
str25 = "ben is a good good good man"
str26 = str25.replace("good","nice",1)
print(str25)
print(str26)

#创建一个字符串映射表
print("*************")
t27 = str.maketrans("ac","65")
#a->6 c->5
str28 = "ben is a good good good man"
str29 = str28.translate(t27)
print(str29)

#startswith(str,start=0,end=len(str))
#在给定的范围内判断是否以指定的字符串开头,如果没有 默认整个
print("*************")
str30 = "ben is a good man"
print(str30.startswith("ben",5,16))
print(str30.startswith("ben"))

#endswith(str,start=0,end=len(str))
print("*************")
str31 = "ben is a good man"
print(str30.endswith("man",5,16))
print(str30.endswith("man"))

#encode(endcoding="utf-8",errors="strict")  编码
print("*************")
str32 = "ben is a good man"
#ignore 忽略错误
t = str32.encode("utf-8","ignore")
print(str32.encode())
print(type(t))

#解码  注意,要与编码时的编码格式一致
str33 = t.decode("gbk")
print(str33)

#isalpha() 如果字符串中至少有一个字符且所有字符都是字母,返回True,否则返回False
print("*************")
str34 = "ben is a good man"
print(str34.isalpha())
str35 = "benisagoodman"
print(str35.isalpha())

#isalnum()  如果字符串中至少有一个字符且所有字符都是字母或数字,返回True,否则返回False
print("*************")
str36 = "123a"
print(str36.isalnum())
str37 = "123a#"
print(str37.isalnum())

#isupper() 如果字符串中至少有一个英文字符且所有字符都是大写英文字母,返回True,否则返回False
print("*************")
print("ABC".isupper())
print("1".isupper())
print("ABC1".isupper())
print("ABC1#".isupper())
print("ABC1a".isupper())

#islower() 如果字符串中至少有一个英文字符且所有字符都是小写英文字母,返回True,否则返回False
print("*************")
print("abc".islower())
print("1".isupper())
print("abc2".isupper())
print("abc1#".isupper())
print("abcA".isupper())

#istitle() 如果字符串是标题化的(首字母大写) 返回True 否则返回False
print("*************")
print("Ben".istitle())
print("Ben is".istitle())
print("Ben Is".istitle())

#isdigit()  如果字符串只包含数字字符,返回True 否则False
print("*************")
print("124".isdigit())
print("123a".isdigit())

#isnumeric() 同上
print("*************")
print("123".isnumeric())
print("123a".isnumeric())

#isdecimal()字符串只包含十进制字符
print("*************")
print("123".isdecimal())
print("123a".isdecimal())

#isspace() 如果字符串只包含空格,返回True 否则False
print("*************")
print(" ".isspace())
print("    ".isspace())
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())
print("\f".isspace())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值