Python基础学习04--字符串
注释
- 单行注释------>以井号(#)开头,可以单独行,也可以在某行代码后边
- 多行注释/块注释------>多行代码或者内容,以三个连续单引号或双引号开始和结束,中间任何内容都忽略
# 我写了这么多,会不会打印出来 print('第1个:','Hello, World!') print('第2个:',"Hello, World!") #打印出Hello, World! ''' 身是菩提树 心如明镜台 时时勤拂拭 勿使惹尘埃 ''' print('第3个:',"Hello, World!") """ 菩提本无树 明镜亦非台 本来无一物 何处惹尘埃 """ print('第4个:',"Hello, World!")
输出结果如下:
第1个: Hello, World!
第2个: Hello, World!
第3个: Hello, World!
第4个: Hello, World!
pycharm中注释的快捷应用
pycharm中选中单行或多行需要注释的代码,键盘点击“Ctrl + /”,则可注释掉选中内容
选中注释的内容,再次点击“Ctrl + /”,则可取消注释
字符串
目前所认知的字符串就是引号内的一切东西,字符串也可叫文本
字符串表示方法:
- 单引号------>' '
- 双引号------>" "
- 三引号------>''' ''' 或 """ """
str1= '这是个字符串' # 单引号 str2 = "这也是个字符串" # 双引号 str3 = '''
这是个可以
换行的字符串
''' # 三引号 print('str1 = ',str1) print('str2 = ',str2) print('str3 = ',str3)
输出结果如下:
str1 = 这是个字符串 str2 = 这也是个字符串 str3 = 这是个可以 换行的字符串
转义字符
- 用一个特殊的方法表示出一系列不方便写出的内容,比如回车键,换行键,退格键
- 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个或者几个字符已经不是原来的意思了,而是进行了转义
- 在字符串中,一旦出现反斜杠就要加倍小心,可能由转义字符出现
# 示例:Let's Go! # 由于示例中存在了单引号('),如果此时字符串仍用''来表示 str4 = 'Let's Go!' print('str4 = ',str4) # 输出结果: # SyntaxError: invalid syntax ---- (语法错误) # 报错的原因就是,str4认为储存的变量为'Let',而后面的s Go!'是python无法识别的
解决以上的问题,可以用到嵌套引号或者转义字符
# 示例:Let's Go! # 使用嵌套引号 str5 = "Let's Go!" print('str5 = ',str5) # 使用转义符 str6 = 'Let\'s Go!' print('str6 = ',str6)
输出结果为:
str5 = Let's Go! str6 = Let's Go!
其他一些常用的转义字符
# 输出 C:\now # 由于存在反斜杠(\),因此n已不是原来的意思,\n在python中是换行的意思,因此该处需要进行再次转义,使 \ 失去转义的作用 str7 = 'C:\\now' print('str7 = ',str7) # 考虑到,如果某一路径过长例如:C:\Program Files (x86)\VMware\VMware VIX # 如果都进行转义,会非常麻烦们,这里有个更好的方法: # 在字符串前加 r str8 = r'C:\Program Files (x86)\VMware\VMware VIX' print('str8 = ',str8) # 注:字符串不能以“\”结尾
以上输出结果如下:
str7 = C:\now
str8 = C:\Program Files (x86)\VMware\VMware VIX
字符串拼接
# 第一种: st1 = 'my name is: ' st2 = 'wilson' str9 = st1 + st2 print('str9 = ',str9) # 第二种: str10 = 'my name is: ' 'wilson' print('str10 = ',str10) # 字符串的乘法 str11 = 'wow ' * 3 print('str11 = ',str11)
以上的输出结果如下:
str9 = my name is: wilson str10 = my name is: wilson str11 = wow wow wow
字符串的squence(序列)操作
每个字符串都存在下标,以PYTHON为例,下标标注如下图,;每个字符串可以用正下标表示(0---(n-1)),也可以用负下标表示(-n----(-1))。
字符串截取的位数是从0开始,而不是1!截取字符串的符号为[]。这个操作符如果只有一个下标参数,那么我们将得到一个字符;如果参数是2个,中间以:隔开,将返回一段字符串;该操作称之为slice/切片操作!
如,str[start:end],我们将得到的是从下标start开始,到小标end结束,且不包含end部分
>>> Str = 'PYTHON' >>> Str[0] 'P' >>> Str[6] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range # 下标越界 >>> Str[0:2] 'PY' >>> Str[2:4] 'TH' >>> Str[-1] 'N' >>> Str[-6:-1] 'PYTHO' >>> 'PY' in Str True >>> 'a' in Str False >>> 'a' not in Str True
字符串的格式化
- 把字符串按照一定格式打印或者填充
- 格式化由两种方法
- 百分号(%)
- format函数
百分号(%)格式化
- 在字符串中,利用%表示一个特殊的含义,表示对字符进行格式化
- %d: 此处应该放入一个整数
- %s: 表示此处应该放入一个字符串
name = 'wilson' age = 18 str12 = 'my name is %s' # 下面打印,会直接将%s作为字符串的一部分打印出来 print('str12-直接打印:',str12) # 这个就会打印完整,即将%wilson,填充到%s部分 print('str12-格式化打印:',str12%'wilson') # % 后面直接加字符串 str13 = "I'm %d years old" print('str13-直接打印:',str13) print('str13-格式化打印:',str13%18) # % 后面直接加数字 str14 = "I am %s, I am %d years old" print('str14-直接打印:',str14) # 如果字符串中由占位符,则有几个占位符必须用几个实际内容代替,或者一个也不要 # print(s%"Wilson") # 错误表示 # 如果出现多个占位符,则相应内容需要用括号括起来 print('str14-格式化打印:',str14%(name, age)) # %后面加变量
输出结果如下:
str12-直接打印: my name is %s str12-格式化打印: my name is wilson str13-直接打印: I'm %d years old str13-格式化打印: I'm 18 years old str14-直接打印: I am %s, I am %d years old str14-格式化打印: I am Wilson, I am 18 years old
format函数格式化
- 直接用format函数进行格式化
- 在使用上,以{}和:代替%号,后面用format带参数完成
name = 'wilson' age = 18 str15 = "I am {}".format('wilson') print('str15 = ',str15) str16 = "I am {0} and {1} years old,Please call me {0}".format(name, age) print('str16 = ',str16) str17 = f"I am {name} and {age} years old,Please call me {name}" print('str17 = ',str17)
输出结果如下:
str15 = I am wilson str16 = I am wilson and 18 years old,Please call me wilson str17 = I am wilson and 18 years old,Please call me wilson
字符串的常用方法
1、count()
计算字符串中包含的多少个指定的子字符串
str18 = 'Python is 666' print('str18 :',str18) s1 = str18.count('6') print('str18中包含了',s1,'个6')
str18 : Python is 666 str18中包含了 3 个6
2、endswith()
检查字符串是否以指定的字符串结尾,如果是,返回True;否则返回False
3、startswith()
检查字符串是否以指定的字符串开头,如果是,返回True;否则返回False
str18 = 'Python is 666' print('str18 :',str18) s2 = str18.endswith('6') print("str18以'6'结尾",s2) s3 = str18.startswith('P') print("str18以'P'开头",s3)
str18 : Python is 666 str18以'6'结尾 True str18以'P'开头 True
4、find()
返回指定的子字符串在在字符串中出现的位置
5、index()
返回指定的子字符串在在字符串中出现的位置,如果指定字符不存在,则报错!
find()与index的区别,这里不做详解,感兴趣的参考:https://blog.csdn.net/ztf312/article/details/47657963
str18 = 'Python is 666' print('str18 :',str18) s4 = str18.find('is') print('str18中,is的索引位置为',s4)
s5 = str18.index('is') print('str18中,is的索引位置为',s5)
str18 : Python is 666 str18中,is的索引位置为 7 str18中,is的索引位置为 7
6、isalpha()
检查字符串中是否都是字母,如果是,返回True;只要有一个不是字母,则返回False!
7、isdigit()
检查字符串中是否都是数字,如果是,返回True;只要有一个不是数字,则返回False!
str18 = 'Python is 666' print('str18 :',str18) s6 = str18.isalpha() print('str18中都是字母:',s6) s7 = str18.isdigit() print('str18中都是数字:',s7)
str18 : Python is 666 str18中都是字母: False str18中都是数字: False
8、join()
将序列类型的参数的元素字符串合并到一个字符串,str.join()中str作为分隔符
l1 = ['python','is','666'] print('l1 :',l1) s8 = ';'.join(l1) print("';'分隔合并后的字符串:",s8) print('s8的数据类型为:',type(s8))
l1 : ['python', 'is', '666'] ';'分隔合并后的字符串: python;is;666 s8的数据类型为: <class 'str'>
9、split()
将字符串分割为几个子字符串;参数为分隔符。分割出来的子字符串,存放在一个list对象里!
str18 = 'Python is 666' print('str18 :',str18) s9 = str18.split(' ') # 此处的分隔符为空格 print("以' '分割后的结果:",s9) print('s9的数据类型为:',type(s9))
str18 : Python is 666 以' '分割后的结果: ['Python', 'is', '666'] s9的数据类型为: <class 'list'>
10、lower()
将字符串中的大写字母全部转为小写字母
11、upper()
将字符串中的小写字母全部转为大写字母
str18 = 'Python is 666' print('str18 :',str18) s10 = str18.lower() print('s10:',s10) s11 = str18.upper() print('s11:',s11)
str18 : Python is 666 s10: python is 666 s11: PYTHON IS 666
12、strip()
将字符串前置空格和后置空格删除
13、lstrip()
将字符串前置空格删除
14、rstrip()
将字符串后置空格删除
str19 = ' Python is 666 ' print('str19 : ','|'+str19+'|') s12 = str19.strip() # 删除前后空格 s13 = str19.lstrip() # 删除前空格 s14 = str19.rstrip() # 删除后空格 print(' s12 : ','|'+s12+'|') print(' s13 : ','|'+s13+'|') print(' s14 : ','|'+s14+'|')
str19 : | Python is 666 |
s12 : |Python is 666| s13 : |Python is 666 | s14 : | Python is 666|
15、replace()
替换字符串里面指定的子字符串
str18 = 'Python is 666' print('str18 :',str18) s15 = str18.replace('666','good!') print(' s15 : ',s15)
str18 : Python is 666 s15 : Python is good!