'''
什么是字符串
字符串就是以单引号或双引号括起来的任意文本
'''
#创建字符串
str1 = "My name is jjking"
str2 = "I am a Little White"
'''
字符串运算
'''
#字符串连接
str3 = "My name is "
str4 = "jjking. "
str5 = str3 + str4
print("str5 = ",str5)
#输入重复字符串
str6 = str5 * 3
print(str6)
#访问字符转中的某一个字符,通过索引下标查找字符,从0开始
str7 = "My name is jjking"
print(str7[0])
print(str7[1])
print(str7[2])
print(str7[3])
#第 0 个为 M, 第1个为 y, 第 2 个是空格没打印出来,以此类推...
#截取字符串中的一部分
str8 = "My name is jjking"
str9 = str8[0:7] #[包含,不包含]
str10 = str8[:7] #默认为0开始
str11 = str8[4:] #默认截取到最后
print(str9)
print(str10)
print(str11)
#成员运算符测试jjking是否在str8 的字符串中
if "jjking" in str8:
print("jjking 在 str8中出现了")
print("name" in str8)
#输出格式化
num = 1
str12 = "My name is jjking."
f = 1.23
print("num = ", num, "str12 =", str12, "f =", f )
#使用%s %d %f 占位符
print("num = %d, str = %s, f = %f" % (num, str12, f))
#%3.f 表示保留小数点后3位,四舍五入法
print("f = %.3f"% f)
'''
转义字符 \
\n 输出 换行
\\ 输出 \
\" 输出 "
\t 制表符
'''
print("num = %d\nstr = %s\nf = %f" % (num, str12, f))
print("num = %d\n\"str = %s\"\nf = %f\\" % (num, str12, f))
print("one\tsecond")
print("\\\t\\")
# r 字符串中有好多字符需要转移时使用,python允许使用 r 表示内部字符串默认不转义
# windows系统下的路径打印常用
print(r"\\\t\\")
print(r"C:\Users\Administrator\PycharmProjects\untitled\day003")
#按照格式输出
print('''---------------
first
second
Third
''')
str12 = "My name is jjking."
#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"))
#len(str)
#功能:返回字符串的长度
print(len("My name is jjking!"))
print(len(str12))
#lower() 转换字符串中的大写字母为小写字母
print(str12.lower())
#upper() 转换字符串中的小写字母为大写字母
print(str12.upper())
#swapcase() 大小写互换
print(str12.swapcase())
#capitalize() 首字母大写
print(str12.capitalize())
#title() 单词的首字母大写
print(str12.title())
#center(width, fillchar) 返回指定宽度的居中的字符串用后面的字符填充
print(str12.center(30,"#"))
#ljust(width[, fillchar]) 返回指定宽度的左对齐的字符串用后面的字符填充
print(str12.ljust(30,"*"))
#rjust(width[, fillchar]) 返回指定宽度的右对齐的字符串用后面的字符填充
print(str12.rjust(30,"*"))
#zfill(width) 返回指定宽度右对齐前面用 0 填充的字符串
print(str12.zfill(30))
#count([str[, start][, end]) 返回字符串中str出现的次数,可以指定一个范围,默认从头到尾
print(str12.count("is"))
#find(str[, start][, end])
# 从左向右检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾得到的是第一次出现的开始下标,没有返回-1
print(str12.find("is"))
#rfind(str[, start][, end])
# 从右向左检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾得到的是第一次出现的开始下标,没有返回-1
print(str12.rfind("is"))
#index(str,start=0, end=len(str)) 和find()一样,但在str不存在的时候会报异常
print(str12.index("is"))
#rindex(str,start=0, end=len(str)) 和rfind()一样,但在str不存在的时候会报异常
print(str12.rindex("is"))
#lstrip() 截掉字符串左侧指定的字符,要从头开始,默认为空格
print(str12.lstrip("My"))
#lstrip() 截掉字符串右侧制定的字符,,要从最后面开始,默认为空格
print(str12.rstrip("jjking."))
#split("", a) 以“ ”中的内容为分隔符截取字符串,a默认为1
print(str12.split(" "))
#splitlines([keepends]) 按照# ('\r', '\r\n', '\n')分隔
stra = ('''
My name is jjking.
I am a boy!
''')
print(stra.splitlines())
#join(seq) 以一个特定的字符串分隔符,将seq中的所有元素组合成一个字符串
strjo =["a", "s", "s"]
str_join = "##".join(strjo)
print(str_join)
#max() 返回字符串中ascii码值最大的
print(max(str12))
#min() 返回字符串中ascii码值最小的
print("$" + min(str12) + "$")
#replace(oldstr, newstr, count) 默认全部替换,如果指定了count数量,那么只替换前count个
str_replace = str12.replace("is", "isn't", 1)
print(str_replace)
#创建一个字符串映射表
str_maketrans = str12.maketrans("is", "nt") # i->n s->t
str13 = "P is is kjs is;"
str_translate = str13.translate(str_maketrans)
print(str_translate)
#startswith(str, start = 0, end = len(str))
#在给定的范围内判断是否以给定的字符串开头的,如果没有给定范围,默认整个字符串
print(str12.startswith("is" ))
#endwith(str, start = 0, end = len(str))
#在给定的范围内判断是否以给定的字符串结尾的,如果没有给定范围,默认整个字符串
print(str12.endswith("is" ))
#编码
#encode(encoding="utf-8", error="strict")
print(str12.encode())
data = str12.encode("utf-8", "ignore")
#解码 注意:要和编码使用的码制一致 python3之后没有decode()了
str_encode = data.decode("utf-8","ignore")
print("###",str_encode, "###")
print(type(str_encode))
#isalpha()
#如果字符串中至少有一个字符且所有字符都是字母返回True,否则返回False
print(str12.isalpha())
#isalnum()
#如果字符串中至少有一个字符且所有字符都是字母或数字返回True,否则返回False
print(str12.isalnum())
#isupper()
#如果字符串中至少有一个英文字符且所有字符都是大写字母或数字或特殊字符返回True,否则返回False
str_upper = "ACSD"
print(str_upper.isupper())
print("ASD1".isupper())
print("ASD1#".isupper())
#islower()
#如果字符串中至少有一个英文字符且所有字符都是小写字母或数字或特殊字符返回True,否则返回False
str_upper = "acs"
print(str_upper.islower())
print("asd1".islower())
print("asd1#".islower())
#istitle()
#如果字符串是标题化的返回True,否则返回False
print("My name".istitle()) #错的
print("My Name".istitle()) #对的
#isdigit()
#如果字符串只包含数字字符返回True,否则返回False
print("123".isdigit())
print("ade".isdigit()) #错的
#isnumeric()
#如果字符串只包含数字返回True,否则返回False
print("123".isnumeric())
print("ade".isnumeric()) #错的
#isdecimal()
#如果字符串只包含十进制字符返回True,否则返回False
print("123".isdecimal())
print("ade".isdecimal()) #错的
#isspace()
#如果字符串中只包含空格则返回True,否则返回False
print(" ".isspace())
print("\t".isspace())
print("\r".isspace())
print("\n".isspace()) #都是对的
执行结果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\python.exe C:/Users/Administrator/PycharmProjects/untitled/day003/String.py
str5 = My name is jjking.
My name is jjking. My name is jjking. My name is jjking.
M
y
n
My name
My name
ame is jjking
jjking 在 str8中出现了
True
num = 1 str12 = My name is jjking. f = 1.23
num = 1, str = My name is jjking., f = 1.230000
f = 1.230
num = 1
str = My name is jjking.
f = 1.230000
num = 1
"str = My name is jjking."
f = 1.230000\
one second
\ \
\\\t\\
C:\Users\Administrator\PycharmProjects\untitled\day003
---------------
first
second
Third
123
<class 'int'>
123
-123
15
9
18
18
my name is jjking.
MY NAME IS JJKING.
mY NAME IS JJKING.
My name is jjking.
My Name Is Jjking.
######My name is jjking.######
My name is jjking.************
************My name is jjking.
000000000000My name is jjking.
1
8
8
8
8
name is jjking.
My name is
['My', 'name', 'is', 'jjking.']
['', 'My name is jjking.', 'I am a boy!']
a##s##s
y
$ $
My name isn't jjking.
P nt nt kjt nt;
False
False
b'My name is jjking.'
### My name is jjking. ###
<class 'str'>
False
False
True
True
True
True
True
True
False
True
True
False
True
False
True
False
True
True
True
True
Process finished with exit code 0