05、Python基础学习--字符串

'''
什么是字符串

字符串是以单引号或双引号括起来的任意文本

'abc' "def"
字符串不可变
'''

#创建字符串

str1 = "sunck is a gond man"

str2 = "sunck is a nice man"

str3 = "abc"


'''
字符串运算

'''
#字符串连接

str6 = "sunck is a "
str7 = "good man"
str8 = str6 + str7

print("str6 =",str6)

print("str8 = ", str8)

#输出重复字符串

str9 = "good"
str10 = str9 * 3

print("str10 = ",str10)

#访问字符串中的某一个字符
#通过索引下标查找字符

str11 = "sunck is a good man!"

print(str11[1])

#str11[1] = "a"

#print("str11 = ",str11)

#截取字符串的一部分

str13 = "sunck is a good man!"

#从给定下标处开始截取到给定下标之前

str15 = str13[5:15]

#从头截取到给定下标之前

str16 = str13[0:5]

#从给定下标处开始截取到结尾

str17 = str13[16:]

print("str15 = ",str15)

print("str17 = ",str17)

#判断一个字符是否在字符串里面

str18 = "sunck is a good man!"

print("good" in str18)

print("good" not in str18)

'''
print(~5)
00000101
11111010 #取反
10000110
'''


#格式化输出

print("sunck is good man")

num = 10
str19 = ("sunck is good man")

f = 10.1267
print("num =",num,"str19 =", str19)

# 占位符,没有特殊含义
# %d:整数占位符,%s:字符串占位符, %f :浮点小数占位符
#%.3f:精确到小数点后3位,会四舍五入
print("num = %d, str19 = %s,f = %.3f" % (num,str19,f))



#转移字符 \:将一些字符转换成有特殊含义的字符
#\n
print("num = %d\nstr19 = %s\nf = %.3f" % (num,str19,f))

'''
\\ :保证在代码里\没有特殊的含义
'''

print("sunck \\n is")

#\' \"

print('tom is \'good\' man')
print("tom is \"good\" man")

print("tom is 'good' man")
print('tom is "good" man')

#''' 如果字符串内有很多换行,用\n写在一行不好阅读,''' 中间可以直接换行

print("sunck is good man")
print('''sunck
is
good
man
''')


'''
\t 制表符
'''

print("sunck\tgood")

# 如果字符中,有好多字符串都需要转移,就需要加入好多\,为了简化,Python允许用r表示内部 字符串默认不转移

print(r"\\\t\\")

#1234@163.com
#234@qq.com
#efasf@126.com

#eval(str)
#功能:将字符串str当成有效的表达式来求值并返回计算结果

num1 = eval("123")

print(num1)
print(type(num1))
print(eval("+123"))
print(eval("-123"))
print(eval("12+3"))
print(eval("12-3"))

#print(eval("12a3"))


#len(str)
#返回字符串的长度(字符个数)

print(len("sunck is a good man!"))

#lower(str)将转换字符串中的大写字母改成小写字母

str20 = "SUNCK is a good MAN"

print(str20.lower())

print("str20 = %s" % (str20))

#upper(str)将转换字符串中的小写字母改成大写字母,下面两种都可以实现


print("SUNCK is a good MAN".upper())

str21 = "SUNCK is a good MAN"

print(str21.upper())

#swapcase(str),转换字符串中的小写字母改成大写字母,大写字母改成小写字母

str22 = "SUNCK is a good MAN"

print(str22.swapcase())


#capitalize(str),首字母大写,其他小写

str23 = "SUNCK is a good mAN"

print(str23.capitalize())

#title(),每个单词的首字母大写

str24 = "SUNCK is a good mAN"
print(str24.title())

#character char :都叫字符

#center(width [,fillchar]),返回一个指定宽度的居中字符串,fillchar为填充的字符串,默认是空格填充

str25 = "kaige is a good mAN"

print(str25.center(40,"*"))

#ljust(width [,fillchar]),返回一个指定宽度的左对齐字符串,fillchar为填充的字符串,默认是空格填充

str26 = "kaige is a good mAN"

print(str26.ljust(40, "%"))

#rjust(width [,fillchar]),返回一个指定宽度的右对齐字符串,fillchar为填充的字符串,默认是空格填充

str27 = "kaige is a good mAN"

print(str27.rjust(40, "%"))



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

str28 = "kaige is a good mAN"

print(str28.zfill(40))

#cound(str[,start][,end]),返回字符串中str出现的次数,可以指定一个范围,默认是从头到尾,

str29 = "kaige is a very very nice mAN"

print(str29.count("very",15,len(str29)))


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

str30 = "kaige is a very very nice mAN"

print(str30.find("very"))
print(str30.find("good"))
print(str30.find("very",15,len(str30)))


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

str31 = "kaige is a very very nice mAN"

print(str31.rfind("very"))
print(str31.rfind("good"))
print(str31.rfind("very",0,15))


#index(str,start=0,end=len(str)):跟find()一样,只不过如果str不存在的时候回报一个异常

str32 = "kaige is a very very nice mAN"
print("xxx")
print(str32.index("very"))
#print(str32.index("veryy"))
print(str32.rindex("very"))

#rindex(str,start=0,end=len(str)):跟rfind()一样,只不过如果str不存在的时候回报一个异常

str32 = "kaige is a very very nice mAN"
print(str32.rindex("very"))


#lstrip()截掉字符串左侧指定的字符,默认为空格

str33 = "*******kaige is a very nice mAN"

print(str33.lstrip("*"))


#rstrip()截掉字符串右侧指定的字符,默认为空格

str34 = "kaige is a very nice mAN******"

print(str34.rstrip("*"))


#strip,截取左右两侧指定的字符串,默认是空格

str35 = "********kaige is a very nice mAN******"

print(str35.strip("*"))

#ord 计算字符的ASCII码

str36 = "a"

print(ord(str36))

#ASCII码对应的字符
str37 = chr(65)
print(str37)

#字符串比较大小

#从第一个字符开始比较,谁的ASCII值大谁就大,如果相等会比较下一个字符的ASCII值大小,那么谁的大谁就大

print("sunck" == "sunck")
print("bzzzz" < "aaaa")



#split(str="",num)
#以str为分隔符截取字符串,如果指定num,则仅截取num个字符串

str38 = "ss*sssfs****aaaa*****ss****555*****ss"
list39 = str38.split("*")
c = 0
for s in list39:
if len(s) > 0:
c += 1

print(c)


posted @ 2020-02-18 12:06  步行-天下  阅读(53)  评论(0)    收藏  举报