用来表示名字、年龄等描述性的信息(数据) 定义方式: str:包含在引号内的一串字符 # 字符串拼接(+,*)是开辟一个新的内存空间,将你拼接之后的值存进去 s1 = 'hello ' s2 = 'world' print(s1 + s2) print(s1*10)
常用操作+内置方法: 优先掌握的操作: #1、按索引取值(正向取+反向取): 只能取不能改 name = "baohan" print(name[0]) #正向取 print(name[-1]) #反向取 print(name(type(name[-1])) #2、切片(顾头不顾尾,默认步长为1) msg = "my name is Bob" print(msg[0:6]) print(msg[0:6:2]) #m a #了解: #print(msg[0:5:1]) #print(msg[3:1,-1]) #print(msg[-1:-5:-1]) msg = 'alex is sb' print(msg[0:]) #取全部 print(msg[::-1]) #顺序全部倒过来 #3、长度len():获取当前数据中元素的个数 msg = 'my name is Bob' print(len(msg)) #字符的个数 #4、成员运算in 和 not in msg = 'my name is Bob' print("my"in msg) #True print("name" not in msg) #False #5、循环 for循环只适用于字符串,列表,字典 msg = 'alex is sb' #for i in msg: #print(i) i = 0 while i < len(msg): print(msg[i]) i+=1 #6、strip():移除空白 name = input ('你的用户名:').strip() print(name) #7、split():对字符串进行切分,可以指定切分的分隔符,返回的是一个列表 info = 'bob:123:admin' res = info.split(':') print(res,type(res)) #切完是列表类型 print(res[0]) #bob 需要掌握的操作: #1、 strip,lstrip,rstrip print('**sss*****'.strip("*")) print('**sss*****'.lstrip("*")) #2、lower,upper:转字符串里字符的大小写 name1 = "egon" name2 = "ALEX" print(name1.upper()) print(name2.lower()) #3、startswith,endswith 判断字符串是否以括号内指定的字符开头、结尾,返回的是布尔值True或False info = "my name is bob" print(info.startswith('m')) print(info.startswith('my')) print(info.endswith('b')) #4、format的三种用法 #1)类似于%s的用法,传入的值与{}一一对应 s1 = "my name is {},my age is {}".format("bob",18,19) print(s1) #2)把format传入的多个值当作一个列表,然后用{索引}取值 s2 = "my name is {0},my age is {1}".format("bob",18) print(s2) #3)format括号内传参数可以完全打乱顺序,但根据键值对传入指定参数 s3 = "my name is {name},my age is {age}".format(name="bob",age=18) print(s3) #5、split,rsplit info = "get|bob|hobby" print(info.split("|")) print(info.split("|",1)) #可以指定切分的次数 print(info.rsplit("|",1)) #6、join 将(列表)中每个元素按照""里的内容为分隔符号进行拼接(传入的列表内只能是字符串) info = "get|bob|hobby" l1 = info.split("|") print("".join(l1)) #7、f-string:通过大括号接受变量,在字符串前面一定要加一个小写的f,在python3.6以后才有 #8、replace 将字符串中的元素进行替换 info = "my name is egon,egon is handsome" print(info.replace('egon','bob')) print(info.replace('egon','bob',1)) #语法:replace('旧内容','新内容',修改的个数) #9、isdigit 判断字符串是否是数字组成,返回结果为布尔值 age = "18" print(age.isdigit()) age = "19.1" print(age.isdigit()) print('sdaw'.isdigit()) age = 10 inp = input(">>>:") if inp.isdigit(): inp = int(inp) if inp == 10: print("right") else: print("输入格式错误") 了解的知识点: # 1、find:查找当前字符串中某个元素的位置,返回索引,找不到返回-1 msg='tony say hello' msg.find('o',1,3) # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引 # 2、index:同find,但在找不到时会报错 msg.index('e',2,4) # 报错ValueError # 3、rfind与rindex:略 # 4、count:统计当前字符串中某一个元素出现的次数 msg = "hello everyone" msg.count('e') # 统计 e 出现的次数 # 5、center居中对齐,ljust左对齐,rjust右对齐,zfill填充0 name='tony' name.center(30,'-') # 总宽度为30,字符串居中显示,不够用-填充 >>>-------------tony------------- name.ljust(30,'*') # 总宽度为30,字符串左对齐显示,不够用*填充 >>>tony************************** name.rjust(30,'*') # 总宽度为30,字符串右对齐显示,不够用*填充 >>>**************************tony name.zfill(50) # 总宽度为50,字符串右对齐显示,不够用0填充 >>>0000000000000000000000000000000000000000000000tony #6、expandtabs msg='abc\tdef' #制表符 print(msg.expandtabs(3)) #7、captalize():只有首字母是大写 #8、swapcase():大小写反转 #9、title():每个单词的首字母大写 #10、is数字系列 #在python3中 num1 = b'4' #bytes num2 = u'4' #unicode,python3中无需加u就是unicode num3 = '四' #中文数字 num4 = 'Ⅳ' #罗马数字 num1.isdigit() #True num2.isdigit() #True num3.isdigit() #False num4.isdigit() #False 总结: 最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景 如果要判断中文数字或罗马数字或unicode,则需要用到isnumeric isdecimal:只能用来判断unicode #11 is其他 name = 'tony123' name.isalpha(): #字符全由字母组成 >>> True name.isalnum(): #字符由字母或数字组成 >>> True name.islower() # 字符串是否是纯小写 >>> True name.isupper() # 字符串是否是纯大写 >>> False name.isspace() # 字符串是否全是空格 >>> False name.istitle() # 字符串中的单词首字母是否都是大写 >>> False
字符串中的转义字符:
字符串前面加一个小写的r,代表转义 print(r'hello\n world') \t 输入一个 制表符,协助在输出文本时垂直方向保持对齐 print("1\t2\t3") print("10\t20\t30") \n 换行符 \" 可以输出一个" \\ 就表示一个 \