基本数据类型——字符串类型str
name = 'Tony'address = ''上海市浦东新区''sex = '''男 喜欢面条'''
用单引号、双引号、多引号,都可以定义字符串,本质上是没有区别的,不过需要注意:
#1、需要考虑引号嵌套的配对问题msg = "My name is Tony , I'm 18 years old!" #内层有单引号,外层就需要用双引号#2、多引号可以写多行字符串msg = ''' 天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。 照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。 不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。 '''
# str可以把任意其他类型都转成字符串
>>> >>> res=str({'a':1})>>> print(res,type(res)){'a': 1} <class 'str'>>>>
数字可以进行加减乘除等运算,字符串呢?也可以,但只能进行"相加"和"相乘"运算。>>> name = 'tony'>>> age = '18'>>> name + age #相加其实就是简单的字符串拼接'tony18' >>> name * 5 #相乘就相当于将字符串相加了5次'tonytonytonytonytony'
>>> msg='hello world'>>> #正向取>>> print(msg[0])h>>> print(msg[5]) >>> #反向取>>> print(msg[-1])d>>> #只能取,不能改写>>> msg[0]='H'Traceback (most recent call last): File "<pyshell#86>", line 1, in <module> msg[0]='H'TypeError: 'str' object does not support item assignment>>>
>>> # 顾头不顾尾 # [x:y],--指的是 [x,y)左闭右开的区间 # x--开始的索引号,# y--在索引号[y-1]结束,取到索引号[y-1] 所指的字符就结束 [0:5],意为 从第一个索引[0]所指的字符开始,取到索引[4],即5个字符>>> >>> msg='hello world'>>> res=msg[0:5]>>> print(res)hello>>> print(msg)hello world>>> >>> #步长# 依次读取索引 0 2 4 所对应的字符 # [x:y:z],# x--开始的索引号,# y--在索引号[y-1]结束,即取到索引号[y-1] 所指的字符就结束,# z--间隔的索引个数,即从索引[x]开始,每隔z个间隔,依次读取,直到索引号[y-1]结束 [0:5:2],意为 从第一个索引[0]所指的字符开始,每隔2个间隔,读取一个字符,直到取到索引[4],即3个字符>>> res=msg[0:5:2] >>> print(res)hlo>>> >>> #反向步长(了解)>>> msg='hello world'>>> res=msg[5:0:-1]>>> print(res) olle>>> >>> msg='hello world'>>> res=msg[:] # [:]不输入,默认为 res=msg[0:11]>>> print(res)hello world>>> res=msg[::-1] # 把字符串倒过来读取>>> print(res)dlrow olleh>>>
>>> >>> msg='hello world'>>> print(len(msg))11>>>
>>> >>> #判断一个子字符串是否存在于一个大字符串中>>> print("alex" in "alex is sb")True>>> print("alex" not in "alex is sb")False>>> print(not "alex" in "alex is sb") # 不推荐使用,语法没错,只是不符合一般逻辑思维习惯False>>>
>>> >>> # 默认去掉的空格>>> msg=' egon '>>> res=msg.strip()>>> print(msg) # 不会改变原值 egon >>> print(res) # 去除了空格,是产生了新值egon>>>
>>> #去掉其他符号>>> msg='*******egon****'>>> print(msg.strip('*'))egon>>> msg='@@@egon@@*'>>> print(msg.strip('*'))@@@egon@@>>> print(msg.strip('*@'))egon>>> >>> msg='@@@egon@ @ *'>>> print(msg.strip('*@ '))egon>>>
>>> # 了解:strip只去除两边,不去中间>>> msg='*******eg*****on****'>>> print(msg.strip('*'))eg*****on>>> msg='**/*=-**egon**-=()**'>>> print(msg.strip('*/-=()'))egon>>>
>>> # 应用_自动清除用户手抖输入的多余空格 >>> in_name= input('please input your name:').strip()please input yuor name:' cc' # 为何failed login,原因是这里输入的结果为字符串 ' cc',而不是 字符串 cc,后面的条件判断是字符串 cc >>> in_code= input('please input your code:').strip()please input yuor code:' 123' # 为何failed login,原因是这里输入的结果为字符串 ' 123',而不是 字符串 123,后面的条件判断是字符串 123>>> if in_name == 'cc'and in_code == '123': print('login successfully')else: print('failed login')
failed login
>>> in_name= input('please input yuor name:').strip()please input yuor name:cc>>> in_code= input('please input yuor code:').strip()please input yuor code:123>>> if in_name == 'cc' and in_code == '123': print('login successfully')else: print('failed login') login successfully——————————————————————————
>>> in_name= input('please input yuor name:').strip() please input yuor name:cc >>> in_code= input('please input yuor code:').strip() please input yuor code: 123 #末尾有输入一个空格 >>> if in_name == 'cc'and in_code == '123': print('login successfully') else: print('failed login')
login successfully ——————————————————————————— >>> in_name= input('please input yuor name:').strip()please input yuor name:'cc' # 为何failed login,原因是这里输入的结果为字符串 ' cc',而不是 字符串 cc,后面的条件判断是字符串 cc>>> in_code= input('please input yuor code:').strip()please input yuor code:123>>> >>> if in_name == 'cc'and in_code == '123': print('login successfully')else: print('failed login') failed login—————————————————————————————>>> in_name= input('please input yuor name:').strip()please input yuor name:cc>>> in_code= input('please input yuor code:').strip()please input yuor code:123 >>> if in_name == 'cc' and in_code == 123: #将123的引号去掉,则为整型。但是用户输入的是字符串类型,所以后面判断结果为假 print('login successfully')else: print('failed login') failed login——————————>>> in_name= input('please input yuor name:').strip()please input yuor name:cc>>> in_code= input('please input yuor code:').strip()please input yuor code:123 >>> in_code=int(in_code) #用户输入的密码,是字符串类型,将其强制转换为整型,再进行条件判断,则结果为真 >>> if in_name == 'cc'and in_code == 123: print('login successfully')else: print('failed login') login successfully>>>
>>> # 默认分隔符是空格>>> info='cat love mili'>>> res=info.split()>>> print(res)['cat', 'love', 'mili']>>> # 指定分隔符>>> info='cat:love:mili'>>> res=info.split(':')>>> print(res)['cat', 'love', 'mili']>>> # 指定分隔次数(了解)>>> info='cat:love:mili'>>> res=info.split(':',1)>>> print(res)['cat', 'love:mili']>>>
>>> 循环输出,即一直循环输出,逐字输出,直到输出完毕>>> info='cat love mili'>>> for x in info: print(x) cat love mili>>>
>>> msg='*******egon****'>>> print(msg.strip('*'))egon>>> print(msg.lstrip('*')) #去除left左侧egon****>>> print(msg.rstrip('*')) #去除right右侧*******egon
>>>>>> msg='AAAAAegondddASSss'>>> print(msg.lower()) #全部转换成小写aaaaaegondddassss>>> print(msg.upper())#全部转换成大写AAAAAEGONDDDASSSS>>>
>>> >>> print('cat love mili'.startswith('cat'))True>>> print('cat love mili'.startswith('mili'))False>>> print('cat love mili'.endswith('mili'))True>>> print('cat love mili'.endswith('cat'))False>>>
>>> #逐一将format后面的值赋给{}>>> res='{} {} {}'.format('cc','18','mili')>>> print(res)cc 18 mili>>> #按照 format后面的值的索引,赋值给对应索引号的{}>>> res='{1} {0} {1}'.format('cc','18','mili')>>> print(res)18 cc 18>>> res='{0} {2} {1}'.format('cc','18','mili')>>> print(res)cc mili 18>>> #按照 format后面的变量名称,赋值给对应变量名称的{}>>> res='{name} {age} {lover}'.format(lover='mili',name='cc',age='18')>>> print(res)cc 18 mili>>>
>>> info='cat:love:mili'>>> print(info.split(':',1))['cat', 'love:mili']>>> print(info.rsplit(':',1))#从右侧开始切片['cat:love', 'mili']>>>
>>>连接字符串的三种方式:>>> l=['cat','love','mili']>>> res=l[0]+":"+l[1]+":"+l[2]>>> print(res)cat:love:mili>>> res=':'.join(l)# 按照某个分隔符号,把元素全为字符串的列表拼接成一个大字符串>>> print(res)cat:love:mili>>> ':'.join(l)'cat:love:mili'>>>
>>> info='cat love mili love cat'>>> print(info.replace('cat','CC')) #未指定个数,默认将全部'cat'替换为'CC'CC love mili love CC>>> info='cat love mili love cat'>>> print(info.replace('cat','CC',)) #未输入替换个数,默认将全部'cat'替换为'CC'CC love mili love CC>>> info='cat love mili love cat'>>> print(info.replace('cat','CC',1)) #输入替换个数为1,将第一个'cat'替换为'CC'CC love mili love cat>>> info='cat love mili love cat'>>> print(info.replace('cat','CC',2)) #输入替换个数为‘cat’的总数,将全部'cat'替换为'CC'CC love mili love CC>>> info='cat love mili love cat'>>> print(info.replace('cat','CC',3)) #输入替换个数超过‘cat’的总数,将全部'cat'替换为'CC'CC love mili love CC
>>> >>> # 判断字符串是否由纯数字组成>>> print('123'.isdigit())True>>> print('12.3'.isdigit())False>>>
>>>>>> age=input('请输入你的年龄:').strip()请输入你的年龄:19>>> if age.isdigit(): age=int(age) if age > 18: print('猜大了') elif age < 18: print('猜小了') else: print('猜对了')else: print('请输入数字') 猜大了>>>
# msg='hello egon hahaha'# 找到返回起始索引# print(msg.find('e')) # 返回要查找的字符串在大字符串中的起始索引# print(msg.find('egon'))# print(msg.index('e'))# print(msg.index('egon'))# 找不到# print(msg.find('xxx')) # 返回-1,代表找不到# print(msg.index('xxx')) # 抛出异常# msg='hello egon hahaha egon、 egon'# print(msg.count('egon'))
# print('egon'.center(50,'*'))# print('egon'.ljust(50,'*'))# print('egon'.rjust(50,'*'))# print('egon'.zfill(10))
# msg='hello\tworld'# print(msg.expandtabs(2)) # 设置制表符代表的空格数为2
# print("hello world egon".capitalize())# print("Hello WorLd EGon".swapcase())# print("hello world egon".title())
4.4.5、is数字系列
# print('abc'.islower())# print('ABC'.isupper())# print('Hello World'.istitle())# print('123123aadsf'.isalnum()) # 字符串由字母或数字组成结果为True# print('ad'.isalpha()) # 字符串由由字母组成结果为True# print(' '.isspace()) # 字符串由空格组成结果为True# print('print'.isidentifier())# print('age_of_egon'.isidentifier())# print('1age_of_egon'.isidentifier())num1=b'4' #bytesnum2=u'4' #unicode,python3中无需加u就是unicodenum3='四' #中文数字num4='Ⅳ' #罗马数字# isdigit只能识别:num1、num2# print(num1.isdigit()) # True# print(num2.isdigit()) # True# print(num3.isdigit()) # False# print(num4.isdigit()) # False# isnumberic可以识别:num2、num3、num4# print(num2.isnumeric()) # True# print(num3.isnumeric()) # True# print(num4.isnumeric()) # True# isdecimal只能识别:num2print(num2.isdecimal()) # Trueprint(num3.isdecimal()) # Falseprint(num4.isdecimal()) # False
https://zhuanlan.zhihu.com/p/110406030
联系客服