打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【2020Python修炼记8】Python语法入门

基本数据类型——字符串类型str

1、定义

name = 'Tony'address = ''上海市浦东新区''sex = '''男           喜欢面条'''

 单引号、双引号、多引号,都可以定义字符串,本质上是没有区别的,不过需要注意:

#1、需要考虑引号嵌套的配对问题msg = "My name is Tony , I'm 18 years old!" #内层有单引号,外层就需要用双引号#2、多引号可以写多行字符串msg = '''        天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。        照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。        不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。      '''

2、作用

  用来记录人的名字,家庭住址,性别等描述性质的状态

 

3、类型转换

# str可以把任意其他类型都转成字符串
>>> >>> res=str({'a':1})>>> print(res,type(res)){'a': 1} <class 'str'>>>> 

 4、使用:

4.1 数学运算

数字可以进行加减乘除等运算,字符串呢?也可以,但只能进行"相加"和"相乘"运算。>>> name = 'tony'>>> age = '18'>>> name + age #相加其实就是简单的字符串拼接'tony18' >>> name * 5 #相乘就相当于将字符串相加了5次'tonytonytonytonytony'

 

4.2 内置方法

4.2.1、按索引取值——(正向取+反向取) :只能取

>>> 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>>> 

 

4.2.2、切片——索引的拓展应用,从一个大字符串中拷贝出一个子字符串

>>> # 顾头不顾尾 # [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>>> 

4.2.3、长度 len()

>>> >>> msg='hello world'>>> print(len(msg))11>>> 

4.2.4、成员运算in和not in

>>> >>> #判断一个子字符串是否存在于一个大字符串中>>> print("alex" in "alex is sb")True>>> print("alex" not in "alex is sb")False>>> print(not "alex" in "alex is sb") # 不推荐使用,语法没错,只是不符合一般逻辑思维习惯False>>> 

4.2.5、移除字符串左右两侧的符号strip(‘字符’)

           #注意,字符要用引号括起来

>>> >>> # 默认去掉的空格>>> 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>>>

 

4.2.6、切分split:把一个字符串按照某种分隔符进行切分,得到一个列表           # # 默认分隔符是空格

>>> # 默认分隔符是空格>>> 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']>>> 

4.2.7、循环

>>> 循环输出,即一直循环输出,逐字输出,直到输出完毕>>> info='cat love mili'>>> for x in info:    print(x)    cat love mili>>> 

 

4.3 需要掌握的其他应用

4.3.1、strip,lstrip,rstrip

>>> msg='*******egon****'>>> print(msg.strip('*'))egon>>> print(msg.lstrip('*')) #去除left左侧egon****>>> print(msg.rstrip('*')) #去除right右侧*******egon

4.3.2、lower,upper

>>>>>> msg='AAAAAegondddASSss'>>> print(msg.lower()) #全部转换成小写aaaaaegondddassss>>> print(msg.upper())#全部转换成大写AAAAAEGONDDDASSSS>>> 

4.3.3、startswith,endswith——判断字符串的开头或结尾的子字符

>>> >>> 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>>> 

4.3.4、format——赋值

>>> #逐一将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>>> 

4.3.5、split,rsplit:将字符串切成列表

>>> info='cat:love:mili'>>> print(info.split(':',1))['cat', 'love:mili']>>> print(info.rsplit(':',1))#从右侧开始切片['cat:love', 'mili']>>> 

4.3.6、join: 把列表拼接成字符串

>>>连接字符串的三种方式:>>> 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'>>> 

4.3.7、replace

>>> 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

4.3.8、isdigit

>>> >>> # 判断字符串是否由纯数字组成>>> 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('请输入数字')    猜大了>>> 

4.4 其他应用的了解

4.4.1、find,rfind,index,rindex,count

# 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'))

4.4.2、center,ljust,rjust,zfill

# print('egon'.center(50,'*'))# print('egon'.ljust(50,'*'))# print('egon'.rjust(50,'*'))# print('egon'.zfill(10))

4.4.3、expandtabs

# msg='hello\tworld'# print(msg.expandtabs(2)) # 设置制表符代表的空格数为2

4.4.4、captalize,swapcase,title

# print("hello world egon".capitalize())# print("Hello WorLd EGon".swapcase())# print("hello world egon".title())

4.4.5、is数字系列

4.4.6、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

 

5、格式化字符串的四种方法

https://zhuanlan.zhihu.com/p/110406030

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
运维常用linux命令\shell技巧范例
《Python编程快速上手——让繁琐的工作自动化》读书笔记3
Python基础篇:数据类型
Python常见的错误,一定要注意!
一篇文章让你简单的入门Python
Python2.7和3.7区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服